diff --git a/src/modality_emulator.py b/src/modality_emulator.py index bc5f709e..3d6cd678 100644 --- a/src/modality_emulator.py +++ b/src/modality_emulator.py @@ -27,7 +27,7 @@ DICOM_LATERALITIES = ["L", "R"] -DICOM_VIEWS = ["CC", "MLO"] +DICOM_VIEWS = ["CC", "MLO", "CCID"] EMULATED_PROCEDURE_DURATION_SECONDS = int(os.getenv("EMULATED_PROCEDURE_DURATION_SECONDS", "5")) MODALITY = "MG" MWL_AET = os.getenv("MWL_AET", "SCREENING_MWL") @@ -102,6 +102,14 @@ def generate_dicom(self) -> Dataset: ds.SeriesNumber = self.series_number ds.Modality = MODALITY ds.InstanceNumber = 1 + + if self.view.endswith("ID"): + view_modifier_code_sequence = Dataset() + view_modifier_code_sequence.CodeValue = "R-102D5" + view_modifier_code_sequence.CodingSchemeDesignator = "SRT" + view_modifier_code_sequence.CodeMeaning = "Implant Displaced" + ds.ViewModifierCodeSequence = [view_modifier_code_sequence] + ds.file_meta = file_meta logger.debug(f"Generated DICOM for worklist item {self.dataset.AccessionNumber} - {self.laterality}{self.view}") diff --git a/tests/test_modality_emulator.py b/tests/test_modality_emulator.py index 7cfee2b9..3916009a 100644 --- a/tests/test_modality_emulator.py +++ b/tests/test_modality_emulator.py @@ -138,8 +138,10 @@ def test_process_worklist_items_sends_all_dicoms( mock_dicom_example.assert_any_call(ds, "L", "CC", study_instance_uid, 1) mock_dicom_example.assert_any_call(ds, "L", "MLO", study_instance_uid, 2) - mock_dicom_example.assert_any_call(ds, "R", "CC", study_instance_uid, 3) - mock_dicom_example.assert_any_call(ds, "R", "MLO", study_instance_uid, 4) + mock_dicom_example.assert_any_call(ds, "L", "CCID", study_instance_uid, 3) + mock_dicom_example.assert_any_call(ds, "R", "CC", study_instance_uid, 4) + mock_dicom_example.assert_any_call(ds, "R", "MLO", study_instance_uid, 5) + mock_dicom_example.assert_any_call(ds, "R", "CCID", study_instance_uid, 6) expected_send_count = len(DICOM_LATERALITIES) * len(DICOM_VIEWS)