Skip to content

Commit be616a7

Browse files
authored
Merge pull request #129 from NHSDigital/add-id-views-to-modality-emulator
Add implant views to modality emulator
2 parents a6ae9cd + de97bed commit be616a7

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

src/modality_emulator.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828

2929
DICOM_LATERALITIES = ["L", "R"]
30-
DICOM_VIEWS = ["CC", "MLO"]
30+
DICOM_VIEWS = ["CC", "MLO", "CCID"]
3131
EMULATED_PROCEDURE_DURATION_SECONDS = int(os.getenv("EMULATED_PROCEDURE_DURATION_SECONDS", "5"))
3232
MODALITY = "MG"
3333
MWL_AET = os.getenv("MWL_AET", "SCREENING_MWL")
@@ -102,6 +102,14 @@ def generate_dicom(self) -> Dataset:
102102
ds.SeriesNumber = self.series_number
103103
ds.Modality = MODALITY
104104
ds.InstanceNumber = 1
105+
106+
if self.view.endswith("ID"):
107+
view_modifier_code_sequence = Dataset()
108+
view_modifier_code_sequence.CodeValue = "R-102D5"
109+
view_modifier_code_sequence.CodingSchemeDesignator = "SRT"
110+
view_modifier_code_sequence.CodeMeaning = "Implant Displaced"
111+
ds.ViewModifierCodeSequence = [view_modifier_code_sequence]
112+
105113
ds.file_meta = file_meta
106114

107115
logger.debug(f"Generated DICOM for worklist item {self.dataset.AccessionNumber} - {self.laterality}{self.view}")

tests/test_modality_emulator.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,10 @@ def test_process_worklist_items_sends_all_dicoms(
138138

139139
mock_dicom_example.assert_any_call(ds, "L", "CC", study_instance_uid, 1)
140140
mock_dicom_example.assert_any_call(ds, "L", "MLO", study_instance_uid, 2)
141-
mock_dicom_example.assert_any_call(ds, "R", "CC", study_instance_uid, 3)
142-
mock_dicom_example.assert_any_call(ds, "R", "MLO", study_instance_uid, 4)
141+
mock_dicom_example.assert_any_call(ds, "L", "CCID", study_instance_uid, 3)
142+
mock_dicom_example.assert_any_call(ds, "R", "CC", study_instance_uid, 4)
143+
mock_dicom_example.assert_any_call(ds, "R", "MLO", study_instance_uid, 5)
144+
mock_dicom_example.assert_any_call(ds, "R", "CCID", study_instance_uid, 6)
143145

144146
expected_send_count = len(DICOM_LATERALITIES) * len(DICOM_VIEWS)
145147

0 commit comments

Comments
 (0)