Skip to content

Add four Transport examples migrated to the R6 incubator model - #12

Open
jdlnolen wants to merge 7 commits into
mainfrom
jnolen-transport-examples
Open

Add four Transport examples migrated to the R6 incubator model#12
jdlnolen wants to merge 7 commits into
mainfrom
jnolen-transport-examples

Conversation

@jdlnolen

Copy link
Copy Markdown
Collaborator

Summary

Adds four Transport examples from the OO Work Group review set (behind the Confluence diagrams), migrated from the R5 Transport structure to this IG's redefined R6 Transport (from/to/period), plus a companion migration write-up.

Also fixes a pre-existing build blocker: input/pagecontent/index.md used the non-language-suffixed {% include ip-statements.xhtml %}, which aborts the Jekyll stage (the publisher only emits ip-statements-en.xhtml).

The four examples

Example Scenario
transport-example-01-sample-collection Courier pickup of a specimen bag (2 patients' tubes)
transport-example-02-external-shipment Temperature-controlled cooler shipment; temp Observations link back via Observation.focus
transport-example-03-laboratory-workflow Four-leg in-lab route chained via priorTransport
transport-example-04-tray-movement Tray with nested racks/tubes moved to cold storage

What changed and why

  • Element conversion to the redefinition: currentLocation→from, requestedLocation→to, completionTime→period, for→subject, history→priorTransport; dropped intent; added the required resourceDefinition (Transport|0.1.0).
  • Un-contained each example's supporting resources (Patients, Locations, Devices, Specimens, Observations, and the four legs) into standalone example files to satisfy dom-3 — the redefined Transport has no multi-item slot, and a contained resource cannot reference its container. IDs are namespaced per example (t01–t04) to avoid collisions.
  • All Transport instances registered in sushi-config.yaml with exampleCanonical.

Full details in TRANSPORT-EXAMPLES-MIGRATION.md (included in this PR).

Build status

Builds to completion (exit 0) with no genuine structural errors on the examples. Two residual error classes are not caused by these examples and are noted as follow-ups in the doc:

  • Broken #Transport.id|language|text anchor links — systemic to the redefined Transport StructureDefinition page (the existing simpledelivery example produces the identical set).
  • tx.fhir.org cache/timeout errors — transient terminology-server session failures.

🤖 Generated with Claude Code

jdlnolen and others added 5 commits August 11, 2026 12:20
The index page hardcoded {% include ip-statements.xhtml %}, but the IG
Publisher only generates language-suffixed includes (ip-statements-en.xhtml).
Jekyll's include has no filename fallback, so this aborted the entire build
before the QA stage could run. Match the -en convention already used by the
table-structuredefinitions-en and table-profiles-en includes in the same file.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds sample-collection, external-shipment, laboratory-workflow, and
tray-movement Transport examples from the OO WG review set, converted from
the R5 Transport structure to the incubator's redefined R6 Transport:
- currentLocation -> from, requestedLocation -> to, completionTime -> period
- dropped intent (removed in the redefinition); for -> subject; history -> priorTransport
- added the required resourceDefinition (Transport|0.1.0) on each instance

Un-contained each example's supporting resources (Patients, Locations, Devices,
Specimens, Observations, and the four workflow legs) into standalone example
files to satisfy dom-3, since the redefined Transport has no multi-item slot and
a contained resource cannot reference its container. IDs are namespaced per
example (t01-..t04-) to avoid collisions. The laboratory-workflow legs chain via
priorTransport; the external-shipment cold-chain Observations link back via
Observation.focus. All Transport instances registered in sushi-config with
exampleCanonical.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… model

Companion notes explaining how the four OO WG review scenarios (behind the
Confluence diagrams) were converted from R5 Transport + contained resources to
the redefined R6 Transport, including the element mapping, the dom-3-driven
un-containing, and the reverse-reference/priorTransport modeling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The examples validate with 0 errors/0 warnings on the official auto-builder
(healthy tx server); no dom-3 or resourceDefinition errors anywhere. Replace the
locally-observed error/broken-link noise (a stale tx.fhir.org session artifact)
with the authoritative CI totals and a note to trust CI over local runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reworks the four Transport examples to minimize files, following the FHIR spec's
single-example-page style:

- Examples 01, 02, 04 are now self-contained: all supporting resources live inside
  the Transport as contained resources. dom-3 reachability is satisfied by pointing
  focus at a leaf (focus -> specimen -> tube -> ... chain) and, where an example has
  multiple leaf items, a contained Provenance hub whose target lists every
  subordinate resource (linked via Transport.relevantHistory). Example 02's
  cold-chain Observations are contained rather than linking back to the container
  (which ref-1 forbids).
- Example 03 becomes four top-level, self-contained Transport legs chained by
  priorTransport, instead of contained sub-Transports inside a wrapper. The IG
  publisher cannot attach a resourceDefinition to a contained instance of a
  redefined type, so contained legs always error; top-level legs validate cleanly
  and better reflect that each hop is a first-class transport event.

Removes the 46 per-example split-out files from the prior un-contained approach.
Net: 7 files for the four scenarios (down from ~50). No dom-3 or resourceDefinition
errors remain. Doc updated accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jdlnolen and others added 2 commits August 13, 2026 12:09
The self-contained layout validates on the official auto-builder: 0 errors/0
warnings on all seven Transport instances, no dom-3 or resourceDefinition errors;
whole-IG totals 37 errors / 129 warnings / 29 broken links (all pre-existing,
unrelated), with warnings down from 171.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The examples populate from/to/period/focus/code (and priorTransport) but only
identifier/status/patient/subject were searchable. Add from, to (reference ->
Location), focus, date (-> period), code, and prior-transport, matching the
redefined element names (from/to replace the renamed currentLocation/
requestedLocation, which base location params can no longer target).

Includes a disclaimer, embedded in the search-params bundle and the migration doc,
that the reference-based parameters are defined for the production model where the
referents are addressable resources; within the self-contained examples those
referents are contained (#local) and won't resolve as search targets.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants