argonautproject / data-query

The Argonaut Data Query Implementation Guide is based upon the core FHIR DSTU2 API and it documents the security and authorization and the querying of the ONC Common Clinical Data Set and static documents.
http://build.fhir.org/ig/argonautproject/data-query
6 stars 4 forks source link

Procedure ValueSet doesn't match description #59

Open jmandel opened 6 years ago

jmandel commented 6 years ago

The spec is inconsistent about whether ICD10 is allowed for Procedure codes.

http://www.fhir.org/guides/argonaut/r2/ValueSet-procedure-type.json.html shows

 "compose" : {
    "include" : [
      {
        "system" : "http://www.ama-assn.org/go/cpt"
      },
      {
        "system" : "http://snomed.info/sct",
        "filter" : [
          {
            "property" : "concept",
            "op" : "is-a",
            "value" : "71388002"
          }
        ]
      }
    ]
  }

but the rendering at http://www.fhir.org/guides/argonaut/r2/StructureDefinition-argo-procedure.html shows: image

brettmarquard commented 6 years ago

I recognize this isn't pretty - how can we improve the intent:

any ideas @Healthedata1 ?

Here is what we have on the profile page:

One Identification of the procedure in Procedure.code which has:

jmandel commented 6 years ago

First off I may just need education: I see http://build.fhir.org/extension-elementdefinition-maxvalueset.html but I'm not sure I understand how "extensible+max" is different from "required"? Does it mean that implementers are supposed to use free-text instead of picking a code from outside of this list?

Other questions:

Healthedata1 commented 6 years ago

Regarding this Question

Other questions:

Can't a CodeableConcept always have multiple Codings? What does "translation" here mean with respect to ICD-10/CdT? Is the intention to prevent other translations from being included? Or, what is the goal of the "MAY"?

The intent is match the regulatory text from our friends at ONC. "Clarifications: • Health IT must be certified to SNOMED CT® or CPT-4/HCPCS for procedures. • Developers may additionally choose to certify to ICD-10-PCS as an “optional” vocabulary standard for procedures. [see also 77 FR 54178] • Developers may additionally choose to certify to the Code on Dental Procedures and Nomenclature for technology designed to capture dental procedures, but the technology must at a minimum support SNOMED CT® or CPT-4/HCPCS. [see also 77 FR 54178] • We provide the following OID to assist developers in the proper identification and exchange of health information coded to certain vocabulary standards.  SNOMED CT® system OID: 2.16.840.1.113883.6.96 [see also 80 FR 62612] • If choosing to certify SNOMED CT®, Health IT Modules can present for certification to a more recent version of SNOMED CT®, U.S. Edition than the September 2015 Release per ONC’s policy that permits certification to a more recent version of certain vocabulary standards. [see also 80 FR 62612] "

source: https://www.healthit.gov/sites/default/files/topiclanding/2018-04/2015Ed_CCG_CCDS.pdf

In Argonaut/US-Core we wrote this: "Based upon the 2015 Edition Certification Requirements, either SNOMED-CT or CPT-4/HCPC procedure codes are required and ICD-10-PCS codes http://www.icd10data.com/icd10pcs MAY be supported as translations to them. If choosing to primarily to dental procedures, the Code on Dental Procedures and Nomenclature (CDT Code) http://www.ada.org/en/publications/cdt/ may be used."

But I can see how the word translation could be confusing in this context: perhaps MAY provide an additional coding instead? (note: translation is defined in the specifications in R4 here: http://build.fhir.org/datatypes.html#codeableconcept )

I think the example you reference is fine, but the structure definition is definitely wrong and has the mother of all qa errors in the short name - it should be changed to 'SNOMED|CPT' or simply 'Procedure Code' to reflect the text and binding.

RE this Question:

First off I may just need education: I see

http://build.fhir.org/extension-elementdefinition-maxvalueset.html but I'm not sure I understand how "extensible+max" is different from "required"? Does it mean that implementers are supposed to use free-text instead of picking a code from outside of this list?

We define this on this page: http://www.fhir.org/guides/argonaut/r2/definitions.html

Max binding is the value set from which extensions can be taken from, i.e. the valueset = all the values in SNOMED + CPT. and yes for extensible if you have a code outside this value set then you only have text to represent it.

http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet

and

http://hl7.org/fhir/StructureDefinition/elementdefinition-minValueSet

extension definitions

Eric

Eric M Haas, DVM, MS Health eData Inc 1183 Mountain View Circle, Napa, CA 94558 707.227.2608|Skype: haas.eric1 ehaas@healthedatainc.com

On Thu, Oct 4, 2018 at 9:03 PM Josh Mandel notifications@github.com wrote:

First off I may just need education: I see http://build.fhir.org/extension-elementdefinition-maxvalueset.html but I'm not sure I understand how "extensible+max" is different from "required"? Does it mean that implementers are supposed to use free-text instead of picking a code from outside of this list?

Other questions:

-

Can't a CodeableConcept always have multiple Codings? What does "translation" here mean with respect to ICD-10/CdT?

Is the intention to prevent other translations from being included? Or, what is the goal of the "MAY"?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/argonautproject/data-query/issues/59#issuecomment-427239721, or mute the thread https://github.com/notifications/unsubscribe-auth/AHEU6mfUsC64rkHxtJwYhnbZ5rdH3Ay6ks5uhtolgaJpZM4XJV_S .

Healthedata1 commented 6 years ago

continued...

Max Value + Extensible is different from Required because with Required you can not represent a code with only text.

The following rules apply when required bindings are used with the

CodeableConcept http://build.fhir.org/datatypes.html#CodeableConcept data type:

  • at least one Coding element SHALL be present

  • one of the Coding values SHALL be from the specified value set

  • text can be provided as well, and is always recommended, but is not an acceptable substitute for the required code

Eric Eric M Haas, DVM, MS Health eData Inc 1183 Mountain View Circle, Napa, CA 94558 707.227.2608|Skype: haas.eric1 ehaas@healthedatainc.com

On Fri, Oct 5, 2018 at 8:00 AM Eric Haas ehaas@healthedatainc.com wrote:

Regarding this Question

Other questions:

Can't a CodeableConcept always have multiple Codings? What does "translation" here mean with respect to ICD-10/CdT? Is the intention to prevent other translations from being included? Or, what is the goal of the "MAY"?

The intent is match the regulatory text from our friends at ONC. "Clarifications: • Health IT must be certified to SNOMED CT® or CPT-4/HCPCS for procedures. • Developers may additionally choose to certify to ICD-10-PCS as an “optional” vocabulary standard for procedures. [see also 77 FR 54178] • Developers may additionally choose to certify to the Code on Dental Procedures and Nomenclature for technology designed to capture dental procedures, but the technology must at a minimum support SNOMED CT® or CPT-4/HCPCS. [see also 77 FR 54178] • We provide the following OID to assist developers in the proper identification and exchange of health information coded to certain vocabulary standards.  SNOMED CT® system OID: 2.16.840.1.113883.6.96 [see also 80 FR 62612] • If choosing to certify SNOMED CT®, Health IT Modules can present for certification to a more recent version of SNOMED CT®, U.S. Edition than the September 2015 Release per ONC’s policy that permits certification to a more recent version of certain vocabulary standards. [see also 80 FR 62612] "

source: https://www.healthit.gov/sites/default/files/topiclanding/2018-04/2015Ed_CCG_CCDS.pdf

In Argonaut/US-Core we wrote this: "Based upon the 2015 Edition Certification Requirements, either SNOMED-CT or CPT-4/HCPC procedure codes are required and ICD-10-PCS codes http://www.icd10data.com/icd10pcs MAY be supported as translations to them. If choosing to primarily to dental procedures, the Code on Dental Procedures and Nomenclature (CDT Code) http://www.ada.org/en/publications/cdt/ may be used."

But I can see how the word translation could be confusing in this context: perhaps MAY provide an additional coding instead? (note: translation is defined in the specifications in R4 here: http://build.fhir.org/datatypes.html#codeableconcept )

I think the example you reference is fine, but the structure definition is definitely wrong and has the mother of all qa errors in the short name

  • it should be changed to 'SNOMED|CPT' or simply 'Procedure Code' to reflect the text and binding.

RE this Question:

First off I may just need education: I see

http://build.fhir.org/extension-elementdefinition-maxvalueset.html but I'm not sure I understand how "extensible+max" is different from "required"? Does it mean that implementers are supposed to use free-text instead of picking a code from outside of this list?

We define this on this page: http://www.fhir.org/guides/argonaut/r2/definitions.html

Max binding is the value set from which extensions can be taken from, i.e. the valueset = all the values in SNOMED + CPT. and yes for extensible if you have a code outside this value set then you only have text to represent it.

http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet

and

http://hl7.org/fhir/StructureDefinition/elementdefinition-minValueSet

extension definitions

Eric

Eric M Haas, DVM, MS Health eData Inc 1183 Mountain View Circle, Napa, CA 94558 707.227.2608|Skype: haas.eric1 ehaas@healthedatainc.com

On Thu, Oct 4, 2018 at 9:03 PM Josh Mandel notifications@github.com wrote:

First off I may just need education: I see http://build.fhir.org/extension-elementdefinition-maxvalueset.html but I'm not sure I understand how "extensible+max" is different from "required"? Does it mean that implementers are supposed to use free-text instead of picking a code from outside of this list?

Other questions:

-

Can't a CodeableConcept always have multiple Codings? What does "translation" here mean with respect to ICD-10/CdT?

Is the intention to prevent other translations from being included? Or, what is the goal of the "MAY"?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/argonautproject/data-query/issues/59#issuecomment-427239721, or mute the thread https://github.com/notifications/unsubscribe-auth/AHEU6mfUsC64rkHxtJwYhnbZ5rdH3Ay6ks5uhtolgaJpZM4XJV_S .

jmandel commented 6 years ago

Thanks for the explanation! I'm at a loss to understand the inteded purpose and intended behavior of this "max binding". Does it prevent you from using any Coding from, say, a nonstandard vocabulary and force you to instep use a free text representation? If so, what is the rationale for this?

And more generally, I'm just sure I understand how a "max" binding applies to a list of Codings -- obviously it isn't constraint all of the Codings, or else the "may use ICD 10" wouldn't apply. So what exactly is the intended logic?

Reading the one sentence extensions definition wasn't helped.

I wonder @GrahameGrieve if you're able to shed light. Do you support max?

Healthedata1 commented 6 years ago

The issue with implementers was that the required binding meant you could not send free text if that was all you had in your system. This allows for that.

I agree if you had was text and a icd-10 code. You could send both but I don’t know if that would ever be the case. Would need ask Jenni. Michelle and or Danielle.

I thought that there was an explanation of the bindings plus extensions somewhere in the spec (Profiles) but could not find it. Coulda swore I made a tracker.

Sent from my iPhone

On Oct 5, 2018, at 4:01 PM, Josh Mandel notifications@github.com wrote:

Thanks for the explanation! I'm at a loss to understand the inteded purpose and intended behavior of this "max binding". Does it prevent you from using any Coding from, say, a nonstandard vocabulary and force you to instep use a free text representation? If so, what is the rationale for this?

And more generally, I'm just sure I understand how a "max" binding applies to a list of Codings -- obviously it isn't constraint all of the Codings, or else the "may use ICD 10" wouldn't apply. So what exactly is the intended logic?

Reading the one sentence extensions definition wasn't helped.

I wonder @grahamegrieve if you're able to shed light. Do you support max?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

jmandel commented 6 years ago

Thanks for the details -- though I'm still struggling to understand.

@daliboz do you have a clear explanation of what this extensible/max thing is all about, and what it achieves over regular extensible bindings?

daliboz commented 5 years ago

As to the technical implementation of it, no. I believe Eric worked with Grahame to determine how to implement the limitation technically.

The functional want was to allow freetext (text only), but not get into the realm of allowing any random codings (without one of the "required" ones being present as well). This approach was used throughout the Argonaut specification. We would have used required, except that it does not allow for there to be text with no code.

brettmarquard commented 5 years ago

The name of the 'extensible+max' continues to cause confusion....

@grahamegrieve @Healthedata1 , any chance we can come up with a new name? "Required + Text allowed" Or something that gives a clue to the implementer.

Healthedata1 commented 5 years ago

yes

Eric M Haas, DVM, MS Health eData Inc 1183 Mountain View Circle, Napa, CA 94558 707.227.2608|Skype: haas.eric1 ehaas@healthedatainc.com

On Sat, Jan 12, 2019 at 9:19 AM brettmarquard notifications@github.com wrote:

The name of the 'extensible+max' continues to cause confusion....

@grahamegrieve https://github.com/grahamegrieve @Healthedata1 https://github.com/Healthedata1 , any chance we can come up with a new name? "Required + Text allowed" Or something that gives a clue to the implementer.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/argonautproject/data-query/issues/59#issuecomment-453764831, or mute the thread https://github.com/notifications/unsubscribe-auth/AHEU6lFF1iAB6hG0oYj9bwkEzvGLULoIks5vChkigaJpZM4XJV_S .