FHIR Chat · ValueSet compose for a Coding-typed property · terminology

Stream: terminology

Topic: ValueSet compose for a Coding-typed property


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

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

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

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

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

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

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

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

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

view this post on Zulip Michael Lawley (Feb 20 2022 at 23:12):

Ok, so what variations should be supported?

  • system|version#code - exact match on all
  • code - code, any system
  • system| - system match, any code
  • system|version - system & version match, any code
  • #code - code, no system
  • system#code - system and code match, any version

others?


Last updated: Apr 12 2022 at 19:14 UTC