@@ -89,7 +89,7 @@ depending on your trade-off between freshness and stability:
8989| Goal | Pin in `uses:` | Notes |
9090|---|---|---|
9191| Always-latest within current major | `medvertical/records-fhir-validator@v0` | Force-moved on every stable release; never advances onto a prerelease |
92- | Specific minor/patch (recommended for production CI) | `medvertical/records-fhir-validator@v0.3 .0` | Immutable once published |
92+ | Specific minor/patch (recommended for production CI) | `medvertical/records-fhir-validator@v0.4 .0` | Immutable once published |
9393| Bit-exact reproducibility | `medvertical/records-fhir-validator@<commit-sha>` | For audit / forensic builds |
9494
9595The `validator-v<semver>` tag you may see on the public repo's release
@@ -494,12 +494,13 @@ constraints measured by `quality:spec-coverage`.
494494
495495MII conformance is measured in a separate lane from the HL7
496496` FHIR/fhir-test-cases ` score. The current scoped MII-2026 reference run was
497- generated on 2026-05-09 against the official MII FHIR Validator container at
498- ` http://localhost:8080 ` . It matches the reference validator on 241/241 measured
499- resources from the refreshed MII 2026 corpus under the ` mii-2026-reference `
500- profile scope and ` mii-local-blaze ` terminology mode, with 12 classified
501- corpus/profile-drift skips. The source-repository report is
502- ` conformance-results/mii-triangulation-2026-05-09.json ` .
497+ generated on 2026-05-19 against the official MII FHIR Validator container
498+ ` mii-fhir-validator:0.0.1-alpha.7 ` at ` http://localhost:8081 ` . It matches the
499+ reference validator on 241/241 measured resources from the refreshed MII 2026
500+ corpus under the ` mii-2026-reference ` profile scope and ` mii-local-blaze `
501+ terminology mode, with 12 classified corpus/profile-drift skips. The
502+ source-repository report is
503+ ` conformance-results/mii-triangulation-alpha7-2026-05-19.json ` .
503504
504505This is a scoped parity claim for the measured package-example corpus. It is
505506not an MII certification claim and does not imply full site-level MII
@@ -510,6 +511,57 @@ The full scope-expansion plan is tracked in
510511The public ` medvertical/records-fhir-validator ` export includes the same
511512roadmap under ` docs/conformance-scope-roadmap.md ` .
512513
514+ ### FHIR Schema Dual-Path Scope
515+
516+ FHIR Schema is being evaluated as a cleaner intermediate representation for
517+ the same StructureDefinition semantics, not as a replacement for conformance
518+ evidence. The current engine remains StructureDefinition-first. The FHIR Schema
519+ graph path runs in parallel and is compared against both Records' current
520+ StructureDefinition path and Java/reference ` OperationOutcome ` evidence where a
521+ reference report exists.
522+
523+ The current MII Observation dual-path lane covers 261 real fixtures. Of those,
524+ 131 have Java/reference coverage and 90 reference-comparable issues after
525+ excluding Java informational open-slice hints and Java-implied core Observation
526+ profiles (` bp ` , ` resprate ` , ` vitalsigns ` ) that are not part of the explicit MII
527+ profile contract for the lane. In that scoped lane, the graph path matches 73
528+ normalized Java/reference issue keys and the current Records comparable issue
529+ lane now also matches 73 after the slice-aware FHIR Schema merge and
530+ closed-slicing equivalence normalization loop.
531+
532+ Reference coverage is reported separately from graph-vs-Records correctness. The
533+ current attached MII HTTP reference report covers 131 fixtures and leaves 130
534+ reference-coverage gaps: 77 Onkologie fixtures outside the current report scope,
535+ 47 Gematik ISiK/ICU fixtures outside that scope, 2 Person/Base fixtures outside
536+ that scope, and 4 fixtures without an explicit ` meta.profile ` . A separate local
537+ HL7 Java validator CLI supplement can cover the 126 profiled gaps and reduces
538+ the remaining reference-coverage gaps to the 4 no-profile fixtures. That CLI
539+ supplement is Java OperationOutcome evidence, not a replacement for the official
540+ MII HTTP reference validator container.
541+
542+ The report classifies the remaining cases instead of hiding them in one score:
543+ 46 three-way-match cases, no one-sided Graph/Java-vs-Records or
544+ Records/Java-vs-Graph confirmed gaps, 13 graph-only-unconfirmed cases, 13
545+ Records-only-unconfirmed cases, 1 both-miss-reference case, 12 intentionally
546+ unmapped profile-missing cases, and 4 no-profile fixture cases.
547+ The intentionally excluded classes are part of the evidence model: unsupported
548+ or unmapped corpus profiles, fixtures without an explicit profile, Java
549+ informational hints, and Java behavior from implicit core Observation profiles
550+ outside the measured MII profile contract.
551+
552+ The graph-vs-Records delta keys are also classified into decision buckets:
553+ forbidden or required ` code.coding ` slice cardinality, Coding identity versus
554+ full-pattern differences, component-slice expression granularity, and one
555+ Records-only ` focus ` rule. These remain visible until Java/reference coverage
556+ or an explicit product decision promotes them into runtime behavior. The single
557+ Java-covered both-miss case is the MII spontaneous respiratory-rate fixture,
558+ where Java reports a required ` sct ` ` code.coding ` slice as missing while both
559+ TypeScript paths accept the explicit child ` system ` /` code ` pattern.
560+
561+ This lane is therefore an implementation-reduction and convergence signal. It
562+ does not broaden the public headline parity claim beyond the explicitly measured
563+ FHIR JSON comparison lanes.
564+
513565## License
514566
515567Apache-2.0 for this package. The surrounding Records application remains proprietary and is licensed separately.
0 commit comments