Stream: conformance
Topic: Package Access Issue
Grahame Grieve (Jan 08 2022 at 21:42):
I have a question about an issue raised here: https://stackoverflow.com/questions/70584768/errors-when-running-the-fhir-validator-on-the-us-core-patient-example
Grahame Grieve (Jan 08 2022 at 21:43):
what's happening is that parameters don't specify a version for the us core package:
-ig hl7.fhir.us.core
Grahame Grieve (Jan 08 2022 at 21:43):
so the validator is using the latest version of the package, which is 4.1.0:
Grahame Grieve (Jan 08 2022 at 21:43):
Load hl7.fhir.us.core#4.1.0 - 177 resources (00:00.0022)
Grahame Grieve (Jan 08 2022 at 21:44):
but that's a ballot version, and broken with regard to the terminology for race category. (I'll have to look into what's going on there at some stage @Eric Haas)
Grahame Grieve (Jan 08 2022 at 21:44):
but what's happening is counter-intuitive. See the version history here:
Grahame Grieve (Jan 08 2022 at 21:44):
http://hl7.org/fhir/us/core/history.html
Grahame Grieve (Jan 08 2022 at 21:47):
"current version" is 4.0.0
, and so it would be natural to assume that the parameter -ig hl7.fhir.us.core
would point to the current version. Only, it doesn't, because the validator uses packages.fhir.org, and this is what looking up hl7.fhir.us.core returns:
{
"_id": "hl7.fhir.us.core",
"name": "hl7.fhir.us.core",
"description": "The US Core Implementation Guide is based on FHIR Version R4 and defines the minimum conformance requirements for accessing patient data. The Argonaut pilot implementations, ONC 2015 Edition Common Clinical Data Set (CCDS), and ONC U.S. Core Data for Interoperability (USCDI) v1 provided the requirements for this guide. The prior Argonaut search and vocabulary requirements, based on FHIR DSTU2, are updated in this guide to support FHIR Version R4. This guide was used as the basis for further testing and guidance by the Argonaut Project Team to provide additional content and guidance specific to Data Query Access for purpose of ONC Certification testing. These profiles are the foundation for future US Realm FHIR implementation guides. In addition to Argonaut, they are used by DAF-Research, QI-Core, and CIMI. Under the guidance of HL7 and the HL7 US Realm Steering Committee, the content will expand in future versions to meet the needs specific to the US Realm.\nThese requirements were originally developed, balloted, and published in FHIR DSTU2 as part of the Office of the National Coordinator for Health Information Technology (ONC) sponsored Data Access Framework (DAF) project. For more information on how DAF became US Core see the US Core change notes. (built Mon, Dec 6, 2021 21:52+0000+00:00)",
"dist-tags": {
"latest": "4.1.0"
},
"versions": {
"0.0.0": {
"name": "hl7.fhir.us.core",
"version": "0.0.0",
"description": "None.",
"dist": {
"shasum": "716320373f2ad6a73c544e9faf162518e107104d",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/0.0.0"
},
"fhirVersion": "STU3",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/0.0.0"
},
"1.0.0": {
"name": "hl7.fhir.us.core",
"version": "1.0.0",
"description": "None.",
"dist": {
"shasum": "8dd6ac852c1d2cb4ac7312188d8d6ef7ccb65da6",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/1.0.0"
},
"fhirVersion": "STU3",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/1.0.0"
},
"1.0.1": {
"name": "hl7.fhir.us.core",
"version": "1.0.1",
"description": "None.",
"dist": {
"shasum": "7930a0bac34a349b8a300a7ccf01bd4b86379199",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/1.0.1"
},
"fhirVersion": "STU3",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/1.0.1"
},
"1.1.0": {
"name": "hl7.fhir.us.core",
"version": "1.1.0",
"description": "None.",
"dist": {
"shasum": "4decdb88979861f4bd72b6ad2c68f94244664d0f",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/1.1.0"
},
"fhirVersion": "STU3",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/1.1.0"
},
"2.0.0": {
"name": "hl7.fhir.us.core",
"version": "2.0.0",
"description": "None.",
"dist": {
"shasum": "a65e1f0e7004293c9991da2731dd3a944e09fd7c",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/2.0.0"
},
"fhirVersion": "STU3",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/2.0.0"
},
"2.1.0": {
"name": "hl7.fhir.us.core",
"version": "2.1.0",
"description": "None.",
"dist": {
"shasum": "8a9e2f72a7946aff047bc0a299c7b49a0f283b20",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/2.1.0"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/2.1.0"
},
"3.0.0": {
"name": "hl7.fhir.us.core",
"version": "3.0.0",
"description": "None.",
"dist": {
"shasum": "58efc3b6c4ed7436fb2de790ca31b4c082c7084e",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/3.0.0"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/3.0.0"
},
"3.0.1": {
"name": "hl7.fhir.us.core",
"version": "3.0.1",
"description": "None.",
"dist": {
"shasum": "20c8d5b480a13fd7ad3e9f41d6f52aad8afa2705",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/3.0.1"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/3.0.1"
},
"3.1.0": {
"name": "hl7.fhir.us.core",
"version": "3.1.0",
"description": "None.",
"dist": {
"shasum": "a193ba80f9d04e9d7325fbb37188b30c63462e6d",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/3.1.0"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/3.1.0"
},
"3.1.1": {
"name": "hl7.fhir.us.core",
"version": "3.1.1",
"description": "None.",
"dist": {
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/3.1.1"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/3.1.1"
},
"3.2.0": {
"name": "hl7.fhir.us.core",
"version": "3.2.0",
"description": "None.",
"dist": {
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/3.2.0"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/3.2.0"
},
"4.0.0": {
"name": "hl7.fhir.us.core",
"version": "4.0.0",
"description": "None.",
"dist": {
"shasum": "1ebbdd3bf31607bda1ba48966aba2ff983e07215",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/4.0.0"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/4.0.0"
},
"4.1.0": {
"name": "hl7.fhir.us.core",
"version": "4.1.0",
"description": "None.",
"dist": {
"shasum": "2e04381242fdd8eae0ad60bb2ed314ff3cc004e7",
"tarball": "https://packages.simplifier.net/hl7.fhir.us.core/4.1.0"
},
"fhirVersion": "R4",
"url": "https://packages.simplifier.net/hl7.fhir.us.core/4.1.0"
}
}
}
Grahame Grieve (Jan 08 2022 at 21:48):
so you see that the validator has no grounds on which to decide that it's going to use 4.0.0 instead of 4.1.0
Grahame Grieve (Jan 08 2022 at 21:50):
The only place that the information to drive selecting 4.0.0 instead of 4.1.0 is published in the file http://hl7.org/fhir/us/core/package-list.json:
Grahame Grieve (Jan 08 2022 at 21:51):
{
"version": "4.1.0",
"descmd": "<snip>",
"path": "http://hl7.org/fhir/us/core/2022Jan",
"status": "ballot",
"sequence": "STU5",
"fhirversion": "4.0.1",
"date": "2021-12-06"
},
{
"version": "4.0.0",
"descmd": "<snip>",
"path": "http://hl7.org/fhir/us/core/STU4",
"status": "trial-use",
"sequence": "STU4",
"fhirversion": "4.0.1",
"date": "2021-06-28",
"current": true
},
Grahame Grieve (Jan 08 2022 at 21:55):
but the validator doesn't know about package-list.json, and the lookup from {package-id} to {canonical}/package-list.json isn't algorithmic. Let's see. I'd have to:
- look up the package id on the package server
- get the most recent version of the package
- open the package.json file, and find the canonical URL
- look at {canonical}/package-list.json. if it exists (will for all HL7 publications, but not necessarily in the general case)
- look up the current release in the package-list.json
- now get that package version
And I'd need to do this... well, I check package currency once a day for #current, and this is pretty much the same idea. So this path would have to happen once a day
Grahame Grieve (Jan 08 2022 at 22:03):
that's doesn't thrill me.
Grahame Grieve (Jan 08 2022 at 22:04):
there's another solution to this going forward, which is that we've agreed that from now on, we'll be using 5.0.0-ballot1
instead of 4.1.0
- so the validator would ignore any staging releases when looking for the latest release. And any future ballot publications are going to work this way (I wasn't ready for that when US core 4.1.0 was released).
Grahame Grieve (Jan 08 2022 at 22:05):
but that doesn't help with this problem for existing publications.
Grahame Grieve (Jan 08 2022 at 22:05):
I'm interested in opinions about this
Grahame Grieve (Jan 08 2022 at 22:07):
And also I don't know how this pattern would work for Simplifier IGs
Elliot Silver (Jan 08 2022 at 23:07):
Grahame Grieve said:
there's another solution to this going forward, which is that we've agreed that from now on, we'll be using
5.0.0-ballot1
instead of4.1.0
- so the validator would ignore any staging releases when looking for the latest release. And any future ballot publications are going to work this way (I wasn't ready for that when US core 4.1.0 was released).
I'm not sure that 5.0.0-ballot1
solves the issue (assuming you're suggesting that the -ballot1
is the part that makes the different). Consider once 5.0.0 comes out, and work is going on for 5.1.0-ballot1
-- any 5.1 version is going to be more preferred than any 5.0 version, won't it?
Edit - nevermind -- I just noticed the change to the validator that would go with that.
Ward Weistra (Jan 10 2022 at 16:35):
@Grahame Grieve Indeed, I would suggest using the prerelease labels (version 1.2.3-anything
). For example, for package https://packages.fhir.org/nictiz.fhir.nl.stu3.images the most recent package is 1.0.0-beta1
, but the package server will show as latest
the latest stable version: "dist-tags":{"latest":"1.0.1"}
.
If no stable package is available, it will just list the most recent one, like https://packages.fhir.org/nictiz.fhir.nl.stu3.iwlz: "dist-tags":{"latest":"1.0.0-poc5"}
Grahame Grieve (Jan 10 2022 at 18:30):
thanks @Ward Weistra how does the server populate "latest"? And when are you going to fix the certiticate?
Chris Moesel (Jan 10 2022 at 19:06):
@Grahame Grieve -- I'll chime in for @Ward Weistra since he is offline now. Over in the #shorthand stream, Ward said he was still waiting on the certificate information from you. So... if you think you already sent it to him, perhaps try sending it again?
Grahame Grieve (Jan 10 2022 at 19:07):
I missed that because I'm so far behind in everything. in progress now
Ward Weistra (Jan 11 2022 at 10:41):
@Chris Moesel @Grahame Grieve It's been applied!
Last updated: Apr 12 2022 at 19:14 UTC