From de97bedc2374b7e799076f62f3a60f869d442720 Mon Sep 17 00:00:00 2001 From: Steve Laing Date: Tue, 9 Jun 2026 16:08:20 +0100 Subject: [PATCH] Add implant views to modality emulator --- src/modality_emulator.py | 10 +++++++++- tests/test_modality_emulator.py | 6 ++++-- 2 files changed, 13 insertions(+), 3 deletions(-) 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)