FHIR Nested ValueSets

Is it possible to define a ValueSet as composed of Concepts from other ValueSets? E.g., Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests? (Assume that it is not feasible to create the new ValueSet “natively”.) We have some potential use cases.

Jack

hi

well, there’s 4 ways to include codes in a value set

  • define them internally (e.g. inlined codesystem)

  • list them iteratively (e.g a list of LOINC codes)

  • include them by their properties - and each code system can define it’s own properties beyond the base ones)

  • import codes from another value set

Your request sounds like #4, but the details sound a little more ambitious?

Grahame

···

On Sat, Nov 1, 2014 at 9:27 AM, Jack Bowie jack.bowie@gmail.com wrote:

Is it possible to define a ValueSet as composed of Concepts from other ValueSets? E.g., Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests? (Assume that it is not feasible to create the new ValueSet “natively”.) We have some potential use cases.

Jack

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / grahame@healthintersections.com.au / +61 411 867 065

So

  1. Is done via valueset.define?

  2. Is done via valueset.compose.include?

  3. Is done via valueset.compose.include.filter?

  4. How do I do this?

Jack

···

On Friday, October 31, 2014 6:49:38 PM UTC-4, grahame wrote:

hi

well, there’s 4 ways to include codes in a value set

  • define them internally (e.g. inlined codesystem)
  • list them iteratively (e.g a list of LOINC codes)
  • include them by their properties - and each code system can define it’s own properties beyond the base ones)
  • import codes from another value set

Your request sounds like #4, but the details sound a little more ambitious?

Grahame

On Sat, Nov 1, 2014 at 9:27 AM, Jack Bowie jack....@gmail.com wrote:

Is it possible to define a ValueSet as composed of Concepts from other ValueSets? E.g., Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests? (Assume that it is not feasible to create the new ValueSet “natively”.) We have some potential use cases.

Jack

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / gra…@healthintersections.com.au / +61 411 867 065

well, what exactly is “this”?

I’ll take the simplest option from your requirements: " Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests?"

So let’s say that the hospital has already defined the value set, and registered it on the terminology server. They’ve given it the logical URL (ValueSet.url) “http://acme.com/fhir/vs/lab-blood-tests” and on the terminology server it’s “http://acme.com/fhir/ValueSet/1214

I want to define a value set that includes this value set:

There you go - your own value set,defined as the same as the other value set.

So let’s take the other interpretation: I’m going to use the existing value set, but restrict it to codes about blood. So let’s say that the hospital has already defined the value set, and registered it on the terminology server. They’ve given it the logical URL (ValueSet.url) “http://acme.com/fhir/vs/lab-tests” and on the terminology server it’s “http://acme.com/fhir/ValueSet/1215

So, import the lab test value set, and then remove all the codes that are not System = blood. Alert readers will note that this definition has problems in LOINC, the mismatch between “blood” in general usage, and the more specific meaning of “Bld” in LOINC. I’m not aware of published hierarchies in the LOINC components, and I’m not sure how to resolve that. But I’m not sure if that’s what you meant

Grahame

p.s. (the terminology server - or it’s administrator - could choose for the original value set to be http://acme.com/fhir/ValueSet/lab-blood-tests, or the system could even be set up so that the literal and logical URL are the same - that’s what we do in FHIR (or will, once we finally get accept-mime types handling on the HL7 web server) - but in principle, the logical and literal can’t always be the same thing)

···

On Sat, Nov 1, 2014 at 10:03 AM, Jack Bowie jack.bowie@gmail.com wrote:

So

  1. Is done via valueset.define?
  1. Is done via valueset.compose.include?
  1. Is done via valueset.compose.include.filter?
  1. How do I do this?

Jack

On Friday, October 31, 2014 6:49:38 PM UTC-4, grahame wrote:

hi

well, there’s 4 ways to include codes in a value set

  • define them internally (e.g. inlined codesystem)
  • list them iteratively (e.g a list of LOINC codes)
  • include them by their properties - and each code system can define it’s own properties beyond the base ones)
  • import codes from another value set

Your request sounds like #4, but the details sound a little more ambitious?

Grahame

On Sat, Nov 1, 2014 at 9:27 AM, Jack Bowie jack....@gmail.com wrote:

Is it possible to define a ValueSet as composed of Concepts from other ValueSets? E.g., Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests? (Assume that it is not feasible to create the new ValueSet “natively”.) We have some potential use cases.

Jack

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / gra…@healthintersections.com.au / +61 411 867 065

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


http://www.healthintersections.com.au / grahame@healthintersections.com.au / +61 411 867 065

You got it. The below describes (mostly) what I was asking. I’ll check with the owner of the use-case for any further clarifications.

The only piece missing is the ability to, in your last example for example, to have compose.exclude.system be the url of a valueset as well as a code system. In this case it does, of course, get difficult to understand what properties would be acceptable in such definition.

Jack

···

On Friday, October 31, 2014 7:19:37 PM UTC-4, grahame wrote:

well, what exactly is “this”?

I’ll take the simplest option from your requirements: " Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests?"

So let’s say that the hospital has already defined the value set, and registered it on the terminology server. They’ve given it the logical URL (ValueSet.url) “http://acme.com/fhir/vs/lab-blood-tests” and on the terminology server it’s “http://acme.com/fhir/ValueSet/1214

I want to define a value set that includes this value set:

There you go - your own value set,defined as the same as the other value set.

So let’s take the other interpretation: I’m going to use the existing value set, but restrict it to codes about blood. So let’s say that the hospital has already defined the value set, and registered it on the terminology server. They’ve given it the logical URL (ValueSet.url) “http://acme.com/fhir/vs/lab-tests” and on the terminology server it’s “http://acme.com/fhir/ValueSet/1215

So, import the lab test value set, and then remove all the codes that are not System = blood. Alert readers will note that this definition has problems in LOINC, the mismatch between “blood” in general usage, and the more specific meaning of “Bld” in LOINC. I’m not aware of published hierarchies in the LOINC components, and I’m not sure how to resolve that. But I’m not sure if that’s what you meant

Grahame

p.s. (the terminology server - or it’s administrator - could choose for the original value set to be http://acme.com/fhir/ValueSet/lab-blood-tests, or the system could even be set up so that the literal and logical URL are the same - that’s what we do in FHIR (or will, once we finally get accept-mime types handling on the HL7 web server) - but in principle, the logical and literal can’t always be the same thing)

On Sat, Nov 1, 2014 at 10:03 AM, Jack Bowie jack....@gmail.com wrote:

So

  1. Is done via valueset.define?
  1. Is done via valueset.compose.include?
  1. Is done via valueset.compose.include.filter?
  1. How do I do this?

Jack

On Friday, October 31, 2014 6:49:38 PM UTC-4, grahame wrote:

hi

well, there’s 4 ways to include codes in a value set

  • define them internally (e.g. inlined codesystem)
  • list them iteratively (e.g a list of LOINC codes)
  • include them by their properties - and each code system can define it’s own properties beyond the base ones)
  • import codes from another value set

Your request sounds like #4, but the details sound a little more ambitious?

Grahame

On Sat, Nov 1, 2014 at 9:27 AM, Jack Bowie jack....@gmail.com wrote:

Is it possible to define a ValueSet as composed of Concepts from other ValueSets? E.g., Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests? (Assume that it is not feasible to create the new ValueSet “natively”.) We have some potential use cases.

Jack

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / gra…@healthintersections.com.au / +61 411 867 065

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / gra…@healthintersections.com.au / +61 411 867 065

when we were designing the value set resource, at first we had the facility to exclude codes in a value set - the opposite of import. But yes, there were definitional difficulties, and so we elected to leave it out. We can consider additional use cases as they arise

Grahame

···

On Sat, Nov 1, 2014 at 10:45 AM, Jack Bowie jack.bowie@gmail.com wrote:

You got it. The below describes (mostly) what I was asking. I’ll check with the owner of the use-case for any further clarifications.

The only piece missing is the ability to, in your last example for example, to have compose.exclude.system be the url of a valueset as well as a code system. In this case it does, of course, get difficult to understand what properties would be acceptable in such definition.

Jack

On Friday, October 31, 2014 7:19:37 PM UTC-4, grahame wrote:

well, what exactly is “this”?

I’ll take the simplest option from your requirements: " Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests?"

So let’s say that the hospital has already defined the value set, and registered it on the terminology server. They’ve given it the logical URL (ValueSet.url) “http://acme.com/fhir/vs/lab-blood-tests” and on the terminology server it’s “http://acme.com/fhir/ValueSet/1214

I want to define a value set that includes this value set:

There you go - your own value set,defined as the same as the other value set.

So let’s take the other interpretation: I’m going to use the existing value set, but restrict it to codes about blood. So let’s say that the hospital has already defined the value set, and registered it on the terminology server. They’ve given it the logical URL (ValueSet.url) “http://acme.com/fhir/vs/lab-tests” and on the terminology server it’s “http://acme.com/fhir/ValueSet/1215

So, import the lab test value set, and then remove all the codes that are not System = blood. Alert readers will note that this definition has problems in LOINC, the mismatch between “blood” in general usage, and the more specific meaning of “Bld” in LOINC. I’m not aware of published hierarchies in the LOINC components, and I’m not sure how to resolve that. But I’m not sure if that’s what you meant

Grahame

p.s. (the terminology server - or it’s administrator - could choose for the original value set to be http://acme.com/fhir/ValueSet/lab-blood-tests, or the system could even be set up so that the literal and logical URL are the same - that’s what we do in FHIR (or will, once we finally get accept-mime types handling on the HL7 web server) - but in principle, the logical and literal can’t always be the same thing)

On Sat, Nov 1, 2014 at 10:03 AM, Jack Bowie jack....@gmail.com wrote:

So

  1. Is done via valueset.define?
  1. Is done via valueset.compose.include?
  1. Is done via valueset.compose.include.filter?
  1. How do I do this?

Jack

On Friday, October 31, 2014 6:49:38 PM UTC-4, grahame wrote:

hi

well, there’s 4 ways to include codes in a value set

  • define them internally (e.g. inlined codesystem)
  • list them iteratively (e.g a list of LOINC codes)
  • include them by their properties - and each code system can define it’s own properties beyond the base ones)
  • import codes from another value set

Your request sounds like #4, but the details sound a little more ambitious?

Grahame

On Sat, Nov 1, 2014 at 9:27 AM, Jack Bowie jack....@gmail.com wrote:

Is it possible to define a ValueSet as composed of Concepts from other ValueSets? E.g., Hospital X’s Lab Tests (a ValueSet drawn from LOINC) that are blood tests? (Assume that it is not feasible to create the new ValueSet “natively”.) We have some potential use cases.

Jack

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / gra…@healthintersections.com.au / +61 411 867 065

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

http://www.healthintersections.com.au / gra…@healthintersections.com.au / +61 411 867 065

You received this message because you are subscribed to the Google Groups “Terminology Services” group.

To unsubscribe from this group and stop receiving emails from it, send an email to terminology-services+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


http://www.healthintersections.com.au / grahame@healthintersections.com.au / +61 411 867 065