Skip to content

Backlog triage: all 46 open issues and 2 PRs, one line each #131

Description

@MichaelLeeHobbs

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 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions