Stream: terminology
Topic: Understanding of CodeSystem supplements
Gabriel Kleinoscheg (Dec 16 2021 at 08:49):
Assuming you have got a publicly accessible CodeSystems A
(like LOINC) and for a specific use case you have to use a set of concepts of A
, hence creating ValueSet A_subset_vs
. If you need additional properties for these concepts for your use case, what would be the recommended way to go?
- Create a supplement of CodeSystem
A
, i.e.A_supp
and add the attributes there. Subsequently base the ValueSet onA_supp
, i.e.A_supp_vs
. - Or is there a way to add the attributes directly to the ValueSet
A_subset_vs
?
Gabriel Kleinoscheg (Dec 16 2021 at 16:04):
Furthermore, I'm interested in the current status of http://www.hl7.org/fhir/codesystem.html#supplements especially regarding impact of Code System supplements on value set expansion. Currently, the IG Publisher adds the information that an expansion (e.g. for A_subset_vs
) is not yet supported.
@Grahame Grieve
Grahame Grieve (Dec 16 2021 at 17:30):
you do need a code system supplement. They are partially supported, and it's a todo for me
Gabriel Kleinoscheg (Jan 10 2022 at 15:12):
Would it also be possible to use ValueSet's designations to add attributes to concepts within a ValueSet?
Lloyd McKenzie (Jan 10 2022 at 16:00):
Designations are not properties.
Gabriel Kleinoscheg (Jan 11 2022 at 16:12):
What may designations (apart from other language representation) be used for? In the last paragraph of http://www.hl7.org/fhir/valueset.html#designations it says that "designations can provide additional displays for other languages, as well as designations for other purposes". According to http://www.hl7.org/fhir/valueset-designation-use.html this may be synonyms or fully specified name. What "other purposes" would be possible?
Gabriel Kleinoscheg (Jan 12 2022 at 10:22):
Gabriel Kleinoscheg said:
Assuming you have got a publicly accessible CodeSystems
A
(like LOINC) and for a specific use case you have to use a set of concepts ofA
, hence creating ValueSetA_subset_vs
. If you need additional properties for these concepts for your use case, what would be the recommended way to go?
- Create a supplement of CodeSystem
A
, i.e.A_supp
and add the attributes there. Subsequently base the ValueSet onA_supp
, i.e.A_supp_vs
.- Or is there a way to add the attributes directly to the ValueSet
A_subset_vs
?
I have an additional question regarding the supplement CodeSystem A_supp
:
Let's say CodeSystem A
has got 100 concepts, in the supplement CodeSystem A_supp
I add properties for 10 of the concepts. These are those 10 concepts which I also want in my ValueSet A_supp_vs
.
Do I have to explicitly state which concepts (the 10 I want to have in my ValueSet) go into A_supp_vs
with ValueSet.compose.include.concept
? Or would it be possible to simply say ValueSet.compose.include.system=A_supp
without any ValueSet.compose.include.concept
?
I fear that with the latter I would include all concepts from A
.
Grahame Grieve (Jan 14 2022 at 02:05):
What "other purposes" would be possible?
pictures is one obvious case. Photos or diagrams, or even videos, for some code systems. Another is other kinds of text representations, the most important of which is consumer friendly display names, or other kinds of display names - the designation use value set has an extensible bindings because we know of many code systems that have purpose specific designations
Grahame Grieve (Jan 14 2022 at 02:07):
Or would it be possible to simply say ValueSet.compose.include.system=A_supp without any ValueSet.compose.include.concept?
no. You have to say that the value set takes concepts from A and define them directly. You can say that the value set interpretation depends on A_supp and make the compose an intensional one that includes all codes with a property value = x where the property values are defined in A_supp
Robert McClure (Jan 14 2022 at 22:51):
Do I have to explicitly state which concepts (the 10 I want to have in my ValueSet) go into A_supp_vs with ValueSet.compose.include.concept? Or would it be possible to simply say ValueSet.compose.include.system=A_supp without any ValueSet.compose.include.concept?
You can explicitly include the 10 concepts you want in the value set expansion.
You can also, I believe, craft a filter that looks for the existence of "any value" for the properties your supplement has added to the concepts and since the only concepts with supplemented properties, are those you want, the expansion should be limited to those. But, we need some guidance on how to specify the use of the supplement in defining the value set. @Michael Lawley or @Peter Jordan - have you all defined value sets dependent on supplement content?
Grahame Grieve (Jan 15 2022 at 23:37):
well, you can explicitly indicate that correct processing of a value set depends on a code system supplement - there's an extension for that. Is that the guidance you're referring to?
Peter Jordan (Jan 16 2022 at 00:24):
The valueset-supplement extension doesn't appear to facilitate defining a value set according to the contents of a supplement, only its existence. @Robert McClure, I'm assuming that your use case is for properties held in supplemtns, rather than designations.
Robert McClure (Jan 16 2022 at 20:30):
I was assuming that you can define the members of a value set - use as a filter - values (or the simple existence of) items (properties, relations?) defined as part of a code system supplement. Is that not true? If not, why not?
Grahame Grieve (Jan 16 2022 at 21:16):
The valueset-supplement extension doesn't appear to facilitate defining a value set according to the contents of a supplement, only its existence.
Not quite - not just 'existence' but 'availability'. But Yes, it doesn't say anything about the definition - that you have to do by some kind of intensional definition using properties
Grahame Grieve (Jan 16 2022 at 21:18):
I was assuming that you can define the members of a value set - use as a filter - values (or the simple existence of) items (properties, relations?) defined as part of a code system supplement
Yes, you can. And the logic works whether or not the value set references the code system or not. The extension exists so that the value set can ensure that it exists (and bind to a version of it)
Michael Lawley (Jan 20 2022 at 00:19):
Sure. Imagine your supplement defines a new property price
, then the ValueSet may have a ValueSet.compose.include
filter for price < 100
(as well as the extension that links to your supplement). Then, expansion of the ValueSet would (additionally) use the property values from the linked supplement to evaluate the ValueSet.compose
Lloyd McKenzie (Jan 20 2022 at 02:26):
As a real-world example, Canada defines a supplement to LOINC that identifies certain codes as being 'orderable'. We then have value sets that filter to only include orderable codes when making lab ServiceRequests.
Michael Lawley (Jan 24 2022 at 06:19):
@Robert McClure wrt
craft a filter that looks for the existence of "any value" for the properties your supplement has added to the concepts
the answer should be yes. For @Lloyd McKenzie 's example of adding an orderable
property, the appropriate filter would be:
"filter": [{
"property": "orderable",
"op": "exists",
"value": "true"
}]
i.e., match all concepts that have a value defined for the orderable
property.
Richard Townley-O'Neill (Mar 15 2022 at 02:00):
In Codesystem.supplements I want to use a code system with version, "http://loinc.org|2.71". The validator complains with CodeSystem http://loinc.org|2.71 cannot be found, so cant check if concepts are valid
. I believe that Ontoserver expects a version number. Is there a way to make both happy?
@Michael Lawley @Grahame Grieve
Richard Townley-O'Neill (Mar 15 2022 at 02:13):
The IGPublisher does not display, for a ValueSet, information about use of the extension http://hl7.org/fhir/StructureDefinition/valueset-supplement ?
It would be nice if it listed the supplement in the metadata table and included the relevant parts of the supplement in the expansion.
Michael Lawley (Mar 15 2022 at 05:00):
CodeSystem.supplements
is a canonical so a version should be supported by the validator.
Does the validator have access to that specific version of LOINC?
Richard Townley-O'Neill (Mar 15 2022 at 06:42):
I believe so: https://tx.fhir.org/loinc/en-US
Michael Lawley (Mar 15 2022 at 08:33):
This shows me LOINC is supported: http://tx.fhir.org/r4/metadata?mode=terminology&_format=json
But doesn't indicate any version information.
This gives no results: http://tx.fhir.org/r4/CodeSystem?url=http://loinc.org&_format=json
Fortunately this does help: http://tx.fhir.org/r4/ValueSet/$expand?url=http://loinc.org/vs&count=1&_format=json
{
"resourceType": "ValueSet",
"language": "en",
"version": "2.71",
"name": "LOINC Value Set - all LOINC codes",
"status": "active",
"date": "2022-03-15T08:31:21.348Z",
"expansion": {
"identifier": "urn:uuid:bdeef301-5117-4a7d-bab5-2c7544bcf6d4",
"timestamp": "2022-03-15T08:31:21.348Z",
"parameter": [
{
"name": "version",
"valueUri": "http://loinc.org|2.71"
}
],
"contains": [
{
"system": "http://loinc.org",
"code": "1-8",
"display": "Acyclovir [Susceptibility]"
}
]
}
}
So that looks like a bug in the validator
Last updated: Apr 12 2022 at 19:14 UTC