Skip to content

refactor(ihe-iti): split the audit feature into balp and atna, at 0.0.40 - #33

Merged
rubentalstra merged 1 commit into
mainfrom
refactor/ihe-iti-balp-atna
Oct 20, 2026
Merged

rubentalstra merged 1 commit into
mainfrom
refactor/ihe-iti-balp-atna

Conversation

@rubentalstra

Copy link
Copy Markdown
Collaborator

What changed and why

ihe-iti 0.0.39 had one audit feature forwarding to ihe-atna/balp, which carries atna. xcpd with audit therefore compiled ihe-atna's FHIR side for an ITI-55 message that needs none of it. FerroFED's interim copy (FerroHEALTH/FerroFED#1177) has two switches instead. The owner chose that split here on 2026-10-20, in line with FerroAUDIT's v0.2.0 direction that the BALP writer works without the syslog stack. No specification governs the feature layout: our own design.

  • balp = ihe-atna/balp, jiff and tokio: the BALP AuditEvent of ITI-83, ITI-78, ITI-119, ITI-90, ITI-91, ITI-93 and ITI-94, with .audited(recorder) on the PIXm, PDQm, mCSD and PMIR clients. It replaces every former audit gate except the ITI-55 message.
  • atna = ihe-atna/atna: AuditEvent::message, the ITI-55 DICOM PS3.15 audit message of xcpd (§3.55.5.1.1), with its role codes. A new test, features::the_iti_55_audit_message_compiles_no_fhir_model, asserts that xcpd,atna compiles neither fhir-types nor serde_json. The XCPD client's .audited(...) itself needs neither feature, as before.
  • Breaking for a product: audit is gone. Enable balp, atna or both, the names FerroFED already uses.
  • ihe-iti moves to 0.0.40 with the lock. The CI feature matrix has rows for balp, atna, pixm,balp, pdqm,balp, mcsd,balp, pmir,balp and xcpd,atna, and every row lints and tests clean locally. The README, the crate docs, CLAUDE.md, the memory and the changelog name the two features.

After the merge, 0.0.40 is published between releases through publish-crates.yml with publish=true, and no product release is cut.

Local gates: fmt; clippy -D warnings with all features and on each of the 12 feature rows; nextest 416 with all features; rustdoc -D warnings; ihe-citations (317), comment-style, crate-version-guard, changelog-guard; actionlint.

Closes #32

Licensing of contributions

  • I accept the terms in CONTRIBUTING.md § Licensing of contributions: I have the right to submit this work, I license it under the project licence of the version it lands in, and I grant the Licensor the relicensing right stated there.

Checklist

  • Every conformance decision cites the specification (the IHE ITI Technical Framework, PIXm, PDQm, HL7 FHIR R4, HL7 v2), never memory and never another implementation.
  • Rust gates pass, once the workspace has a member: cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings with and without --all-features, cargo nextest run --workspace --locked, cargo doc with RUSTDOCFLAGS=-D warnings, and cargo deny check.
  • Every refusal the change adds has an asserted negative test, and no test was weakened to pass.
  • Shell and workflow files are clean: shellcheck --severity=style, actionlint, zizmor --min-severity=low .github/, and the self-test of every script the change touches.
  • CHANGELOG.md has an [Unreleased] entry, or the change carries the no-changelog label.
  • No patient data, real identifier, key, token or password in a fixture, test or example.
  • Every commit is signed.
  • No AI or assistant attribution anywhere in the commits or this PR.

balp writes the BALP AuditEvent of the FHIR profiles on ihe-atna/balp, and
atna writes the ITI-55 message of xcpd on ihe-atna/atna with no FHIR model,
which a new feature-graph test holds. FerroFED keeps its feature names.
@rubentalstra rubentalstra added this to the v0.0.3 milestone Oct 20, 2026
@rubentalstra rubentalstra added refactor Behaviour-preserving code change. refactor/ and refactor:. spec:IHE The IHE ITI Technical Framework: profiles, actors and transactions. labels Oct 20, 2026
@rubentalstra
rubentalstra added this pull request to the merge queue Oct 20, 2026
Merged via the queue into main with commit 82d56cb Oct 20, 2026
28 of 52 checks passed
@rubentalstra
rubentalstra deleted the refactor/ihe-iti-balp-atna branch October 20, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor Behaviour-preserving code change. refactor/ and refactor:. spec:IHE The IHE ITI Technical Framework: profiles, actors and transactions.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split ihe-iti's audit feature into balp and atna, and publish ihe-iti 0.0.40

1 participant