Stream: terminology
Topic: ValueSet compose for a Coding-typed property
Michael Lawley (Feb 17 2022 at 07:13):
I have a CodeSystem with codes that have a property of type Coding (because the value may be from one of several other CodeSystems).
I now want to define a ValueSet that filters on these properties. The type of compose.include.filter.value
is string
, but the spec only mentions its use for codes, booleans, or regex (dependent on the filter operator).
What syntax should I use here for Coding? I was thinking token syntax (<system>|<code>
) and its variants.
For the EQUALS operator:
<system>|<code>
exact match<code>
match code, any system|<code>
match code, NO system
but I can see value in wanting to filter on all property values from a single CodeSystem, which would naturally lead to
<system>|
match system, any code
However this conflicts with Search semantics which would require NO code.
@Grahame Grieve @Peter Jordan @Rob Hausam
Grahame Grieve (Feb 17 2022 at 08:05):
I don't think we've described this, but my inclination would have been to use <system>#<code>. And for what you're doing, I would expect {property} in {valueset-ref} to avoid the syntax issues altogether
Michael Lawley (Feb 17 2022 at 08:24):
But that's not how in
works; it takes a comma-separated list of codes (except for SNOMED)
Grahame Grieve (Feb 17 2022 at 09:04):
oh? I'm sure we agreed that there was a way to do that somehow - to say that the filter was based on a property in a value set? I think that I do that internally: if there's no commas,and it's a uri, then it's a value set reference
Rob Hausam (Feb 17 2022 at 12:38):
Interesting. I could be forgetting, but I don't think that's in the spec (or even "hidden" anywhere that I know of). But maybe it should be.
Michael Lawley (Feb 17 2022 at 20:52):
Re syntax above, I've just been back to double-check https://www.hl7.org/fhir/search.html#token and discovered that I remembered the search semantics incorrectly and each form matches exactly what I'm after.
So, @Grahame Grieve the | based syntax has a lot going for it - where does the # syntax come from (FSH?)
Brian Postlethwaite (Feb 20 2022 at 21:37):
The | in canonicals is used to add on the version number.
system|version#code when used in a canonical value...
Michael Lawley (Feb 20 2022 at 21:42):
Where do "canonical values" show up?
| is used in token syntax which only allows for system and code (not version)
Grahame Grieve (Feb 20 2022 at 22:47):
I think that | is ambiguous - are you referring to version or code? But also you’re referring to a search term, and you’re not doing a search. I think that system|version#code is a more reliable approach
Michael Lawley (Feb 20 2022 at 23:12):
Ok, so what variations should be supported?
system|version#code
- exact match on allcode
- code, any systemsystem|
- system match, any codesystem|version
- system & version match, any code#code
- code, no systemsystem#code
- system and code match, any version
others?
Last updated: Apr 12 2022 at 19:14 UTC