FHIR Chat · Forge 15.7 for STU3 · implementers

Stream: implementers

Topic: Forge 15.7 for STU3


view this post on Zulip Michel Rutten (May 04 2017 at 12:26):

I'm happy to announce that as of today, Forge 15.7 for STU3 is available for download.

Highlights:
- introduces support for FHIR STU3
- improved support for some advanced profiling features
- As always, we have fixed some annoying bugs

Official announcement: https://simplifier.net/ui/OrganizationNews/Show?id=28
Detailed introduction: https://thefhirplace.com/2017/05/04/introducing-forge-for-stu3/
Online documentation: https://docs.simplifier.net/forge/
Download link: https://simplifier.net/forge/download

You can install and run the new STU3 release next to an existing Forge DSTU2 release on the same machine. Because of breaking changes in FHIR STU3, the new Forge STU3 release no longer supports DSTU2 profiles. Forge for DSTU2 will no longer be further developed, as all our development efforts are now focused on Forge for STU3. However you can continue to use Forge for DSTU2 for as long as you need.

Please don’t hesitate to contact us if you have any questions or comments.

Tomorrow (Friday May 5th), the Furore FHIR team is leaving for Madrid to attend the HL7 WGM and Connecthaton. We will all be available online throughout the week, but response times may be a bit longer than usual.

Happy profiling!

view this post on Zulip Jayashree Surnar (May 04 2017 at 12:36):

Thank you. @Michel Rutten

view this post on Zulip Brian Reinhold (May 04 2017 at 19:14):

I get this error when trying to load

2017-05-04T14:50:14
Forge Forge 15.7 for HL7 FHIR STU3
Madrid 2017 Edition
Version: Version 15.7.0.0 (ClickOnce)
FHIR Version: FHIR .NET API library for 3.0.0


FormatException in Hl7.Fhir.STU3.Core: (profiles)
Encountered unknown member 'requirements' while de-serializing (at path 'line 2, pos 2')
or
FormatException in Hl7.Fhir.STU3.Core: (Implementation guide)
Encountered unknown member 'purpose' while de-serializing (at path 'line 13, pos 6')

view this post on Zulip Michel Rutten (May 05 2017 at 16:35):

@Brian Reinhold DSTU2 defines StructureDefinition.requirements, whereas STU3 defines StructureDefinition.purpose. This suggests that you are mixing DSTU2 and STU3 resources?

view this post on Zulip Brian Reinhold (May 05 2017 at 19:54):

I was just trying to open the profiles I created in the DSTU2 version. However, I cannot use the DSTU2 version to open those profiles because of that snapshot bug. So I guess I need to start over.

view this post on Zulip Michel Rutten (May 05 2017 at 22:42):

@Brian Reinhold i'd suggest you try to convert your existing DSTU2 profiles to STU3. If it's a relatively small set of profiles, you could do it manually.

view this post on Zulip David Cai (May 18 2017 at 06:47):

When I created an extension in Forge, how do I edit the Extension.url element? I suppose Extension.url is not the URL element you can enter in the Properties tab. Am I missing something?

view this post on Zulip Richard Townley-O'Neill (May 25 2017 at 06:45):

In the Element Tree tab, the Comment field shows the comment on the data type when there is no comment on the element. I found this confusing until I understood what was happening. I do not see how it is useful. Is it intended behaviour?

view this post on Zulip Pranitha Sruthi (May 25 2017 at 10:59):

Hi all,while creating a profile on forge, some options appear on the right hand side namely conditions,constraints,mapping and base definition as in the screenshot below.
forge.PNG
What is their role in creating a profile? Also, they have some sub options. Please elaborate the purpose of all the options. Is it mandatory to specify each one of them?
Thanks in advance

view this post on Zulip Michel Rutten (May 29 2017 at 09:13):

@David Cai Forge automatically fixes the value of Extension.url to the canonical url of the selected extension definition (i.e. copy value from type[0].profile property of the parent profile element that references the extension definition). You don't need to and cannot specify the value yourself and the Extension.url element is hidden from the UI. But you can find the associated element definition in the generated xml.

view this post on Zulip Michel Rutten (May 29 2017 at 09:19):

@Richard Townley-O'Neill Forge tries to render a full view of your profile by merging all the implied information that is inherited from the base profile and element type profiles (incl. extension definitions). So when a profile element refers to a datatype, then the referring element will inherit properties from the root element definition of the target datatype profile. This includes the value of the .comments property. Property values explicitly specified by the referring profile override any of the inherited values.

view this post on Zulip Michel Rutten (May 29 2017 at 09:21):

@Pranitha Sruthi the FHIR spec clearly documents the purpose of all the available properties:
https://www.hl7.org/fhir/elementdefinition.html
Note that if you hover the mouse cursor over a property label, Forge will display the official definition as specified by the core resource & datatype definitions.

view this post on Zulip Pranitha Sruthi (May 29 2017 at 09:22):

@Michel Rutten Thank you

view this post on Zulip Sadiq Saleh (May 29 2017 at 13:25):

Hi Michel,
I have noted that the differential does not include parents & children of changed elements. Some examples:
1) Creating a profile which constrains the code element of the Condition resource. The parent Condition resource is not included in the differential unless a change is made to the attributes tied directly to the parent (e.g. Short).
2) Constraining the DocumentReference.content to 1..1 (from 1..*) only includes the backbone element in the differential and not the children
Just wondering what the rationale behind this is?

view this post on Zulip natus (May 30 2017 at 19:46):

Hi ! I have a problem while creating a new extension from a resource profile.png I get the folowing error :"Extension element profile is empty". I am not able to modify it on the interface. The only way I have is to edit the resulting xml manually. Thanks for any help

EDIT: I got it: An extention need to be open in the session, in order to replace the "other..." value and populate the profile!

view this post on Zulip Travis Stenerson (May 30 2017 at 20:15):

Does anyone know why <differential>.<element> is missing the element id?
ie why does it not read:<differential>.<element id="Observation.valueCodeableConcept">?
Am I missing some setting that enters the element id in the differential of the save structure definition? Thanks!

pasted image

view this post on Zulip Rob Eastwood (May 30 2017 at 22:46):

We have also noticed this behaviour. Incidentally, the missing id attribute causes a schematron error (STU3 structuredefinition.sch): sdf-14 All element definitions must have an id

view this post on Zulip Michel Rutten (May 31 2017 at 09:29):

Hi @Sadiq Saleh, concerning your two questions:
1) Correct, the differential represents a sparse tree that only includes constraints defined by the containing profile. There is no need to include parent elements (incl. root); it is not invalid, but redundant. The FHIR API provides a snapshot generator that can generate a full tree from the sparse differential by merging all of the implied information derived from external sources (base profile, element type profiles, extension definitions).
2) Since your DocumentReference profile does not constrain the child elements, there is no need to include these element definitions in the (sparse!) differential component.
Hope this explains.

view this post on Zulip Michel Rutten (May 31 2017 at 09:31):

@natus Hi natus, this is a know bug in the initial Forge STU3 release. If you try to map a profile extension element to a custom extension definition url (via "other..."), the specified url is not serialized to the ouput xml. We'll try to solve this issue in the next (minor) update.

view this post on Zulip Michel Rutten (May 31 2017 at 09:33):

Hi @Travis Stenerson, FHIR only defines rules for element IDs on ElementDefinition nodes ("<element>") within differential and snapshot components. The containing <differential> and <snapshot> nodes don't need IDs, as they are always unique within the containing StructureDefinition.

view this post on Zulip Michel Rutten (May 31 2017 at 09:35):

Hi @Rob Eastwood, the implementation of element IDs in the initial Forge STU3 release is not 100% conformant to the FHIR spec. We are aware of the issue and will try to fix this shortly.

view this post on Zulip Sadiq Saleh (May 31 2017 at 13:56):

@Michel Rutten thanks for clarifying the sparse design of the output from Forge. However, I am faced with an issue when I use these StructureDefinitions as part of the default FHIR IGBuilder because, as far as I can understand, it expects several of these elements in the differential (e.g. Base profile, element IDs, etc.) and including the snapshot is not sufficient to correct for this.

view this post on Zulip Michel Rutten (May 31 2017 at 14:18):

Hi @Sadiq Saleh, the output generated by the initial Forge STU3 release is indeed not yet 100% compliant to the actual FHIR STU3 spec. Specifically Forge should always emit canonical element IDs for all the element definitions in the differential. This will be fixed soon. I'm not aware of any issues concerning base profile? That property should always be included in the output. If you find any other issues that prevent interoperability with the IGBuilder, please report them and we will try to fix it.

view this post on Zulip Rob Eastwood (May 31 2017 at 22:43):

Thanks @Michel Rutten

view this post on Zulip Isabelle GIBAUD (Jun 06 2017 at 10:07):

I’ve just downloaded the “Forge 15.7 for HL7 FHIR STU3” software. The installation process worked properly. However, an error pops up when I click on the “New Implementation guide” item.
The error is : [StorageHandler]: Invalid Property Type "Markdown", expecting "FhirString" Name of the parameter: propertyInfo.

I’m a member of HL7-France and we would like to make an implementation guide specific to France.
Is this issue related to my own setup or is it a bug that you are aware of?
Thanks for your response.
Best regards,

view this post on Zulip Mirjam Baltus (Jun 06 2017 at 10:16):

Hi Isabelle, this is a known bug in Forge and will be resolved in the next update.

view this post on Zulip ravi.kuchi (Jun 06 2017 at 20:50):

Hi, I am trying to Post a simple profile created via Forge tool to my FHIR server: <StructureDefinition xmlns="http://hl7.org/fhir">
<id value="MyBasic" />
<meta>
<lastUpdated value="2017-06-06T16:02:09.357-04:00" />
</meta>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
<valueCode value="pa" />
</extension>
<url value="http://fmcna.com/MyBasic11" />
<name value="MyBasic" />
<status value="draft" />
<date value="2017-06-06T15:57:44.3622705-04:00" />
<fhirVersion value="3.0.0" />
<kind value="resource" />
<abstract value="false" />
<type value="Basic" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Basic" />
<derivation value="constraint" />
<differential>
<element id="Basic.code.coding">
<path value="Basic.code.coding" />
<max value="1" />
</element>
</differential>
</StructureDefinition> At first I was getting the error "element must have an id", which I corrected by manually editing the profile. Now I am getting the error " A structure must have either a differential, or a snapshot (or both)" for which I have no clue on what is the error as the differential is present. Please advice.

view this post on Zulip Chris Munro (Jun 13 2017 at 13:01):

I made this profile (not using Forge) which uploads to simplifier fine: https://simplifier.net/ELabNetwork/Citation/xmlview

however when I try and open it in Forge I get the error 'Literal datatype is not a valid value for enumeration StructureDefinitionKind at path line 7 pos 4'

Is there an error in the profile or Forge?

view this post on Zulip Michel Rutten (Jun 13 2017 at 18:45):

Hi @Chris Munro, I cannot reproduce the issue? I've manually downloaded the profile from Simplifier. Forge complains about missing extensions, but then continues to open and render the profile.
Are you using Forge for STU3?

view this post on Zulip Chris Munro (Jun 14 2017 at 08:54):

Thanks @Michel Rutten I have version 15.7 of Forge, now whenever I open the XML downloaded from simplifier it seems to hang waiting for the file to load (I don't get the error message I had before), I'll try restarting my PC. By the way, it would be very useful if you could either 1) be able to open more then one file to load into forge or 2) be able to save the session so that that all the same files are loaded into forge. Otherwise it is a bit tedious reloading 10 or so profiles/extensions

view this post on Zulip Michel Rutten (Jun 14 2017 at 09:09):

Hi @Chris Munro, "hangs" - you mean the application freezes and does not return control? Hmmm... :/
Thank you for your suggestions, definitely useful. We are planning to spend some time on UI improvements later this year. But first we want to iron out some profiling issues in the initial STU3 release.

view this post on Zulip Chris Munro (Jun 14 2017 at 09:11):

Hi @Michel Rutten yes, that's right. I first started having problems when there were two XML files with the same URL (I made a copy) in the directory so it could be linked to this


Last updated: Apr 12 2022 at 19:14 UTC