Stream: implementers
Topic: Simplifier publish
Gerhard Andreassen (Sep 19 2017 at 09:20):
Hello. If i publish a StructureDefinition to my project in Simplifier, and then change it in Forge, and do a save or publish in Forge, it creates a new StructureDefinition in Simplifier, thus i get a new copy for each time. Is this correct behaviour ?
Michel Rutten (Sep 20 2017 at 11:43):
Hi @Gerhard Andreassen, that is certainly not correct behavior... In FHIR, StructureDefinitions (as well as all other conformance resources) are identified by their canonical url, i.e. the value of the StructureDefinition.url property. If you upload a profile to your Simplifier project, and then re-upload a new version to the same project without chancing the canonical url, then Simplifier should update the existing initial profile to the new version (while keeping history of all older version).
Can you please verify if you changed the canonical url before uploading?
Gerhard Andreassen (Sep 20 2017 at 11:52):
Hi. I don't change the Canonical URL. I make small changes to the structure or even metadata. After first publish, the Location changes from local to https://stu3.simplifier.net/... After each change to the profile with subsequent save to simplifier, a new Resource ID is given in Forge. I can see it change during save. Also, a new copy of the profile is created @simplifier, named "<resource_name>-<n>", e.g Specimen-1, Specimen-2 etc.
Michel Rutten (Sep 20 2017 at 12:04):
Hi @Gerhard Andreassen, correct, the server assigns the logical Resource id during creation. Forge will show the assigned id after saving to a FHIR server or Simplifier.
However this should not lead to duplicates.
Can you send me a link to your Simplifier project page, so I can take a look?
Gerhard Andreassen (Sep 20 2017 at 12:06):
Hi. @Michel Rutten here is the link to the project: https://simplifier.net/FHIRHelseNordintegra/~resources?fhirVersion=STU3
The Specimen resource/profile is the latest example of this "phenomena".
Michel Rutten (Sep 20 2017 at 12:13):
HI @Gerhard Andreassen, indeed, I can see the duplicate Specimen profiles and they all seem to share the same canonical url...?
I do note that the canonical url does not follow the standard fhir url scheme: http[s]://{domain}/fhir/StructureDefinition/{name}
However this should not affect Simplifier operations.
Can't immediately explain this behavior, I'll investigate and get back to you when we know more.
Michel Rutten (Sep 20 2017 at 12:22):
I notice that the duplicates of the Specimen profile all have different logical resource id values. What may have happened is that after publishing the Specimen profile to Simplifier, you did not save the updated profile (with the server-assigned logical resource id) back to disk. Then you re-opened and re-published the local copy (without resource id), and this caused Simplifier to create a new project item with a new server-assigned logical resource id.
To prevent this from happening, after publishing a resource to Simplifier, make sure that you also save a local copy of the resource with the server-assigned logical resource id.
We'll discuss the current behavior with our team to see if we can improve the user experience.
Mika Tuomainen (Sep 20 2017 at 12:23):
Hi, we noticed the same issue in our FinnisPHR simplifier project (https://simplifier.net/FinnishPHR/). If we upload new version of the profile in Simplifier's main page (Upload - Upload file) it creates new profile resource in Simplifier. The resource.url is same in both but url simplifier uses differs. For example first version is finnishphr-bloodpressure-stu3 profile has resource.url "http://phr.kanta.fi/StructureDefinition/fiphr-bloodpressure-stu3", simplifier creates for that own "registry url" "https://simplifier.net/FinnishPHR/fiphr-bloodpressure-stu3". When we update the profile using Upload -Upload file, the resource url is/remain same "http://phr.kanta.fi/StructureDefinition/fiphr-bloodpressure-stu3" but the "registry url" is updated to https://simplifier.net/FinnishPHR/fiphr-bloodpressure-stu3-2.
If we use update found in the resource's own page the versioning works fine (Update - Upload: Update by uploading a file).
Michel Rutten (Sep 20 2017 at 12:28):
Hi @Mika Tuomainen, in your situation the behavior can be explained. If you upload a new version from a resource's own page, Simplifier knows your updating that instance. However if you upload from e.g. the main page, then you must ensure that the new resource version has the exact same logical resource id as the existing version, otherwise there is no way for Simplifier to know that they represent different versions of the same resource.
Mika Tuomainen (Sep 20 2017 at 12:37):
Hi, @Michel Rutten , I first explained the same issue ;-) I'm not sure but I remember that we also had the same resource.id (logical id) in our profiles which we updated from the main page Upload.
But we noticed that we can evolve the problem using resource's own page.
Michel Rutten (Sep 20 2017 at 12:45):
Hi @Mika Tuomainen, thank you for the user feedback! We'll take another close look at this behavior to see if we can improve the user experience.
Patrick Werner (Sep 20 2017 at 13:06):
@Michel Rutten wer are probably dealing with the same issue, but we are using the github hook of simplifier. https://simplifier.net/BasisprofilDE/ebm
Patrick Werner (Sep 20 2017 at 13:07):
same for https://simplifier.net/BasisprofilDE/ops
Michel Rutten (Sep 20 2017 at 13:11):
Hi @Patrick Werner, thank you for the feedback! Definitely helpful to get a response from several users. Our team will evaluate the publishing behavior and try to improve the process of dealing with / preventing duplicates.
Patrick Werner (Sep 20 2017 at 13:18):
We discussed this issue also in San Diego at the WGM. This were our thougths on the problem:
- Simplifier should only allow one instance of the same profile within one workspace (if canonical url and version are the same) and automatically match and overwrite the old instance of the profile
- As simplifier takes all profile in all workspaces (at least the ones marked as published?) into account when validating a resource it is not determined which profile from wich workspace will be used. It would be nice to be able to select to validate: inside the workspace, also using core profiles,extensions and value sets, and/or mark all workspaces which should be considered.
- related feature request: It would be nice to have a "validate all" button, which validates all resources of a workspace, or even a automatic validate when uploading new resources with email alerts if an update breaks any conformance (continous integration like)
Is it fine to leave these requests here or should i send them also to simplifier@furore.com ?
Michel Rutten (Sep 20 2017 at 13:41):
Hi @Patrick Werner, great suggestions, thank you!
I like the proposed "validate all" command.
Validate on upload is tricky, as users may upload in random order, e.g. first a profile with an extension element, then the referenced extension definition. Maybe we could handle this gracefully using a queue.
We've always intended for Simplifier to provide compartmentalization of project spaces and we're continuously improving this.
BTW we're always monitoring Zulip, so feel free to discuss Simplifier issues and features here. This way, other users can join the discussion. But of course, you can also use the feedback button in the header bar of the website.
Last updated: Apr 12 2022 at 19:14 UTC