This process describes a way to process the IG in a way that it is ready for publication on a website, with resolvable references.
1. Setup the working folder
- Create a working folder for your implementation guide publication (all releases of the IG will be in added to that folder, and the folder can be updated to the web server).
- e.g.
Publication
- e.g.
- Download the publisher jar to this folder and `cd` into it
Clone the history template to a folder called fhir-ig-history-template in this folder (or add it as a submodule if you want)
git clone https://github.com/HL7/fhir-ig-history-template.git ig-history
You can use other history templates:
Add the registry (clone or submodule) submodule to a folder called ig-registry
git clone https://github.com/FHIR/ig-registry.git ig-registry
In the working folder, create a folder that will be your web root (typically the folder that you will publish to the web)
example: md webroot
Create a publish.ini in the webroot folder, like this:
[website]
style=fhir.layout
server=apache
url= http://openhie.org/fhir/hiv-casereporting
org=HIE
no-registry=1layout={pid}|{url}
[feeds]
package=package-feed.xml
publication=publication-feed.xmlWhere {pid} is the format for the package id, which is a series of dotted names such as foo.fee.{category}.{code} and {url} is the format for the canonical URL http://foor.fee/{category}/{code}
{category} is optional
{code} is mandatory
Note: the url must be same as the IG's canonical URL
- Create an empty folder ig-build-zips
- Create history template files in the templates folder - To Do
- Create a folder [<category>/]<code> where category and code are the IG category (optional) and the IG code.
2. Setup the IG for publication
Change or retain these parameters from the ImplementationGuide:
{ig_id}: ImplementationGuide.id: e.g. my-ig
{ig_url}: ImplementationGuide.url: e.g. http://openhie.org/fhir/hiv-cr/ImplementationGuide/my-ig
{ig_version}: ImplementationGuide.version: e.g. 0.1.0
{ig_package_id}: ImplementationGuide.packageId: e.g. ohie.fhir.hivRun the publisher to make sure everything is ok:
java -jar ../publisher.jar -ig .
Create a file called publication.request.json in the webroot folder. see IG Publication Request Documentation
3. Add a new release (run this for every new release)
- Create a file called publication.request.json in the webroot folder. see IG Publication Request Documentation
Run the publisher with the go-publish option:
e.g.
java -jar publisher.jar -go-publish -source my-ig -destination webroot -registry ../ig-registry/fhir-ig-list.json -history ../ig-history -milestoneCreate a file publication-request.json:
{
"package-id": "{ig_package_id}",
"version" = {ig_version},
"desc" = {rel-desc},
"descmd" = {rel-desc},
"path" = {canonical}/{ig_version},
"status" = {rel-status}, ci-build|draft|qa-preview|ballot|trial-use|release|update|normative+trial-use
"sequence" = (sequence Group, e.g. DSTU, Main... )
"changes": (optional link to a page describing changes)
}- That should do it. you should now have in your www folder the ig content, and onside it one folder for each release (e.g. /0.1.0, /0.2.0). In the root folder you should also have the history folder which would look like this (besides the template, of course)
2 Comments
John Moehrke
should step 1.4 be to create a fork of ig-registry, followed by the creation of a branch in that fork? In order to submit your changes (the ig-build process given does update this folder) back to the FHIR ig-registry, the changes need to be on a forked repo with a pull-request. The ig-registry is managed differently.
Then at the very bottom one must then commit the changes that the IG build process made to the ig-registry folder, push them to a named branch, and then create a pull-request.
Then you need to plea to the gods (aka Grahame Grieve) to accept your pull-request on the ig-registry.
Or is these steps wrong? Or are these steps only necessary for organizations that want their IG in the ig-registry?
John Moehrke
Jose Costa-Teixeira Lloyd McKenzie Grahame Grieve - Would be good to get this page updated to indicate the use of go-publish. this page still is instructing to use publish-update