Stream: implementers
Topic: Creating a new IG for a new Profile
Brian Alper (Dec 14 2021 at 15:16):
We are trying to create a new Profile (EBMRecommendation) for a newly created Resource (ArtifactAssessment) and because this Resource does not exist in 4.6.0 or any earlier numbered FHIR version, we are trying to create the simplest IG and simplest Profile to get started in the current FHIR build. Not having success in getting it to build. Does @Grahame Grieve need to do the initial setup for a new IG?
David Pyke (Dec 14 2021 at 15:50):
A draft resource isn't going to work in an IG that relies on published resources. You're likely going to have to wait on it being published until the publisher can reference it.
Brian Alper (Dec 14 2021 at 15:59):
What do you mean by published resources? Do you mean the resource has to be a in published version (snapshot) of FHIR (e.g. 4.6.0)? Can we make a Profile in the current build before the next snapshot? If not, when is the next snapshot expected?
Lloyd McKenzie (Dec 14 2021 at 16:18):
Next snapshots for core and R4B should be out in days. @Grahame Grieve?
David Pyke (Dec 14 2021 at 16:33):
The publisher doesn't work with the CI build, only snapshots and the next one will be a while. Right now R4B and R5 are priorities and I don't believe a new snapshot will be taken until months from now.
You should probably focus on getting your resource to FMM1 so that it will be part of a future snapshot
Lloyd McKenzie (Dec 14 2021 at 16:44):
We're supposed to have snapshots out for the Jan. connectathon shortly...
Grahame Grieve (Dec 14 2021 at 19:09):
getting the IG publisher to work with the CI Build is on the wish list. I don't know if it'll ever get off the wish list
Brian Alper (Dec 21 2021 at 15:44):
5.0.0-snapshot1 is out now and includes ArtifactAssessment Resource. We would like to create an EBM IG with an EBMRecommendation Profile of ArtifactAssessment Resource. @Grahame Grieve How do we do this?
Grahame Grieve (Dec 21 2021 at 20:33):
right now you can't - it's on my todo list
Brian Alper (Dec 21 2021 at 21:12):
@Grahame Grieve Is creating an "EBM IG with an EBMRecomendation Profile" on your todo list, or just the ability for us to create such a thing on your todo list? If the latter and it will a while, can we ask for help with the former?
Jean Duteau (Dec 21 2021 at 21:19):
I’m pretty sure it is the latter - the ability for you to do that. To do that you need to be able to point the publisher at the 5.0.0-snapshot which I thought you could do but Grahame has said there are issues
Grahame Grieve (Dec 21 2021 at 21:27):
so, in fact, I'll be releasing an IG publisher in a few hours that will support creating an IG based on the last R5
Grahame Grieve (Dec 21 2021 at 21:29):
you have to nominate 5.0.0-snapshot1
as the FHIR version
Grahame Grieve (Dec 21 2021 at 21:29):
Is creating an "EBM IG with an EBMRecomendation Profile" on your todo list, or just the ability for us to create such a thing on your todo list?
Just the ability to do so, I'm afraid
Chris Moesel (Dec 21 2021 at 21:31):
I'm working on adding support for 5.0.0-snapshot1 in SUSHI. I thought we already supported it, but it turns out that we reject it because it doesn't start with the number 4
. Doh.
Brian Alper (Jan 03 2022 at 13:13):
Grahame Grieve said:
so, in fact, I'll be releasing an IG publisher in a few hours that will support creating an IG based on the last R5
No commits from Grahame seen on GitHub since this message. Are we able to build an IG based on 5.0.0-snapshot1 now?
Fred Hersch (Jan 04 2022 at 08:54):
I'm trying to build a new IG - both locally (using sushi on a mac) and also online using a copy of the template from https://github.com/openhie/empty-fhir-ig-custom - see https://github.com/fredhersch/myFirstIG and click on the build fail (x)
I seem to be running into the same problem when trying to load the FHIR R4 package:
Sushi: error Failed to load hl7.fhir.r4.core#4.0.1: The package hl7.fhir.r4.core#4.0.1 could not be loaded locally or from the FHIR package registry. (00:01.0177)
Is this a known issue at the moment? Or am I doing something wrong?
@Jose Costa Teixeira
Jose Costa Teixeira (Jan 04 2022 at 09:11):
@Fred Hersch seems like an issue with the package server, so not on your end. Let me check if there are other issues.
Jose Costa Teixeira (Jan 04 2022 at 09:13):
@Fred Hersch yes, expired certificate.
If you are in a hurry and really need to get it working, you can deactivate the certificate check as explained here
https://chat.fhir.org/#narrow/stream/215610-shorthand/topic/R5.20support/near/266722279
Fred Hersch (Jan 05 2022 at 04:00):
Thanks @Jose Costa Teixeira that worked
Khalid Shahin (Jan 10 2022 at 13:14):
@Grahame Grieve How do we create an Implementation Guide in the current FHIR Build? And does there need to be an initial profile associated with it?
John Moehrke (Jan 10 2022 at 13:21):
do you mean an Implementation Guide that profiles the current FHIR build? You can't target the "current", but you can target snapshots, like the one fixed for this weeks FHIR Connectathon. All of the tooling that produces an Implementation Guide needs to be adjusted, hence why snapshots are taken so that the tooling can all be adjusted to that quantum.
John Moehrke (Jan 10 2022 at 13:22):
see #Announcements for the https://chat.fhir.org/#narrow/stream/179240-Announcements/topic/FHIR.20Publication.20Announcement
Lloyd McKenzie (Jan 10 2022 at 15:41):
If you targeted the current build, you'd be in continuous pain as the changes to the core spec repeatedly broke your IG...
Khalid Shahin (Jan 11 2022 at 15:19):
@John Moehrke @Grahame Grieve I meant creating an Implementation Guide for ArtifactAssessment Resource using 5.0.0-snapshot1 (if that's what I need to do). I'm trying to create a profile for ArtifactAssessment, but I need to have an Implementation Guide to associate the profile to.
Grahame Grieve (Jan 11 2022 at 15:40):
yes it should all work like any other IG should now
Khalid Shahin (Jan 11 2022 at 15:46):
@Grahame Grieve I've never created an IG before, what are the steps to make one directly in the FHIR build?
Grahame Grieve (Jan 11 2022 at 15:47):
you don't create it in the FHIR build. You create a separate IG
Brian Alper (Jan 11 2022 at 15:49):
@Grahame Grieve How do we create a separate IG? Is this a necessary step prior to creating a Profile?
Grahame Grieve (Jan 11 2022 at 16:04):
you told me you want an IG. So let's step back: what is it you want to achieve?
Jean Duteau (Jan 11 2022 at 16:49):
You use the FHIR IG Publisher tool to create IGs. Here is some documentation on the tool itself:
https://confluence.hl7.org/display/FHIR/IG+Publisher+Documentation
Since I'm a disciple of using FHIR Shorthand to create profiles and IGs, I would recommend that you look at the documentation for FSH and SUSHI:
http://hl7.org/fhir/uv/shorthand/2021Sep/
https://fshschool.org/docs/sushi/
Brian Alper (Jan 11 2022 at 17:05):
@Grahame Grieve The primary immediate goal is to create an EBMRecommendation Profile of ArtifactAssessment Resource. Later we will want to create an Evidence Based Medicine IG, but we are not clear if we need to create the IG to create the Profile. Should we start with a Profile only for now? Is it possible to create a Profile without and IG?
Jean Duteau (Jan 11 2022 at 17:41):
You can create a profile from scratch if that is all you want. Take a look at the StructureDefinition resource: http://hl7.org/fhir/structuredefinition.html. That's not going to be easy though.
All of the tooling that takes easier ways of specifying a profile (see IGPublisher and SUSHI/FSH links in my earlier post) assume you are creating a profile as part of an IG. If you use SUSHI, it will create a boilerplate IG for you and then you can just create your one profile, run the tooling on it, and use that outside of the IG.
Brian Alper (Jan 11 2022 at 17:57):
@Jean Duteau Do you know of an example Profile without an IG? If so we can learn from that. We are comfortable trying to work at the StructureDefinition directly.
Chris Moesel (Jan 11 2022 at 18:18):
@Brian Alper -- If it is not in an IG, how do you want/expect it to be used by others? Where will it live? How will you distribute it?
In my opinion (and I am extremely biased), the easiest way to create a new IG is:
- Install SUSHI via
npm install -g fsh-sushi
(prerequisite: install Node.js 12 or 14). - In your favorite folder to hold dev projects, run
sushi --init
and follow the prompts. - Change directories to your new project.
- Edit
sushi-config.yaml
sofhirVersion
is5.0.0-snapshot1
(assuming that's what you want). - Add/edit
input/fsh
files to create your profile(s) using FHIR Shorthand (see spec). - Run
sushi .
to ensure correct syntax (and checkfsh-generated
results). Repeat steps 5 & 6 as necessary. - Run
_updatePublisher
to get the latest publisher jar. - Run
_genonce
to build the IG. - View IG in
output/index.html
. - Go back to step 5 as necessary (if changes are needed).
Jean Duteau (Jan 11 2022 at 18:18):
You can look at any profile in an IG or not. The structure will be the same. But good luck creating this without tooling. You really should be looking into creating a stub IG to put your profile in because there is a lot to get right in a profile (eg the snapshot) that will be hard to do by hand.
Elliot Silver (Jan 11 2022 at 18:19):
I see @Jean Duteau beat me to it, but here was the response I was preparing...
An example profile without an IG looks exactly like the raw JSON/XML view of a profile in an IG. You could code one of those up by hand if all
you are looking for is a profile (actually StructureDefinition) resource. However, what are you going to do with it then? You could validate resources against it (either using one of the validation tools, or loading it onto your server and validating resources), but the real benefit of a profile is making it available to others so there is agreement about what gets passed between your system and theirs. A raw profile could do that, but it is much nicer if you have an IG that can describe some of the context, etc.
Brian Alper (Jan 12 2022 at 20:47):
We were able to create an EBMRecommendation Profile https://build.fhir.org/ebmrecommendation.html of ArtifactAssessment and include the differential for element changes other than adding extensions. Once we figure out how to add the extensions we will have the basic EBMRecommendation Profile to advance this structure for initial use and demonstration. It would also be useful to learn how to set up an IG for it (and for the whole EBMonFHIR effort) but at least we are making progress on getting the profile built.
Jean Duteau (Jan 12 2022 at 20:52):
okay, except that you put the profile in the core build. It shouldn't be there since it's not a core FHIR profile.
Elliot Silver (Jan 12 2022 at 21:38):
Jean Duteau said:
okay, except that you put the profile in the core build. It shouldn't be there since it's not a core FHIR profile.
@Jean Duteau , do we have core profiles? 'Cause if so, I was just thinking of a couple that would be useful.
Vassil Peytchev (Jan 12 2022 at 21:59):
Yes, vital signs is a core profile.
Elliot Silver (Jan 12 2022 at 21:59):
Duh, of course. thanks.
Last updated: Apr 12 2022 at 19:14 UTC