Skip to content

Commit 93e2f24

Browse files
authored
Merge pull request #98 from blairconrad/anonymize-station-no-modality
Support anonymization of StationName when dataset has no Modality
2 parents 7e9b068 + 02eb1ef commit 93e2f24

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

src/dicognito/anonymizer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ def __init__(self, id_prefix="", id_suffix="", seed=None):
9696
"PlacerOrderNumberProcedure",
9797
"RequestedProcedureID",
9898
"ScheduledProcedureStepID",
99+
"StationName",
99100
"StudyID",
100101
),
101102
address_anonymizer,

src/dicognito/equipmentanonymizer.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ def __init__(self, address_anonymizer):
1717
pydicom.datadict.tag_for_keyword("InstitutionName"): self.anonymize_institution_name,
1818
pydicom.datadict.tag_for_keyword("InstitutionAddress"): self.anonymize_institution_address,
1919
pydicom.datadict.tag_for_keyword("InstitutionalDepartmentName"): self.anonymize_department_name,
20-
pydicom.datadict.tag_for_keyword("StationName"): self.anonymize_station_name,
2120
}
2221

2322
def __call__(self, dataset, data_element):
@@ -33,8 +32,8 @@ def __call__(self, dataset, data_element):
3332
data_element : pydicom.dataset.DataElement
3433
The current element. Will be anonymized if it has a value
3534
and if its keyword is one of InstitutionName,
36-
InstitutionAddress, InstitutionalDepartmentName, or
37-
StationName. Additionally, if its keyword is InstitutionName,
35+
InstitutionAddress, or InstitutionalDepartmentName.
36+
Additionally, if its keyword is InstitutionName,
3837
then InstitutionAddress will also be anonymized.
3938
4039
Returns
@@ -62,6 +61,3 @@ def anonymize_institution_address(self, dataset, data_element):
6261

6362
def anonymize_department_name(self, dataset, data_element):
6463
data_element.value = "RADIOLOGY"
65-
66-
def anonymize_station_name(self, dataset, data_element):
67-
data_element.value = dataset.Modality + "01"

src/dicognito/release_notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
### Fixed
1010

1111
- Deflated files are corrupt when anonymized from the command line ([#80](https://github.com/blairconrad/dicognito/issues/80))
12-
1312
- Date/time offset is not always the same for a given seed ([#86](https://github.com/blairconrad/dicognito/issues/86))
13+
- Anonymizing dataset with StationName but no Modality fails ([#97](https://github.com/blairconrad/dicognito/issues/97))
1414

1515

1616
## 0.10.0

tests/test_anonymize_single_instance.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,19 @@ def test_equipment_gets_anonymized():
313313
assert new_station_name != original_station_name
314314

315315

316+
def test_station_gets_anonymized_when_no_modality():
317+
with load_test_instance() as dataset:
318+
original_station_name = dataset.StationName
319+
del dataset.Modality
320+
321+
anonymizer = Anonymizer()
322+
anonymizer.anonymize(dataset)
323+
324+
new_station_name = dataset.StationName
325+
326+
assert new_station_name != original_station_name
327+
328+
316329
def test_requesting_service_gets_anonymized():
317330
with load_test_instance() as dataset:
318331
original = dataset.RequestingService

0 commit comments

Comments
 (0)