Backlog triage — all 46 open issues + 2 PRs, one line each
Outside contributor, not a maintainer. The backlog looked large enough to be discouraging, so I worked through every open issue and PR and verified each claim against the shipped standard/*.json and the current published standard. No changes requested — this is offered as triage you can take or leave, and every line is checkable.
Headline: the published JSON is two years stale, for a fixable reason. standard/*.json is rev2024b (2024-04-18). The update-standard workflow is green — Apr/May/Jun/Jul 2026 all succeeded — but its final "Publish to master" step is commented out (c670936), so every month it regenerates the standard, uploads an artifact, tests it, and discards it. That single disabled step is the root cause of several issues below.
Second finding: 24 of 46 issues cannot be fixed in this repository — 15 File Editor, 9 website content. That is why the tracker looks unmanageable.
Fix first
| # |
Recommended action |
Why |
| 116 |
PR #130 is open for this |
Workflow already succeeds; only the commit step is disabled. #130 re-enables it as an auto-opened PR, which answers the "unapproved commit" concern that caused it to be turned off. Tested end to end on a fork — the regenerated diff is +651,911 / −479,771 across 11 files, including 40 SOP Classes that have never been published. |
Closes automatically once #116 lands
| # |
Recommended action |
Why |
| 126 |
Verify after regeneration, then close |
LABELMAP appears 0× in shipped data — only because the data is rev2024b. |
| 125 |
Verify after regeneration, then close |
Reporter is right: a 2024b defect NEMA fixed in 2024c. |
| 74 |
Regenerate, re-diff, then fix one real parser bug |
621 rows shipped vs 655 in today's Table E.1-1; ~30 of the 35 postdate 2024b. Separately, the table yields a bogus row id: "ggggeeee-where-gggg-is-odd" from the "(gggg,eeee) where gggg is odd" line. |
Close now — verified not a bug
| # |
Recommended action |
Why |
| 69 |
Close as fixed |
Dnand occurs 0× in the current standard and 0× in shipped JSON; text reads "Dn and". |
| 88 |
Close |
All three Overlay modules are present (22/5/4 CIODs). Tags use 60xx placeholders, so searching "6000" finds nothing. |
| 119 |
Close |
(3006,0088) is marked RET (2022b) in PS3.6; the report links the 2015a edition. |
| 123 |
Close |
Every SQ has VM 1 — PS3.5 §7.4.3 says so explicitly. Multiplicity is Items, not VM. |
| 129 |
Close |
PS3.5 §7.4.4 gives 2C the same rules as Type 2, and §7.4.3 permits zero length when a value is unknown. The label is correct. |
| 91 |
Close, label issue-with-standard |
PS3.3 C.8.4.10.1.7 itself reads "measured in MegaBecquerels (Mbq)". Faithfully parsed; needs a CP to NEMA. |
| 79 |
Close |
pydicom usage question — group 0002 lives on ds.file_meta. Already answered in-thread. |
File Editor — recommend discontinuing the feature (15)
15 issues, ~5 underlying defects, oldest January 2021, none triaged. Front end last deployed 2025-06-17, shipping React 16.13.1 (March 2020) — an unsupported major parsing untrusted binary input. Files are parsed in-browser and never transmitted; the concern is an unmaintained beta that looks supported.
| # |
Recommended action |
Why |
| 96 |
Close, and discontinue the File Editor |
Reproduces (edit a value inside a sequence, then export). Fixing it still leaves the parse, encoding and validation clusters. |
| 72 |
Close |
Same defect as #96 — read vs. write failure on the same export path. |
| 85 |
Close |
No repro in the report; #96 has it. |
| 124 |
Close |
Same export defect as #96. |
| 78 |
Close |
Parse cluster. The editor renders Unable to parse <name>. for every failure, discarding the exception; parser is dcmjs, so some fixes belong upstream. |
| 86 |
Close |
Same parse signature as #78. |
| 61 |
Close |
Likely missing (0002,0000), the confirmed cause in #109. |
| 57 |
Close |
Secondary Capture files commonly ship minimal File Meta — same cause as #109. |
| 84 |
Close |
Valid: must honour Specific Character Set (0008,0005), not assume a default. |
| 77 |
Close |
Same as #84. The proposed unconditional UTF-8 decode would corrupt ISO_IR 100/144 and the ISO 2022 sets. |
| 60 |
Close |
Valid, and the worst of them — displays (3006,0010) under (3006,0080)'s label on a correctly-read file. |
| 111 |
Close |
Correct report, but unfixable as filed: no attribute-level conditions are published (module-level only, 315 of 3258 rows). |
| 121 |
Close |
Mixes the same conditions blocker with three plain structural violations. |
| 120 |
Close |
Needs a VR-level validation layer that does not exist. |
| 109 |
Close |
Resolved by the reporter — the file lacked (0002,0000). |
Website content or UI — not fixable in this repository (9)
| # |
Recommended action |
Why |
| 87 |
Redirect to whoever owns the site |
ISO_IR100 occurs 0× in this repo; no JSON file has any example-value field. Example values are authored on the site. |
| 90 |
Redirect |
Same. Values are legal Person Name syntax but poor examples. |
| 73 |
Redirect |
Same. "Houndsfield" is a site-side misspelling. |
| 76 |
Redirect |
Example value is site content; the unit it conflicts with is the standard's own — see #91. |
| 42 |
Redirect |
Website feature (deep links). Best value of the four site requests; a maintainer already agreed in-thread. |
| 65 |
Redirect |
Website filter feature. More useful once #49 lands, but the filter itself is site-side. |
| 110 |
Redirect, with a workaround |
Website export feature. module_to_attributes.json here already is the exportable table. |
| 71 |
Redirect |
CSS issue from 2022; worth re-testing before anything else. |
| 58 |
Split |
(a) CIOD sort order — website. (b) Transfer syntax listing — genuine gap here, duplicate of #122. |
Parser work worth doing (6)
| # |
Recommended action |
Why |
| 49 |
Accept — highest-value enhancement |
Enumerated values exist only as unstructured HTML inside description. Structuring them enables validators and would have made #126 machine-detectable. |
| 122 |
Accept, retitle to "parse the UID registry (PS3.6 Table A-1)" |
The repo models zero transfer syntaxes; sops.json is only SOP Class UID → CIOD. Supersedes half of #58. |
| 66 |
Accept |
Content Sequence recursion is truncated silently — (0040,A730) appears once, 0 paths contain it twice. Truncating is right; not signalling it isn't. Add a recursion marker. |
| 48 |
Accept |
Notes are not linked into tag descriptions; needs a table-row → note link. |
| 63 |
Document the limitation, relabel enhancement |
Print Management is a normalized IOD; the parser ingests only composite IODs (PS3.3 Annex A). Currently mislabelled bug. |
| 43 |
Needs #49-style work first |
All 9 macros are expanded into SR Document Content unconditionally, so Type 1 attributes are listed that may not apply. |
Housekeeping (5)
| # |
Recommended action |
Why |
| 22 |
Close as done, or narrow-retitle |
The example given — part-15 vs part-6 retirement consistency — is already implemented in verify_table_integrity(). |
| 31 |
Retitle to "Add TypedDicts for JSON row shapes" |
The Python-version half is done (already 3.12); TypedDict remains unused, with one TODO at extract_attributes.py:14. Good first issue. |
| 21 |
Fold into PR #100 |
There is no CI to run end-to-end tests against yet. |
| 20 |
Finish the last bullet and close |
5 of 6 checkboxes are complete; only "explain functional group macros" remains. |
| 19 |
Re-verify against current, then close |
Filed 2020 against NEMA's site; those defects have most likely been fixed upstream. |
Open pull requests
| PR |
Recommended action |
Why |
| #100 |
Rebase and merge |
Still needed — there is no CI workflow, .travis.yml is still present, and README line 1 renders a dead Travis badge. Conflicts only on the requirements.txt hunk, which master has already superseded. |
| #108 |
Close (@dependabot close) |
Obsolete — master already pins requests==2.32.3, newer than the 2.32.0 proposed. |
I have posted the reasoning behind each recommendation as a comment on the individual issues, so nothing above has to be taken on trust. Every claim is reproducible against the current standard and the JSON on master; where I could not verify something I have said so rather than guessed.
Happy to open individual PRs for any of the parser items. And if it would help, I am willing to take limited permissions on this repository — triage only, enough to label and close issues — so the backlog can be cleared without costing you review time. Entirely your call, and no offence taken if the answer is no.
Backlog triage — all 46 open issues + 2 PRs, one line each
Outside contributor, not a maintainer. The backlog looked large enough to be discouraging, so I worked through every open issue and PR and verified each claim against the shipped
standard/*.jsonand the current published standard. No changes requested — this is offered as triage you can take or leave, and every line is checkable.Headline: the published JSON is two years stale, for a fixable reason.
standard/*.jsonis rev2024b (2024-04-18). Theupdate-standardworkflow is green — Apr/May/Jun/Jul 2026 all succeeded — but its final "Publish to master" step is commented out (c670936), so every month it regenerates the standard, uploads an artifact, tests it, and discards it. That single disabled step is the root cause of several issues below.Second finding: 24 of 46 issues cannot be fixed in this repository — 15 File Editor, 9 website content. That is why the tracker looks unmanageable.
Fix first
Closes automatically once #116 lands
LABELMAPappears 0× in shipped data — only because the data is rev2024b.id: "ggggeeee-where-gggg-is-odd"from the "(gggg,eeee) where gggg is odd" line.Close now — verified not a bug
Dnandoccurs 0× in the current standard and 0× in shipped JSON; text reads "Dn and".60xxplaceholders, so searching "6000" finds nothing.SQhas VM 1 — PS3.5 §7.4.3 says so explicitly. Multiplicity is Items, not VM.issue-with-standardds.file_meta. Already answered in-thread.File Editor — recommend discontinuing the feature (15)
15 issues, ~5 underlying defects, oldest January 2021, none triaged. Front end last deployed 2025-06-17, shipping React 16.13.1 (March 2020) — an unsupported major parsing untrusted binary input. Files are parsed in-browser and never transmitted; the concern is an unmaintained beta that looks supported.
Unable to parse <name>.for every failure, discarding the exception; parser is dcmjs, so some fixes belong upstream.ISO_IR 100/144and the ISO 2022 sets.Website content or UI — not fixable in this repository (9)
ISO_IR100occurs 0× in this repo; no JSON file has any example-value field. Example values are authored on the site.module_to_attributes.jsonhere already is the exportable table.Parser work worth doing (6)
description. Structuring them enables validators and would have made #126 machine-detectable.sops.jsonis only SOP Class UID → CIOD. Supersedes half of #58.enhancementbug.Housekeeping (5)
verify_table_integrity().TypedDictremains unused, with one TODO atextract_attributes.py:14. Good first issue.current, then closeOpen pull requests
.travis.ymlis still present, and README line 1 renders a dead Travis badge. Conflicts only on therequirements.txthunk, whichmasterhas already superseded.@dependabot close)masteralready pinsrequests==2.32.3, newer than the 2.32.0 proposed.I have posted the reasoning behind each recommendation as a comment on the individual issues, so nothing above has to be taken on trust. Every claim is reproducible against the current standard and the JSON on
master; where I could not verify something I have said so rather than guessed.Happy to open individual PRs for any of the parser items. And if it would help, I am willing to take limited permissions on this repository — triage only, enough to label and close issues — so the backlog can be cleared without costing you review time. Entirely your call, and no offence taken if the answer is no.