|
43 | 43 | anonymise_dicom,
|
44 | 44 | _enforce_allowlist,
|
45 | 45 | _should_exclude_series,
|
| 46 | + _should_exclude_manufacturer, |
46 | 47 | )
|
47 | 48 | from pytest_pixl.dicom import generate_dicom_dataset
|
48 | 49 | from pytest_pixl.helpers import run_subprocess
|
@@ -407,7 +408,11 @@ def test_no_pseudo_patient_id_processing(
|
407 | 408 | )
|
408 | 409 |
|
409 | 410 |
|
410 |
| -def _make_dicom(series_description, manufacturer, series_number) -> pydicom.Dataset: |
| 411 | +def _make_dicom( |
| 412 | + series_description="mri_sequence", |
| 413 | + manufacturer="Company", |
| 414 | + series_number="901", |
| 415 | +) -> pydicom.Dataset: |
411 | 416 | return generate_dicom_dataset(
|
412 | 417 | SeriesDescription=series_description,
|
413 | 418 | Manufacturer=manufacturer,
|
@@ -438,10 +443,26 @@ def test_should_exclude_series(
|
438 | 443 | config = load_project_config(TEST_PROJECT_SLUG)
|
439 | 444 | ds = _make_dicom(series_description, manufacturer, series_number)
|
440 | 445 | series_number = ds.get("SeriesNumber")
|
441 |
| - print(f"{series_number=}", type(series_number), str(series_number)) |
442 | 446 | assert _should_exclude_series(ds, config) == expect_exclude
|
443 | 447 |
|
444 | 448 |
|
| 449 | +@pytest.mark.parametrize( |
| 450 | + ("manufacturer", "expect_exclude"), |
| 451 | + [ |
| 452 | + ("Company", False), |
| 453 | + ("DifferentCompany", True), |
| 454 | + (None, True), |
| 455 | + ], |
| 456 | +) |
| 457 | +def test_should_exclude_manufacturer(manufacturer, expect_exclude): |
| 458 | + config = load_project_config(TEST_PROJECT_SLUG) |
| 459 | + ds = _make_dicom(manufacturer=manufacturer) |
| 460 | + if manufacturer is None: |
| 461 | + # the Manufacturer tag is sometimes missing in real data |
| 462 | + delattr(ds, "Manufacturer") |
| 463 | + assert _should_exclude_manufacturer(ds, config) == expect_exclude |
| 464 | + |
| 465 | + |
445 | 466 | def test_can_nifti_convert_post_anonymisation(
|
446 | 467 | tmp_path,
|
447 | 468 | directory_of_mri_dicoms,
|
|
0 commit comments