Stream: IG creation
Topic: Quality Measure IG QA Issues
Bryn Rhodes (Jun 25 2020 at 00:45):
I'm working on wrapping up QA issues in the Quality Measure IG, and one of the things that changed as part of reconciliation is the use of text/cql.identifier
to specify the names of expressions referenced by populations from Measure. This new media type was introduced in the CQL ballot to enable expression identifiers to be distinguished from complete in-line expressions. The Quality Measure IG now requires the use of this media type to identify expressions, but the publication validator doesn't know about this type, so I'm getting validation warnings like this: The expression language text/cql.identifier is not supported, so can't be validated
Robert McClure (Jun 26 2020 at 18:49):
@Bryn Rhodes The ExpressionLanguage code system is pretty small but the (all codes) value set is bound extendable so you need to get Graham or Lloyd to change it since it's a FHIR internal code system and not governed by UTG (which it should and I think eventually will be). I'll note that the code system is Normative (level 5) but is clearly a fragment. @Grahame Grieve @Lloyd McKenzie @Ted Klein @Rob Hausam How would this be handled? We know there are a bunch of other proper media type codes and I'm surprised other IGs have not pushed additions.
Lloyd McKenzie (Jun 26 2020 at 19:02):
It's possible to add codes to a normative value set. Is text/cql.identifier a valid mime type?
Vassil Peytchev (Jun 26 2020 at 19:16):
Technically, it's STU Maturity Level 5, but that is not much of a difference...
text/cql.identifier seems to be an acceptable format for a MIME type (for example: application/prs.cww, application/EmergencyCallData.Comment+xml from https://www.iana.org/assignments/media-types/media-types.xhtml#application)
Grahame Grieve (Jun 26 2020 at 20:48):
I'm not sure how this slipped by me. We should not have a code system for this one. I'm ok with the binding, which is extensible, but the binding should be straight to the bcp 13 codes, not inventing alternative identical codes
Grahame Grieve (Jun 26 2020 at 20:49):
but the validation warning is nothing to do with the definitions - it's a statement of fact: the validator doesn't support CQL, so it can't validate the expression
Bryn Rhodes (Jun 29 2020 at 15:47):
This is validation of the Measure that was recently added to check the library for references to valid expressions. It's not validating CQL, it's just validating that the expressions referenced by the Measure exist in the library. Which is why we introduced the text/cql.identifier
media type in the CQL ballot, to more clearly support that use case. I can add the media type to the value set and deprecate the expression language code system, but the validator code needs to allow for validating with either text/cql
or text/cql.identifier
. Basically this needs to include text/cql.identifier
as well
Bryn Rhodes (Jun 29 2020 at 15:48):
Happy to submit a PR for that.
Bryn Rhodes (Jun 29 2020 at 16:02):
And here's an issue to track the addition of the media type to the ExpressionLanguage value set, and deprecate the ExpressionLanguage code system: https://jira.hl7.org/browse/FHIR-27883
Grahame Grieve (Jun 29 2020 at 20:48):
yes a PR would be good
Bryn Rhodes (Jun 29 2020 at 22:32):
PR submitted: https://github.com/hapifhir/org.hl7.fhir.core/pull/264
Grahame Grieve (Jun 29 2020 at 22:32):
won't make this release of the IG publisher
Bryn Rhodes (Jun 29 2020 at 22:32):
Note that I get failures from the tests running locally, so I can't validate that, but the change is simple enough I'm pretty confident in it.
Bryn Rhodes (Jun 29 2020 at 22:33):
That's fine, no worries, but that's the source of most of the outstanding warnings in the QM IG.
Bryn Rhodes (Jun 30 2020 at 15:01):
Regarding the ExpressionLanguage code system and value set, the binding from Expression references http://www.rfc-editor.org/bcp/bcp13.txt, but the UTG lists this as the code system for MIME: https://terminology.hl7.org/CodeSystem-v3-mime.html
Bryn Rhodes (Jun 30 2020 at 15:02):
Should I just update the value set to pull codes from that system?
Lloyd McKenzie (Jun 30 2020 at 15:20):
bcp is what you're supposed to use for FHIR.
Bryn Rhodes (Jun 30 2020 at 20:56):
I see, so: urn:ietf:bcp:13
Grahame Grieve (Jun 30 2020 at 21:34):
we should not use the internal code system. That should be removed from terminology.hl7.org and we should reference the right code system directly from the value set
Bryn Rhodes (Jul 01 2020 at 01:38):
So can I just remove the ExpressionLanguage code system from the build and submit a proposal to UTG to retire it?
Grahame Grieve (Jul 01 2020 at 01:46):
yes
Bryn Rhodes (Jul 01 2020 at 02:12):
The binding in the expression data type has a maxBinding of http://www.rfc-editor.org/bcp/bcp13.txt
, is that still valid?
Grahame Grieve (Jul 01 2020 at 02:23):
that's not the code system url is it?
Bryn Rhodes (Jul 01 2020 at 02:34):
No, code system url is urn:ietf:bcp:13
Grahame Grieve (Jul 01 2020 at 02:34):
hmm. max binding needs to be to a value set that has that as the code system
Bryn Rhodes (Jul 01 2020 at 02:35):
I can add that
Rob Hausam (Jul 01 2020 at 02:35):
Right now the max binding url is http://www.rfc-editor.org/bcp/bcp13.txt.
Grahame Grieve (Jul 01 2020 at 02:35):
which is not valid
Rob Hausam (Jul 01 2020 at 02:35):
right
Grahame Grieve (Jul 01 2020 at 02:35):
the intent is right, but the actual url is not
Rob Hausam (Jul 01 2020 at 02:36):
agree
Bryn Rhodes (Jul 01 2020 at 03:30):
So, I think I did this right, but I'm getting a broken link to the max value set in a generated page. Not sure what I'm doing wrong: https://github.com/HL7/fhir/pull/919
Bryn Rhodes (Jul 01 2020 at 14:11):
Okay, figured it out and that's fixed now, that PR is ready to merge. If you get a chance I'd love a review @Grahame Grieve , @Rob Hausam @Robert McClure
Bryn Rhodes (Jul 01 2020 at 15:07):
As far as how this slipped by you Grahame, I created the ExpressionLanguage value set as a code list in the Expression.xml spreadsheet, which automatically created the code system, so that's on me. The good news is that it actually isn't in UTG, so no need to submit a request to retire the code system there.
Rob Hausam (Jul 01 2020 at 17:03):
My first comment on the PR is that we need to stop using spreadsheets (you can't see the diff!). But you and I can't do anything about that right now. But, after reviewing the Expression spreadsheet and my question about the max binding on the CDS call, the PR looks good to me.
Grahame Grieve (Jul 01 2020 at 20:15):
looks like Bryn didn't run the build in the spreadsheet before doing the PR? (the build is supposed to fix it up so the diff is coherent)
Grahame Grieve (Jul 01 2020 at 20:16):
but other than that is looks good
Bryn Rhodes (Jul 02 2020 at 05:25):
Okay, the next issue is that since I don't have a fixed-business-version set, extensions defined in spreadsheets don't have their version element set, which looking at the IGSpreadsheetParser isn't something that it currently does, so here's a PR to make it set the version based on the Version column in the spreadsheet: https://github.com/HL7/fhir-ig-publisher/pull/122
Bryn Rhodes (Jul 02 2020 at 05:25):
Tested this PR with the currently committed CQF Measures, and it does address the extension version warnings issue.
Bryn Rhodes (Jul 06 2020 at 17:28):
Okay, the next issue is that since I don't have a fixed-business-version set, I can't answer this item in the Publication Checklist: Version has been approved by Product Director and is specified in fixed-business-version
Bryn Rhodes (Jul 06 2020 at 17:29):
Is this indicating that a fixed-business-version is required? I can't do that for this IG, since there are artifacts in the IG whose business version should not be set based on that fixed-business-version (they are examples, but I don't know how to turn off setting version selectively).
Grahame Grieve (Jul 06 2020 at 19:21):
well, in principle I'm ok with not using fixed-business-version if I have confidence that every non-example artifact does have a version, and it's the version I approve
Bryn Rhodes (Jul 06 2020 at 23:04):
define ConformanceResourceVersions:
(
[CodeSystem]
union [ConceptMap]
union [ImplementationGuide]
union [StructureDefinition]
union [ValueSet]
) CR return CR.version
Bryn Rhodes (Jul 06 2020 at 23:04):
Returns:
ConformanceResourceVersions = [2.0.0]
Bryn Rhodes (Jul 07 2020 at 01:24):
Previous version was 1.1.0 and we made substantive and breaking changes, so I incremented the version to 2.0.0.
Grahame Grieve (Jul 07 2020 at 01:54):
ok then that's fine
Bryn Rhodes (Jul 07 2020 at 02:08):
Great, thank you! The only error left is that I have some profiles that require narrative, but the validation is being performed by the publisher prior to narrative generation.
Grahame Grieve (Jul 07 2020 at 02:13):
some profiles that require narrative, but the validation is being performed by the publisher prior to narrative generation.
That's not what the code says - narrative is generated first for this reason
Bryn Rhodes (Jul 07 2020 at 02:19):
But the library resource it's referencing does have a generated narrative:
Bryn Rhodes (Jul 07 2020 at 02:19):
http://build.fhir.org/ig/HL7/cqf-measures/Library-EXMPublishableLibrary.xml.html
Grahame Grieve (Jul 08 2020 at 01:10):
ok I figured out what is going on, and it'll be fixed next release
Bryn Rhodes (Jul 08 2020 at 01:28):
Thanks Grahame!
Bryn Rhodes (Jul 08 2020 at 22:32):
I tried to suppress the warnings as discussed on the FMG call: https://github.com/HL7/cqf-measures/blob/master/SuppressedWarnings.txt#L6 but no joy. @Lloyd McKenzie ?
Lloyd McKenzie (Jul 08 2020 at 23:32):
Did you copy them from the qa.txt file (not qa.html)?
Bryn Rhodes (Jul 09 2020 at 00:14):
Yes, I copied the message without the path from qa.txt
Lloyd McKenzie (Jul 09 2020 at 02:16):
You just want "ValueSet http://www.rfc-editor.org/bcp/bcp13.txt not found by validator" - dump the "WARNING: " bit
Bryn Rhodes (Jul 09 2020 at 14:23):
That did it, thanks @Lloyd McKenzie !
Last updated: Apr 12 2022 at 19:14 UTC