Fix CI: download publisher.jar before running _build.sh build - #4
Conversation
…the only expression.
There was a problem hiding this comment.
Pull request overview
This PR transitions the MADO FHIR Imaging Study Manifest from a collection Bundle to a FHIR document Bundle, introducing a new MadoComposition profile (and supporting MadoNarrativeNotEmpty ValueSet) as the required first Bundle entry. Provenance is removed (commented out) from the bundle profile, examples, and generated outputs. The PR also performs terminology cleanup — standardizing on "FHIR Imaging Study Manifest", migrating documentation links from {{...}} Liquid aliases to IG Publisher [[[...]]] syntax (removing now-unused profiles.md/fhir-resources.md include files), refreshing examples/generated resources, and fixing spelling/grammar.
Changes:
- Switch
MadoFhirBundleto a document Bundle and add a requiredMadoCompositionslice (and new profile/intro/ValueSet); regenerate example bundles accordingly. - Comment out
MadoProvenanceprofile, bundle slice, and example. - Standardize naming/links: "FHIR Imaging Study Manifest" across pages/profiles, replace
{{...}}aliases with[[[...]]], drop the corresponding include files, and apply spelling/grammar fixes.
Reviewed changes
Copilot reviewed 43 out of 48 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| sushi-config.yaml | Enable show-inherited-invariants. |
| input/fsh/profiles/Bundle-Mado.fsh | Switch to document Bundle, add composition slice, comment out provenance slice. |
| input/fsh/profiles/Composition-Mado.fsh | New MadoComposition profile with required narrative, author slices, event detail, and section structure. |
| input/fsh/profiles/Provenance.fsh | Entire MadoProvenance profile commented out. |
| input/fsh/profiles/ImagingStudy-MADO.fsh | Minor comment rewording. |
| input/fsh/profiles/Endpoint-wado-rs.fsh | Bump data-absent-reason cross-version extension to 5.3.0. |
| input/fsh/profiles/Extension-AnatomicalRegion.fsh | Lower maturity status from trial-use to draft. |
| input/fsh/profiles/Device-MadoCreator.fsh | Description wording update (introduces "an FHIR"). |
| input/fsh/mhd/MHD-documentreference.fsh | Update title/short text to "FHIR Imaging Study Manifest". |
| input/fsh/terminology/narrative-status.fsh | New ValueSet for non-empty narrative statuses. |
| input/fsh/terminology/anatomical-region.fsh, imaging-procedures.fsh | Drop explicit Id declarations. |
| input/fsh/example-two-content/*.fsh | Rename instances, add Composition example, comment out provenance, update bundle. |
| input/fsh/example-two-content-with-transform/* and example-one-content/* | Update references to renamed ExamplePatient and title wording. |
| input/fsh/actors/consumer.fsh | Fix "subgorups" typo. |
| input/resources/*.json | Regenerated examples: document Bundle, Composition, removed Provenance, updated patient identifier use, new timestamps. |
| input/pagecontent/fhir-imaging-manifest.md, manifest-envelope.md, mapping.md, issues.md | Narrative rewording, switch to [[[...]]] links, spelling/grammar fixes. |
| input/intro-notes/StructureDefinition-MadoComposition-intro.md | New intro describing required Composition narrative content. |
| input/includes/aliases.md, profiles.md, fhir-resources.md | Remove unused Liquid alias include files. |
| input/images/*.drawio.svg | Update overview diagram for document Bundle and Composition, fix "attachement" typo. |
| input/ignoreWarnings.txt | Fix "polute" → "pollute". |
| .gitignore | Ignore /tmp and codespell venv. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| * type | ||
| * coding[+] = $loinc#18748-4 "Diagnostic Imaging Study" | ||
| * subject = Reference(ExamplePatient) | ||
| * author[source-device] = Reference( MadoCreatorDeviceExample ) | ||
| * author[source-organization] = Reference( MadoCreatorOrganizationExample ) | ||
| * identifier | ||
| * system = "urn:dicom:uid" | ||
| * value = "1.2.392.200140.2.1.1.1.2.799008771.2076.1519721309.448" | ||
| * type = $loinc#18748-4 "Diagnostic imaging study" | ||
| * category = $loinc#18748-4 "Diagnostic imaging study" |
|
|
||
| Optionally, each section in the Composition may provide information on each series. | ||
|
|
||
| Besides the author information, all information in is a derivative of and should not be used as the definitive source of information. No newline at end of file |
| ### FHIR Imaging Study Manifest overview | ||
|
|
||
| The figure below presents an overview of the data that is part of the imaging-manifest. In order to keep the diagram readable, not all references are included. | ||
| The FHIR Imaging Study Manifest is a FHIR document [[[Bundle]]]. The figure below presents an overview of the Bundle and the imaging manifest data that included in it. In order to keep the diagram readable, not all references are included. |
| * A FHIR manifest is represented as a FHIR json encoded FHIR {{Bundle}} following the profile {{MadoFhirBundle}}. This Bundle contains the {{ImagingStudy}} resource as well other resources such as the {{Patient}} and various {{Endpoint}}s. | ||
| * The FHIR DocumentReference SHALL include the identifier of the {{MadoFhirBundle}} as `masterIdentifier`. | ||
| * FHIR Imaging Study Manifest: | ||
| * An FHIR Imaging Study Manifest is represented as a FHIR json encoded FHIR [[[Bundle]]] following the profile [[[MadoFhirBundle]]]. This Bundle contains the [[[ImagingStudy]]] resource as well other resources such as the [[[Patient]]] and various [[[Endpoint]]]s. |
| InstanceOf: MadoFhirBundle | ||
| Title: "Bundle: MADO FHIR document" | ||
| Description: "An example of a MADO FHIR manifest." | ||
| Description: "An example of an FHIR Imaging Study Manifest." |
| Title: "DocumentReference Example for FHIR manifests with transform" | ||
| Description: "DocumentReference Example for FHIR manifests with transform service called to transform the KOS manifest into a FHIR manifest" | ||
| Title: "DocumentReference Example for FHIR Imaging Study Manifest with transform" | ||
| Description: "DocumentReference Example for FHIR Imaging Study Manifest with transform service called to transform the KOS manifest into an FHIR Imaging Study Manifest" |
| Parent: Device | ||
| Title: "MADO Creator" | ||
| Description: """A profile for the Device resource that represents the creator of an imaging study manifest. The primary goal is to communicate the fields: | ||
| Description: """A profile for the Device resource that represents the creator of an FHIR Imaging Study Manifest. The primary goal is to communicate the fields: |
| // Profile: MadoProvenance | ||
| // Parent: Provenance | ||
| // Title: "MADO Provenance" | ||
| // Description: """ | ||
| // The purpose of this resource is to indicate information about the system that created the manifest. Additionally, it can be used to sign the content of the Bundle. | ||
|
|
||
| In DICOM KOS this information (and the referred MadoCreator) corresponds to the Institution Name, Institution Id, Manufacturer Name in the General Equipment module. | ||
| """ | ||
| * insert SetFmmAndStatusRule( 1, draft ) | ||
| // In DICOM KOS this information (and the referred MadoCreator) corresponds to the Institution Name, Institution Id, Manufacturer Name in the General Equipment module. | ||
| // """ | ||
| // * insert SetFmmAndStatusRule( 1, draft ) | ||
|
|
||
| * target MS | ||
| * ^short = "SHALL contain a list with all resources in the Bundle." | ||
| * recorded | ||
| * ^short = "When the bundle/provenance was created." | ||
| * agent | ||
| * insert SliceElement( #value, type ) | ||
| * agent contains mado-creator 1..1 MS | ||
| * agent[mado-creator] | ||
| * type = http://terminology.hl7.org/CodeSystem/provenance-participant-type#assembler | ||
| * who only Reference( MadoCreator ) | ||
| * onBehalfOf 1..1 MS | ||
| * onBehalfOf only Reference( MadoCreatorOrganization ) | ||
| * ^short = "The owner of the MadoCreator device." | ||
| // * target MS | ||
| // * ^short = "SHALL contain a list with all resources in the Bundle." | ||
| // * recorded | ||
| // * ^short = "When the bundle/provenance was created." | ||
| // * agent | ||
| // * insert SliceElement( #value, type ) | ||
| // * agent contains mado-creator 1..1 MS | ||
| // * agent[mado-creator] | ||
| // * type = http://terminology.hl7.org/CodeSystem/provenance-participant-type#assembler | ||
| // * who only Reference( MadoCreator ) | ||
| // * onBehalfOf 1..1 MS | ||
| // * onBehalfOf only Reference( MadoCreatorOrganization ) | ||
| // * ^short = "The owner of the MadoCreator device." |
| | Study series.description | MadoImagingStudy.series.description | SR: EV(111028,DCM,"Image Library") -> EV(126200,DCM,"Image Library Group") -> EV (MADOTEMP002, 99IHE, “Series Description”) | Temp Code | | ||
| | Study series.started | MadoImagingStudy.series.started | SR: EV(111028,DCM,"Image Library") -> EV(126200,DCM,"Image Library Group") -> EV (MADOTEMP003, 99IHE, “Series Date”) & EV (MADOTEMP004, DCM, “Series Time”) | Temp Code | | ||
| | Study series.numberOfInstances | MadoImagingStudy.series.numberOfInstances | SR: EV(111028,DCM,"Image Library") -> EV(126200,DCM,"Image Library Group") -> EV (MADOTEMP007, 99IHE, “Number of Series Related Instances”) | Temp Code | | ||
| | Study series.description | MadoImagingStudy.series.description | SR: EV(111028,DCM,"Image Library") -> EV(126200,DCM,"Image Library Group") -> EV (131563, DCM, “Series Description”) | Temp Code | |
There was a problem hiding this comment.
Do these lines still need the term "Temp Code" at the end, would expect you can remove this as it are now the final codes.
The FHIR IG Docker Build CI job was failing because
_build.sh buildrequirespublisher.jarto exist ininput-cache/, but nothing in the workflow downloaded it beforehand. When the JAR is missing,_build.shlogs"IG Publisher NOT FOUND … Aborting…"and exits 0 without producing any output, causing the subsequenttest -f output/qa.jsonverification step to fail with exit code 1.Root Cause
_build.sh buildchecks forpublisher.jarininput-cache/or a parent folder. Since neither location had the JAR in the CI environment, the build was silently aborted.Fix
Added a "Download FHIR IG Publisher" step to
.github/workflows/ig-docker-build.yml(before the Docker_build.shstep) that:input-cache/in the workspace.publisher.jarfrom the HL7 GitHub releases (https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar).Because the workspace is mounted into the Docker container as
/home/publisher/ig, the JAR is immediately available at the path_build.shexpects ($(pwd)/input-cache/publisher.jar), and the build proceeds normally.