viewer-vigilance-kit
Release support for a medical imaging viewer: public vigilance monitoring (openFDA MAUDE, openFDA recalls, BfArM field safety notices) plus a tested minimal DICOM viewer core with a release-candidate gate. Code, tests and workflows: https://github.com/pavanyadava007/viewer-vigilance-kit
Not a medical device, not validated for clinical use. Every number on this page
is produced by a script in the repository and saved to results/*.json.
Labels used for evaluation are agency weak labels, not hand labels.
Viewer core: rendered examples






Test suite strength: planted viewer defects
15 realistic viewer bugs, switched on one at a time; a tier "catches" a defect if any of its tests fail. The same author wrote defects and tests (see caveat in the README).
| Tier | Tests run | Defects caught | Catch rate |
|---|---|---|---|
| Smoke only | 6 | 0/15 | 0% |
| Smoke + unit | 42 | 15/15 | 100% |
| Smoke + unit + golden | 59 | 15/15 | 100% |
| Golden only (extra view) | 17 | 15/15 | 100% |
| Planted defect | What it does | Failing tests: smoke / unit tier / full / golden only |
|---|---|---|
ignore_rescale_intercept | Rescale Intercept ignored (CT values off by +1024 HU) | 0 / 5 / 10 / 5 |
rescale_in_storage_dtype | rescale done in uint16 storage dtype, negative HU wrap around | 0 / 2 / 4 / 2 |
swap_pixel_spacing | row and column PixelSpacing swapped in measurements | 0 / 2 / 3 / 1 |
measurement_ignores_spacing | distance reported in pixels instead of mm | 0 / 2 / 4 / 2 |
flip_lr_letter | patient x axis mapped to R instead of L in orientation labels | 0 / 4 / 10 / 6 |
top_bottom_labels_swapped | top and bottom orientation labels swapped | 0 / 2 / 9 / 7 |
sort_by_filename | series sorted by file name instead of slice position | 0 / 4 / 7 / 3 |
sort_by_z_only | series sorted by z coordinate instead of position along the normal | 0 / 1 / 2 / 1 |
window_off_by_one | window uses width instead of width-1 and centre instead of centre-0.5 | 0 / 3 / 8 / 5 |
multivalue_window_ignored | multi-valued WindowCenter/Width ignored, falls back to min/max | 0 / 2 / 6 / 4 |
ignore_monochrome1 | MONOCHROME1 images not inverted | 0 / 1 / 2 / 1 |
contrast_inverted | contrast factor widens the window instead of narrowing it | 0 / 1 / 3 / 2 |
zoom_about_origin | zoom anchored at the top-left corner instead of the image centre | 0 / 2 / 4 / 2 |
pan_sign_flipped | pan moves the image opposite to the drag direction | 0 / 1 / 3 / 2 |
vertical_flip_render | rendered rows written bottom-up | 0 / 3 / 9 / 6 |
72 collected test items (51 test functions): 6 smoke, 36 unit, 17 golden, 13 vigilance-monitor tests. 16 requirements, all traced: True.
Vigilance monitor: sources
FDA product codes (verified via openFDA classification)
| Code | Official name (openFDA classification) | Regulation | Class | Verified |
|---|---|---|---|---|
| LLZ | System, Image Processing, Radiological | 21 CFR 892.2050 | 2 | yes |
| LMD | System, Digital Image Communications, Radiological | 21 CFR 892.2020 | 1 | yes |
| LMB | Device, Digital Image Storage, Radiological | 21 CFR 892.2010 | 1 | yes |
| PGY | Display, Diagnostic Radiology | 21 CFR 892.2050 | 2 | yes |
| QIH | Automated Radiological Image Processing Software | 21 CFR 892.2050 | 2 | yes |
Evaluation corpus
Corpus fetched on 2026-10-05.
| Source | Query window | Items | Item dates |
|---|---|---|---|
| FDA_MAUDE | date_received 2025-10-05 to 2026-10-05 | 483 | 2025-10-06 to 2026-08-31 |
| FDA_RECALL | event_date_initiated 2024-10-05 to 2026-10-05 | 53 | 2024-10-10 to 2026-07-31 |
| BFARM_FSN | list pages 1-10 (50 per page) | 500 | 2026-02-05 to 2026-10-02 |
| Product code | MAUDE reports | Recall records |
|---|---|---|
| LLZ | 426 | 52 |
| LMD | 51 | 0 |
| LMB | 3 | 0 |
| PGY | 0 | 0 |
| QIH | 3 | 1 |
Duplicates removed: 0.
Tagger vs agency weak labels
BfArM: rule flag on the notice title vs the agency's Produktgruppe. MAUDE: category rules on the narrative vs FDA product_problems terms. 50/50 split by id hash; rules tuned on dev only.
BfArM notices 2026-02-05 to 2026-10-02; text = notice title (product + manufacturer).
| Weak label (agency Produktgruppe) | Split | n | Positives | Precision | Recall | F1 |
|---|---|---|---|---|---|---|
| A: Radiologische Technik | dev | 249 | 15 | 0.250 | 0.400 | 0.308 |
| A: Radiologische Technik | test | 251 | 18 | 0.353 | 0.333 | 0.343 |
| A: Radiologische Technik | all | 500 | 33 | 0.293 | 0.364 | 0.324 |
| B: A + Med. Datenverarbeitung (Software) + Ultraschalltechnik | dev | 249 | 35 | 0.542 | 0.371 | 0.441 |
| B: A + Med. Datenverarbeitung (Software) + Ultraschalltechnik | test | 251 | 40 | 0.647 | 0.275 | 0.386 |
| B: A + Med. Datenverarbeitung (Software) + Ultraschalltechnik | all | 500 | 75 | 0.585 | 0.320 | 0.414 |
MAUDE reports 2025-10-06 to 2026-08-31: 483 reports, 424 with narrative text. Tagger reads the narrative only; label = FDA product_problems terms mapped to categories (vigil/weak_labels.yaml).
| Category | Test positives | Test precision | Test recall | Dev positives | Dev precision | Dev recall |
|---|---|---|---|---|---|---|
| image_display | 46 | 0.370 | 0.217 | 49 | 0.462 | 0.245 |
| wrong_patient | 3 | 0.250 | 0.333 | 1 | 0.000 | 0.000 |
| measurement | 3 | 0.250 | 1.000 | 5 | 0.200 | 0.400 |
| orientation_laterality | 1 | 0.000 | 0.000 | 0 | 0.000 | n/a |
| data_loss | 5 | 0.056 | 0.200 | 1 | 0.000 | 0.000 |
| performance_freeze | 11 | 0.095 | 0.182 | 7 | 0.118 | 0.286 |
| interoperability | 58 | 0.589 | 0.569 | 48 | 0.558 | 0.500 |
| cybersecurity | 21 | 0.941 | 0.762 | 27 | 0.923 | 0.889 |
| micro, test | 148 | 0.423 | 0.446 | |||
| micro, dev | 138 | 0.464 | 0.464 |
Weekly digest sample
First run on 2026-10-05 (empty state, so every item in the window is new).
| Source | Items | Item dates |
|---|---|---|
| FDA_MAUDE | 108 | 2026-07-07 to 2026-08-31 |
| FDA_RECALL | 11 | 2026-06-19 to 2026-07-31 |
| BFARM_FSN | 20 | 2026-09-22 to 2026-10-02 |
Items flagged viewer/imaging relevant: 125.
Digest 2026-10-05
Period: MAUDE date_received 2026-07-07 to 2026-10-05; recalls initiated 2026-06-07 to 2026-10-05; BfArM RSS (latest 20 notices). Only items not reported in an earlier run (state: first run).
Counts per source
| Source | New items | Viewer/imaging relevant |
|---|---|---|
| FDA_MAUDE | 108 | 108 |
| FDA_RECALL | 11 | 11 |
| BFARM_FSN | 20 | 6 |
Relevant items per category
| Category | FDA_MAUDE | FDA_RECALL | BFARM_FSN |
|---|---|---|---|
| cybersecurity | 3 | 0 | 0 |
| data_loss | 5 | 0 | 0 |
| image_display | 4 | 9 | 0 |
| interoperability | 9 | 0 | 0 |
| measurement | 1 | 3 | 0 |
| performance_freeze | 1 | 0 | 0 |
| untagged | 88 | 0 | 6 |
| wrong_patient | 1 | 8 | 0 |
Relevant items (recalls, then FSNs, then MAUDE; max 40)
| Date | Source | Manufacturer | Product | Code / group | Tags | Link |
|---|---|---|---|---|---|---|
| 2026-07-31 | FDA_RECALL | GE Healthcare | Centricity Enterprise Archive V2, V3, and V4, software produ | LLZ | image_display, wrong_patient | open |
| 2026-07-31 | FDA_RECALL | GE Healthcare | Enterprise Archive V8, software product for receiving, archi | LLZ | image_display, wrong_patient | open |
| 2026-07-31 | FDA_RECALL | GE Healthcare | Centricity PACS V2, V3, V4, V6, V7, software product is inte | LLZ | image_display, wrong_patient | open |
| 2026-07-31 | FDA_RECALL | GE Healthcare | Centricity PACS Server V7, intended for managing digital med | LLZ | image_display, wrong_patient | open |
| 2026-07-31 | FDA_RECALL | GE Healthcare | Workflow Core Services V8, intended to provide set of servic | LLZ | image_display, wrong_patient | open |
| 2026-07-31 | FDA_RECALL | GE Healthcare | Core Services Hub V8, a set of backend services including Cr | LLZ | image_display, wrong_patient | open |
| 2026-07-22 | FDA_RECALL | Merge Healthcare, Inc. | Merge PACS and Merge OrthoPACS, medical imaging diagnostic w | LLZ | image_display, measurement | open |
| 2026-07-22 | FDA_RECALL | FUJIFILM Healthcare Americas Corporation | FUJIFILM Synapse PACS software v7.4.310; radiological image | LLZ | measurement | open |
| 2026-06-30 | FDA_RECALL | Merge Healthcare, Inc. | Merge PACS, medical imaging diagnostic workstation | LLZ | image_display, wrong_patient | open |
| 2026-06-30 | FDA_RECALL | Merge Healthcare, Inc. | Merge OrthoPACS, medical imaging diagnostic workstation | LLZ | image_display, wrong_patient | open |
| 2026-06-19 | FDA_RECALL | Boston Scientific Corporation | Boston Scientific TheraSphere 360 Y-90 Management Platform, | LLZ | measurement | open |
| 2026-10-01 | BFARM_FSN | Philips Medical Systems Nederland B.V. | Spectral CT; Spectral CT China; Spectral CT 7600; Spectral C | Radiologische Technik - Computertomografen | - | open |
| 2026-10-01 | BFARM_FSN | Medtronic Inc | CareLink SmartSync Platform (iOS) (Common App, Host, Device | Aktive implantierbare medizinische Geräte - D | - | open |
| 2026-09-28 | BFARM_FSN | Siemens Healthcare GmbH Advanced Therapi | Artis icono and Artis pheno | Radiologische Technik - Röntgendiagnostik f. | - | open |
| 2026-09-23 | BFARM_FSN | Mirion Technologies (Capintec), Inc. | Captus 4000e Thyroid Uptake System | Radiologische Technik - Geräte für die nuklea | - | open |
Generated by viewer-vigilance-kit. Rule-based triage aid only; every item needs manual review against the source record.
Source: https://github.com/pavanyadava007/viewer-vigilance-kit (MIT). Author: Pavan Yadava Annappa.