Stream: IG creation
Topic: Fixing nucc code system expansion
Eric Haas (Jul 13 2020 at 19:42):
As discussed here: J#27023 the NUCC codesystem contains spurious codes serving as grouper codes that should not be exposed. It is unclear whether the codes should be expanded at all due to PI questions. ( maybe @Robert McClure can clarify that point ). in summary here is the expansion from US Core
and the codes beginning with "base" are not part of the code-system. not sure which repro to post an issue> ig-pub or
Grahame Grieve (Jul 13 2020 at 19:50):
ok so why this happens:
- NUCC includes abstract concepts
- NUCC doesn't assign them codes
- the CodeSystem resource requires all concepts to have codes
- so the code I used to create this resource auto-generated internal codes for those concepts
- the US core value set asks for all concepts in NUCC, so it gets all the concepts, including my generated codes
So the NUCC value set should only include leaf concepts
Robert McClure (Jul 13 2020 at 19:56):
No, the value set has to have all the codes that have a code defined by NUCC. These will not be limited to leaf concepts. But restructuring the value set definition to do such a thing will not correctly fix the problem that the FHIR rendering is assigning identifiers to the abstract concepts and those identifiers can be found, used, and displayed. Is there a way that we can suppress any use within FHIR @Grahame Grieve
Grahame Grieve (Jul 13 2020 at 19:58):
I don't understand. Either:
- the NUCC code system defines codes for the concepts
- we shouldn't put the grouping concepts in the code system (and so can't select sub-sets by category)
- we should generate codes for the concepts
You appear to imply there's a 4th option, but I don't know what that is
Robert McClure (Jul 13 2020 at 20:03):
In a perfect world we would generate internal identifiers for the groupers and be able to use that in defining a value set compose, but those concepts could never be included in an expansion.
Grahame Grieve (Jul 13 2020 at 20:04):
but there's cases where you want to be able to include them in the expansion because of what you are doing. For me, this is a problem in the definition of the value set.
Grahame Grieve (Jul 13 2020 at 20:04):
You just want to be lazy in the definition of the value set.
Robert McClure (Jul 13 2020 at 20:05):
But I need to confirm that would be allowed by NUCC. The alternative would be they don't want the groupers to have any code, which we'd have to tell them means they can not be in the code system because they provide value as groupers so are either usable, or don't exist.
Grahame Grieve (Jul 13 2020 at 20:05):
ok. It's certainly good to clarify this with NUCC. Ideally, they'll choose to assign codes to the groupers so that people can refer to the groupers, and then we can update the code system with the codes
Eric Haas (Jul 13 2020 at 20:41):
So the NUCC value set should only include leaf concepts
how do I do that exactly? it says here:
Value sets may include abstract codes - that is, codes designated by the underlying code system as not for use as a selectable concept in a particular context. These abstract codes are typically used as a grouping/searching mechanism, and can be included either by enumerating them, or by using a filter.
Grahame Grieve (Jul 13 2020 at 20:42):
<filter>
<code value="child"/>
<op value="exists"/>
<value value="false"/>
<filter>
Eric Haas (Jul 13 2020 at 20:43):
the above text implies the abstact codes are excluded by default
Grahame Grieve (Jul 13 2020 at 20:43):
well, that's certainly not the case that they are excluded by default
Eric Haas (Jul 13 2020 at 20:44):
OK I just found that text and my experience is that they are included by default. I will log a tracker
Eric Haas (Jul 13 2020 at 20:45):
hold on that is for composition and not expansion... my mistake
Robert McClure (Jul 13 2020 at 21:48):
@Eric Haas the expectation would be not just leaf node values. An "all codes" expansion should have anything with "an official NUCC code."
Eric Haas (Jul 14 2020 at 03:15):
@Robert McClure my understanding was that in this case the abstract grouping codes are the problem.
@Grahame Grieve I added the filter and I am now getting this validation error ( I am at a disadvantage since I don't where the codes system resource is defined ) :
/Users/ehaas/Documents/FHIR/US-Core-R4/source/resources/valueset-us-core-provider-specialty.xml
Path Severity Message
ValueSet/us-core-provider-specialty: ValueSet Process Info Validate resource against profile http://hl7.org/fhir/StructureDefinition/ValueSet
ValueSet.where(id = 'us-core-provider-specialty') error Error from server: The filter "child exists false" was not understood in the context of http://nucc.org/provider-taxonomy (see Tx log)
here is the actual valueset BTW
<?xml version="1.0" encoding="UTF-8"?>
<ValueSet xmlns="http://hl7.org/fhir" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<id value="us-core-provider-specialty"/>
<url value="http://hl7.org/fhir/us/core/ValueSet/us-core-provider-specialty"/>
<version value="1.0.1"/>
<name value="USCoreProviderSpecialityNucc"/>
<title value="US Core Provider Speciality (NUCC)"/>
<status value="active"/>
<date value="2019-05-21"/>
<publisher value="HL7 US Realm Steering Committee"/>
<contact>
<telecom>
<system value="other"/>
<value value="http://hl7.org/fhir"/>
</telecom>
</contact>
<description value="Provider speciality roles codes which are composed of the NUCC Health Care Provider Taxonomy Code Set for providers"/>
<copyright value="This value set includes content from NUCC Health Care Provider Taxonomy Code Set for providers which is copyright © 2016+ American Medical Association. For commercial use, including sales or licensing, a license must be obtained."/>
<compose>
<include>
<system value="http://nucc.org/provider-taxonomy"/>
<filter>
<property value="child"/>
<op value="exists"/>
<value value="false"/>
</filter>
</include>
</compose>
</ValueSet>
Grahame Grieve (Jul 14 2020 at 04:27):
ok fixed some time today
Robert McClure (Jul 14 2020 at 17:48):
So I'm clear: @Grahame Grieve @Eric Haas , is there a solution that will preclude the groupers from getting an HL7 internal defined code but allow them to still be "in the HL7 rendering of the code system" and also allow a value set compose to reference them so that it could say something like "all decedents of" the grouper, but the groupers would not show up in any expansion, yet all the other concepts could (both leaves and their parents.)
Eric Haas (Jul 14 2020 at 17:58):
I am being really pragmatic -but right now to meet timelines and budgets so all I am concerned about is not exposing these grouper codes in us-core I think the solution you are asking for is not currently implemented.
Robert McClure (Jul 14 2020 at 18:04):
@Eric Haas Understand we have constraints. Is the solution to only include leaf concepts in the expansion? IE: change the definition of that value set? I'd much rather we change the code system resource to mark all the groupers as abstract or something then exclude them while leaving the CLD for the value set "all non-abstract codes" or some such. Is this possible? if you restrict to only leaf concepts that changes the meaning of the value set and removes valid codes.
Eric Haas (Jul 14 2020 at 18:23):
the CLD for the value set "all non-abstract codes"
I don't know how to do that. I looked and did not see a way.
Eric Haas (Jul 14 2020 at 18:26):
posted this question here
Eric Haas (Jul 14 2020 at 18:28):
and also I don't how to access and view this code system in FHIR
Reece Adamson (Nov 19 2020 at 20:42):
@Eric Haas is it intentional that inactive codes are included in the provider speciality valueset e.g. 103GC0700X
? I see inactive codes in the FHIR CodeSystem representation on GitHub FHIR/Pacages. I don't have an opinion on whether or not they should be included, just looking for clarification if that was the intent.
Eric Haas (Nov 19 2020 at 21:05):
We did not intentionally include them and before we can consider whether they should be discouraged 0- which I assume is the wish of the code system oweners. I am going to defer this question to the Vocabulary stream. There are a lot of questions swirling around using NUCC codes right now and will just add this to the list before we can resolve it for US Core.
Eric Haas (Nov 19 2020 at 21:09):
moved discussion to here: https://chat.fhir.org/#narrow/stream/179202-terminology/topic/NUCC.20inactive.20codes.2E
Last updated: Apr 12 2022 at 19:14 UTC