Stream: implementers
Topic: Forge bug work around
Brian Reinhold (Jun 23 2017 at 16:37):
The bug:
Forge corrupts the choice of valueQuantity from value[x] when you save your work
File is unreadable by Simplifier and on reload the structure definition makes no sense
Work-a-round
Add
**
<element id="Observation.valueQuantity">
<path value="Observation.valueQuantity" />
<type>
<code value="Quantity" />
</type>
</element>
**
just before the valueQuantity element in the saved xml.
Downside, it is re-corrupted every save and you will have to do it every time before you can reload your work or view it in Simplifier.
Do not know if this applies to other choices in value[x].
The latest release did not fix this bug.
Mirjam Baltus (Jun 26 2017 at 08:31):
@Brian Reinhold Thank you for posting this work around. We're aware of issues with the choice data types and are working on solving them in the next release.
Brian Reinhold (Jun 26 2017 at 09:26):
@Mirjam Baltus I just tried to create a new implementation guide and got this error after trying to reload the created guide:
2017-06-26T05:18:59
Forge Forge 15.7 for HL7 FHIR STU3
Madrid 2017 Edition
Version: Version 15.7.0.0
FHIR Version: FHIR .NET API library for 3.0.0
ArgumentException in Forge.ViewModels:
[StorageHandler] Invalid property type 'Markdown', expecting 'FhirString'.
Parameter name: propertyInfo
at Forge.ViewModels.StorageHandler.VerifyPropertyType(PropertyInfo propertyInfo, Type type)
at Forge.ViewModels.StringStorageHandler`1..ctor(IViewModel property, Base instance, PropertyInfo propertyInfo, Base baseInstance, Boolean isForced)
at Forge.ViewModels.StringStorageHandler..ctor(IViewModel property, Base instance, PropertyInfo propertyInfo, Base baseInstance, Boolean isForced)
at Forge.ViewModels.ImplementationGuideVM.set_ModelElement(Base value)
at Forge.ViewModels.ImplementationGuideVM..ctor(ISessionItem owner, ImplementationGuide model)
at Forge.ViewModels.SessionItemVM.CreateResourceVM(SessionItemVM owner, Resource model, String contentDirectory)
at Forge.ViewModels.SessionItemVM..ctor(ISessionItem owner, IDocument document, Resource model)
at Forge.ViewModels.SessionItemVM.Open(IDocument document, Boolean dontLoad, Boolean asCopy)
at Forge.ViewModels.SessionItemVM.Open(Uri url, Boolean dontLoad, Boolean asCopy)
at Forge.ViewModels.SessionItemVM.Open(Boolean asCopy)
at Forge.ViewModels.SessionItemVM.Open()
at Forge.ViewModels.SessionVM.<>c.<onOpen>b__178_0(ISessionItem item)
at Forge.ViewModels.SessionVM.<>c__DisplayClass162_0.<executeItemCollectionCommand>b__0()
at Forge.Common.UIServices.ExecuteOnUIThread(Action action)
at Forge.ViewModels.SessionVM.executeCommand(Action action)
I cannot see anything wrong with this very simple start:
<?xml version="1.0" encoding="utf-8"?>
<ImplementationGuide xmlns="http://hl7.org/fhir">
<meta>
<lastUpdated value="2017-06-26T05:11:39.287-04:00" />
</meta>
<url value="http://pchalliance.org/phdfhir/ImplementationGuide/PhdImplementationGuide" />
<name value="PhdImplementationGuide" />
<status value="draft" />
<date value="2017-06-26T05:10:20.5702816-04:00" />
<fhirVersion value="3.0.1" />
<package>
<name value="PhdPackage" />
<description value="This guide provides the mapping of data received from 11073 20601 Personal Health Devices to FHIR resources." />
<resource>
<example value="true" />
<name value="PhdNumericObservation" />
<description value="Base StructureDefinition for Observation Resource" />
<sourceReference>
<reference value="http://pchalliance.org/phdfhir/StructureDefinition/PhdNumericObservation" />
</sourceReference>
</resource>
</package>
</ImplementationGuide>
I can load the PhdNumericObservation resource.
I am not having much luck. The down side here is I can't even see what Forge is complaining about in the xml to try and find another work around.
Mirjam Baltus (Jun 26 2017 at 09:54):
Version 15.7 had an issue where you couldn't create a new implementation guide. That issue was resolved in release 16.1. From the error, it seems you're opening the IG in the previous version, is that correct?
Brian Reinhold (Jun 26 2017 at 13:55):
No, this is version 16.1. Forge indicated no errors at the time of saving the file. I did note when I went to another system, downloaded the xmls from 'git' and opened the implementation guide in Forge, it loaded successfully. However, after saving and reopening, it did not. Got the same error. I made some updates to the single profile in the guide, fixed the 'type' error after the save, and then reloaded. Though I could not re-load the implementation guide, I could reload the profile (I still have to make my fixes ... keep a copy of 'winMerge' open, make a backup of the xml, save in Forge, use winMerge to fix the bug.)
Brian Reinhold (Jun 26 2017 at 13:58):
Just noted that in the component 'code' and component 'valueCodeableConcept' that the drop-down for fixed 'system' values does not exist. Its not a problem. I can get the list of values in the Observation.code fixed values and paste them in. But it is an inconsistency in the GUI.
Michel Rutten (Jul 11 2017 at 15:36):
@Brian Reinhold according to the error message header, you were using the older 15.7 Forge release. This has been fixed in the 16.1 release. Using Forge 16.1, I can open the above Phd IG xml example succesfully.
Last updated: Apr 12 2022 at 19:14 UTC