FHIR Chat · Quality Measure IG QA Issues · IG creation

Stream: IG creation

Topic: Quality Measure IG QA Issues


view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip 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?

view this post on Zulip 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)

view this post on Zulip 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

view this post on Zulip 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

view this post on Zulip 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

view this post on Zulip Bryn Rhodes (Jun 29 2020 at 15:48):

Happy to submit a PR for that.

view this post on Zulip 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

view this post on Zulip Grahame Grieve (Jun 29 2020 at 20:48):

yes a PR would be good

view this post on Zulip Bryn Rhodes (Jun 29 2020 at 22:32):

PR submitted: https://github.com/hapifhir/org.hl7.fhir.core/pull/264

view this post on Zulip Grahame Grieve (Jun 29 2020 at 22:32):

won't make this release of the IG publisher

view this post on Zulip 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.

view this post on Zulip 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.

view this post on Zulip 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

view this post on Zulip Bryn Rhodes (Jun 30 2020 at 15:02):

Should I just update the value set to pull codes from that system?

view this post on Zulip Lloyd McKenzie (Jun 30 2020 at 15:20):

bcp is what you're supposed to use for FHIR.

view this post on Zulip Bryn Rhodes (Jun 30 2020 at 20:56):

I see, so: urn:ietf:bcp:13

view this post on Zulip 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

view this post on Zulip 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?

view this post on Zulip Grahame Grieve (Jul 01 2020 at 01:46):

yes

view this post on Zulip 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?

view this post on Zulip Grahame Grieve (Jul 01 2020 at 02:23):

that's not the code system url is it?

view this post on Zulip Bryn Rhodes (Jul 01 2020 at 02:34):

No, code system url is urn:ietf:bcp:13

view this post on Zulip 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

view this post on Zulip Bryn Rhodes (Jul 01 2020 at 02:35):

I can add that

view this post on Zulip Rob Hausam (Jul 01 2020 at 02:35):

Right now the max binding url is http://www.rfc-editor.org/bcp/bcp13.txt.

view this post on Zulip Grahame Grieve (Jul 01 2020 at 02:35):

which is not valid

view this post on Zulip Rob Hausam (Jul 01 2020 at 02:35):

right

view this post on Zulip Grahame Grieve (Jul 01 2020 at 02:35):

the intent is right, but the actual url is not

view this post on Zulip Rob Hausam (Jul 01 2020 at 02:36):

agree

view this post on Zulip 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

view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip 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.

view this post on Zulip 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)

view this post on Zulip Grahame Grieve (Jul 01 2020 at 20:16):

but other than that is looks good

view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip 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

view this post on Zulip 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).

view this post on Zulip 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

view this post on Zulip Bryn Rhodes (Jul 06 2020 at 23:04):

define ConformanceResourceVersions:
  (
    [CodeSystem]
      union [ConceptMap]
      union [ImplementationGuide]
      union [StructureDefinition]
      union [ValueSet]

  ) CR return CR.version

view this post on Zulip Bryn Rhodes (Jul 06 2020 at 23:04):

Returns:

ConformanceResourceVersions = [2.0.0]

view this post on Zulip 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.

view this post on Zulip Grahame Grieve (Jul 07 2020 at 01:54):

ok then that's fine

view this post on Zulip 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.

view this post on Zulip 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

view this post on Zulip Bryn Rhodes (Jul 07 2020 at 02:19):

But the library resource it's referencing does have a generated narrative:

view this post on Zulip Bryn Rhodes (Jul 07 2020 at 02:19):

http://build.fhir.org/ig/HL7/cqf-measures/Library-EXMPublishableLibrary.xml.html

view this post on Zulip Grahame Grieve (Jul 08 2020 at 01:10):

ok I figured out what is going on, and it'll be fixed next release

view this post on Zulip Bryn Rhodes (Jul 08 2020 at 01:28):

Thanks Grahame!

view this post on Zulip 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 ?

view this post on Zulip Lloyd McKenzie (Jul 08 2020 at 23:32):

Did you copy them from the qa.txt file (not qa.html)?

view this post on Zulip Bryn Rhodes (Jul 09 2020 at 00:14):

Yes, I copied the message without the path from qa.txt

view this post on Zulip 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

view this post on Zulip Bryn Rhodes (Jul 09 2020 at 14:23):

That did it, thanks @Lloyd McKenzie !


Last updated: Apr 12 2022 at 19:14 UTC