Share this page:

file CA Baseline Governance Call - Fri Jul 5th 2-3pm ET - Agenda

  • Posts: 29
2 months 2 days ago #9522 by Elliot Silver
For anyone interested in trying yourself, this is the script I was working off of today was:
  • cd ~/src/hl7-canada
  • git clone [email protected]:HL7-Canada/ca-baseline.git
  • cd ca-baseline
  • In ca-baseline directory:
    • git checkout -b rel-1.1-pub
    • ./_updatePublisher.sh
    • ./_genonce.sh
    • cd ..
  • git clone [email protected]:HL7/fhir-ig-history-template.git ig-history
  • git clone [email protected]:HL7/fhir-web-templates.git fhir-web-templates
  • git clone [email protected]:FHIR/ig-registry.git ig-registry
    (Note: may need to fork and clone if you don't have sufficient permissions for ig-registry repo)
  • cd ig-registry
  • In ig-registry directory:
    • git checkout -b hl7-ca-publication
    • cd ..
  • mkdir publication
  • cd publication
  • In publication directory:
    • cp ../ca-baseline/input-cache/publisher.jar .
    • mkdir webroot templates history
    • cp -r ../ig-history/* history
    • rm -r history/hl7
    • cp ../fhir-web-templates/*template* templates
    • Create webroot/publish-setup.json:
      {
        "website": {
          "style": "fhir.layout",
          "url": "http://hl7canada.ca/fhir",
          "server": "apache",
          "org": "HL7 Canada",
          "search-template": "searchform.template.html",
          "index-template": "index.template"
        },
        "feeds": {
          "package": "package-feed.xml",
          "publication": "publication-feed.xml"
        },
        "layout-rules": [
          {
            "npm": "hl7.fhir.ca.*",
            "canonical": "http://hl7canada.ca/fhir/{4}",
            "destination": "/{4}"
          }
        ]
      }
    • Create webroot/package-feed.xml:
      <?xml version="1.0" encoding="UTF-8"?>
      <rss xmlns:atom="http://www.w3.org/2005/Atom"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:fhir="http://hl7.org/fhir/feed" version="2.0">
        <channel>
          <title>HL7 Canada FHIR Implementation Guides</title>
          <description>FHIR Implementation Guides published by HL7 Canada</description>
          <link>http://hl7-canada.ca/fhir</link>
          <generator>HL7 Canada</generator>
          <lastBuildDate>Sat, 29 Jun 2024 04:32:49 -0700</lastBuildDate>
          <atom:link href="http://hl7canada.ca/fhir/package-feed.xml" rel="self" type="application/rss+xml" />
          <pubDate>Sat, 29 Jun 2024 04:32:49 -0700</pubDate>
          <language>en</language>
          <ttl>600</ttl>
          <item>
          </item>
        </channel>
      </rss>
    • Copy webroot/package-feed.xml to webroot/publication-feed.xml, and adjust file name in link element
    • From publication directory, generate webroot/package-registry.json:
      java -jar publisher.jar -generate-package-registry /home/elliot/src/hl7-canada/publication/webroot
    • cd ../ca-baseline
  • In ca-baseline directory:
    • Temporary until repo updated:
      • Search and replace old hl7.org/fhir/ca canonical with new hl7canada.ca/fhir canonical
      • Delete package-list.json
    • Update ImplementationGuide resource file (or sushi.yaml) to ensure status, releaselabel, and version are all correct; ensure dependencies are to specific versions.
    • ./_genonce.sh
    • Review commandline build errors and output/qa.html errors and address.
    • Create publication-request.json:
      {
        "package-id" : "hl7.fhir.ca.baseline",
        "version" : "1.1.0",
        "path" : "http://hl7canada.ca/fhir/baseline/1.1",
        "mode" : "milestone",
        "status" : "release",
        "sequence" : "HL7 Canada Baseline",
        "desc" : "Milestone release",
        "first" : true,
        "title" : "HL7 Canada Baseline",
        "ci-build" : "http://build.fhir.org/ig/HL7-Canada/ca-baseline",
        "category" : "National Base",
        "introduction" : "The HL7 Canada Baseline Implementation Guide defines profiles for general use in a Canadian context."
      }
    • ./_genonce.sh
    • Review commandline build errors and output/qa.html errors and address.
    • cd ../publication
  • In publication directory:
    • Run publication process:
      java -jar publisher.jar -go-publish \
        -source    /home/elliot/src/hl7-canada/ca-baseline \
        -web       webroot \
        -history   history \
        -registry  /home/elliot/src/hl7-canada/ig-registry/fhir-ig-list.json \
        -temp      temp \
        -templates templates
    • Review generated website:
      jekyll -s webroot
    • Upload contents of webroot directory to hl7canada.ca/fhir
    • cd ..
  • Skip for demo::
    • Commit changes to ig-registry repo, and make PR.
    • Commit changes to ca-baseline repo, and make PR.
    • Consider creating a repo for publication directory.
Done.

At the end, you should have a directory structure like:
  • fhir-web-templates - can delete now
  • ig-history - can delete now
  • ig-registry
    • ...
  • ca-baseline
    • ...
  • publication
    • history
      • ...
    • templates
      • header.template
      • index.template
      • postamble.template
      • preamble.template
      • searchform.template.html
    • temp
      • ...
    • webroot
      • package-feed.xml
      • package-registry.json
      • publication-feed.xml
      • publish-setup.json
      • baseline
        • 1.1
          • IG contents for 1.1 release
        • IG contents for "current" release
To see structure of follow-on publications, you can go into ca-baseline, update version in IG resource and in publication-request.json (and change "first" to false), and try running -go-publish process again.

Please Log in or Create an account to join the conversation.

  • Posts: 447
2 months 2 days ago #9521 by Michael Savage
Hi folks!

A huge thank-you to Elliot for walking us through the IG Publisher process so diligently and for following-up with such a comprehensive list of links and resources! I'm just following-up on this same thread to provide the link to recording from the session:



Thank you again Elliot and have a great weekend all!

Please Log in or Create an account to join the conversation.

  • Posts: 29
2 months 2 days ago - 2 months 2 days ago #9520 by Elliot Silver
Hi everyone,

I'm sorry that today's session didn't quite go as planned. I'm going to blame it on the demo gremlins; I'm sure many of you have been in the same situation.

As I mentioned in the call, IG Publisher documentation is spread out, and some of it is out of date. However, places to look for publishing with IGP are:
Some of those pages don't do a great job of distinguishing between HL7 (or in the last link, IHE) processes and requirements for publication compared to the technical requirements or general best practices, but comparing the HL7, non-HL7, and IHE processes, should help clarify.

Additionally, there are several locations for general IG Publisher information and configuration
I'll work with Sheridan and Mike to schedule the remainder of the walk through for a call, or to provide a recording of it.

Thanks and apologies,

Elliot.
Last edit: 2 months 2 days ago by Elliot Silver. Reason: fix bullets

Please Log in or Create an account to join the conversation.

  • Posts: 447
2 months 4 days ago #9511 by Michael Savage
Hi all!

For this Friday's CA Baseline Governance session (Friday July 5th 2-3pm ET) agenda, we will be using the time for Elliot Silver to provide a walkthrough/demo to the group on how to use IG Publisher to publish Implementation Guides (iGuides).

Thank you!

Please Log in or Create an account to join the conversation.

InfoCentral logo

Improving the quality of patient care through the effective sharing of clinical information among health care organizations, clinicians and their patients.