Skip to content

Fix CI: download publisher.jar before running _build.sh build - #4

Merged
bvdh merged 19 commits into
masterfrom
document-bundle
Jun 11, 2026
Merged

Fix CI: download publisher.jar before running _build.sh build#4
bvdh merged 19 commits into
masterfrom
document-bundle

Conversation

@bvdh

@bvdh bvdh commented May 29, 2026

Copy link
Copy Markdown
Contributor

The FHIR IG Docker Build CI job was failing because _build.sh build requires publisher.jar to exist in input-cache/, but nothing in the workflow downloaded it beforehand. When the JAR is missing, _build.sh logs "IG Publisher NOT FOUND … Aborting…" and exits 0 without producing any output, causing the subsequent test -f output/qa.json verification step to fail with exit code 1.

Root Cause

_build.sh build checks for publisher.jar in input-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.sh step) that:

  1. Creates input-cache/ in the workspace.
  2. Downloads the latest publisher.jar from 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.sh expects ($(pwd)/input-cache/publisher.jar), and the build proceeds normally.

@bvdh
bvdh requested a review from Copilot May 29, 2026 15:01
@bvdh
bvdh requested a review from CwCvW May 29, 2026 15:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 MadoFhirBundle to a document Bundle and add a required MadoComposition slice (and new profile/intro/ValueSet); regenerate example bundles accordingly.
  • Comment out MadoProvenance profile, 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.

Comment on lines +8 to +17
* 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
Comment thread input/fsh/profiles/Composition-Mado.fsh
### 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:
Comment on lines +1 to +23
// 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 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot AI changed the title Update FHIR manifest bundle to document Fix CI: download publisher.jar before running _build.sh build Jun 11, 2026
Copilot finished work on behalf of bvdh June 11, 2026 11:23
Copilot finished work on behalf of bvdh June 11, 2026 11:30
Copilot finished work on behalf of bvdh June 11, 2026 12:32
@bvdh
bvdh merged commit 7f76426 into master Jun 11, 2026
1 check passed
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.

4 participants