FHIR Chat · ValueSets · implementers

Stream: implementers

Topic: ValueSets


view this post on Zulip Pranitha Sruthi (Jul 27 2017 at 12:39):

Hi all, while creating profiles, if I use LOINC or SNOMED CT codes which are not present in the valueset list of the resource, do I need to edit that particular valueset of the resource? For example, if I am creating a profile using the resource Observation and need a code which is available in SNOMED but not in the valueset of Observation.code then do I have to edit or create the valueset? Thank you

view this post on Zulip Grahame Grieve (Jul 27 2017 at 13:05):

create your own value set, and bind to that. With one single exception, all the snomed value sets are example bindings, not rules to be followed

view this post on Zulip Pranitha Sruthi (Jul 27 2017 at 13:06):

Okay. How can I create valuesets?

view this post on Zulip Grahame Grieve (Jul 27 2017 at 13:32):

at the moment, we are mostly creating value sets by editing the resources by hand.

view this post on Zulip John Moehrke (Jul 27 2017 at 19:10):

The http://ClinFHIR.com tool from @David Hay has the ability to create a vocabulary and valueset. It is temporary, but I have taken the resulting JSON, and imported it into http://simplifier.net. Still not figured out how to make the vocabulary referencable enough to put into my StructureDefinition...

view this post on Zulip Eric Haas (Jul 27 2017 at 19:51):

what do you mean by a vocabulary.? In SD you reference the valueset and or codesystems by URI. ( btw you can create a code system and valueset using the spreadshet and IG pub and then grab the xml and use that directly. But oftentimes just as fast and easy to create an enumerated value set for a single code system in excel using a formula.)

view this post on Zulip Robert McClure (Jul 28 2017 at 18:22):

VSAC https://vsac.nlm.nih.gov will eventually provide full FHIR functionality and simplifies maintenance. You can use it now (you'll need a free UMLS license) and then access the content you've published using FHIR TS (see https://cts.nlm.nih.gov/fhir/). VSAC value sets are a bit restricted - they need to be an enumerated list and only one code system in a value set (you combine them via a "grouping" value set.) Check it out.

view this post on Zulip Katie Wheatley (Aug 01 2017 at 15:47):

I have created the valueset below in FHIR DSTU2. Please could you confirm that this structure is correctly formed. My aim is to include all members where the SNOMED refset ID is 999000391000000109.

<ValueSet xmlns="http://hl7.org/fhir">
<meta>
<lastUpdated value="2017-07-10T09:00:00+01:00"/>
</meta>
<url value="https://fhir.nhs.uk/ValueSet/document-type-1"/>
<version value="1.0.0"/>
<name value="Document Type"/>
<status value="active"/>
<publisher value="NHS Digital"/>
<contact>
<name value="Interoperability Team"/>
<telecom>
<system value="email"/>
<value value="interoperabilityteam@nhs.net"/>
<use value="work"/>
</telecom>
</contact>
<description value="A code from the SNOMED Clinical Terminology UK coding system that describes a clinical document type. Any code from the SNOMED CT UK 'Correspondence Document Type' subset with subset original id 44041000000135; the corresponding SNOMED CT UK Refset fully specified name is 'Correspondence Document type simple reference set (foundation metadata concept)' with Refset Id 999000391000000109."/>
<requirements value="This vocabulary contains values to be selected to determine the document type."/>
<copyright value="This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement."/>
<compose>
<include>
<system value="http://snomed.info/sct"/>
<version value="1.33.2"/>
<filter>
<property value="concept"/>
<op value="in"/>
<value value="999000391000000109"/>
</filter>
</include>
</compose>
</ValueSet>

view this post on Zulip Katie Wheatley (Aug 01 2017 at 15:51):

The Furore validator gives the the following Warning message in relation to the above ValueSet. I think it is for Information only - not to tell me that the formation of the Valueset is incorrect. Am I correct to believe that?

[WARNING] The terminology service is incapable of validating Code '820101000000109' from system 'http://snomed.info/sct' with display 'Social services assessment record (record artifact)' (valueset 'https://fhir.nhs.uk/ValueSet/document-type-1'). (at Bundle.entry[0].resource[0].type[0])
[INFORMATION] ValueSet cannot be expanded: Expansion for ValueSet 'https://fhir.nhs.uk/ValueSet/document-type-1' uses an include with just a system ('http://snomed.info/sct') and no enumerated concepts to include. (at Bundle.entry[0].resource[0].type[0])

view this post on Zulip Grahame Grieve (Aug 01 2017 at 20:32):

the version is wrong.

view this post on Zulip Grahame Grieve (Aug 01 2017 at 20:36):

but it looks like you've hit a limitation in the C# validator - @Ewout Kramer at this point it should pas the value set to tx.fhir.org to validate.

view this post on Zulip Grahame Grieve (Aug 01 2017 at 20:36):

which, btw, returns this error:

view this post on Zulip Grahame Grieve (Aug 01 2017 at 20:36):

Unable to provide support for code system http://snomed.info/sct version 1.33.2

view this post on Zulip Grahame Grieve (Aug 01 2017 at 20:37):

but it's probably not going work anyway because I haven't loaded the UK distribution of SNOMED CT onto the server

view this post on Zulip Grahame Grieve (Aug 01 2017 at 20:45):

I'd have to dig up my trud login for that....

view this post on Zulip Ewout Kramer (Aug 02 2017 at 08:31):

Yes, the C# valueset expander is limited (and certainly the DSTU2 one) - this is by design. It also can be configured to use a fallback in this case and reach out to a "real" terminology service. Katie - depending on how you are running the validator (through Simplifier? The Windows one that Richard Kavanagh provides?) I could show you how to make that work...

view this post on Zulip Katie Wheatley (Aug 02 2017 at 08:58):

@Ewout Kramer @Grahame Grieve Thanks for your reply. We are using the Windows version of the validator provided by Richard Kavanagh. I would want to discuss the possible configuration of this to reach out to the "real" terminology service with Richard before taking this further. However, please could you let me know in the meantime whether I would need always to provide the version of the code system, in this case SNOMED, to make your solution work. The version element is not mandatory in either the DSTU2 or STU3 Valueset resource, so that is why I am asking this. For your information, I have amended my SNOMED version to v1.36.1 which is the current version I am browsing. Many thanks for your assistance, Katie.

view this post on Zulip Grahame Grieve (Aug 02 2017 at 09:09):

you need to use the URI version of the SNOMED release, not 1.36.1

view this post on Zulip Grahame Grieve (Aug 02 2017 at 09:09):

the FHIR terminology servers will use the international distribution of snomed CT if you don't specify a version.

view this post on Zulip Grahame Grieve (Aug 02 2017 at 09:10):

if you're using your own terminology service, you'll have to ask the admins what the default behaviour is

view this post on Zulip Ewout Kramer (Aug 02 2017 at 09:22):

Yes, going through @Richard Kavanagh is a good idea - I think he periodically integrates the latest version into his windows validator. When he does that he will get this fallback behaviour, I can show Richard how to update his code to make this work.

view this post on Zulip Katie Wheatley (Aug 02 2017 at 09:25):

@Ewout Kramer @Grahame Grieve Thanks, I will discuss with @Richard Kavanagh and get back to you in due course.

view this post on Zulip Viet Nguyen (Sep 29 2017 at 17:01):

Rob - How do we address the need for a UMLS license (and login/PW) when references within profiles point to VSAC? For example, in a profile I'm working on:

    <description value="A VSAC value set that describes one's intention for pregnancy used by FPAR."/>
                   <valueSetReference>
                                  <reference value="https://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1166.22"/>

I imagine this will cause problems with validation of profiles or at run time.
Viet

view this post on Zulip Robert McClure (Sep 29 2017 at 17:54):

@Viet Nguyen I need to better understand the user flow you are assuming will occur. Yes, if a human clicks on that link, a separate browser window will open and they will need to login before they can see the http page. They will not need to if your browser is storing cookies, until it exxpires. For now, I don't think NLM sees that as an improper burden given the legal requirements they are under when displaying IP-protected content.

But I suspect you have other workflows in mind. Can you please document them so we can figure out how this might impact the current process? @Grahame Grieve Do you have expectations here that can add to the discussion?

view this post on Zulip Viet Nguyen (Sep 29 2017 at 18:27):

@Robert McClure
I'm reviewing some profiles for an HSPC/ACOG. I created to single user account on Simplifier to learn how to use it. I uploaded the FPAR profiles. They're in Draft, but you can see them here - https://simplifier.net/VNTest01/$Show

As an example, I select the FPAR Pregnancy Intention Eval Profile - https://simplifier.net/VNTest01/fparPregnancyIntentionEval

Logged into the account, I have option to Validate the profile. When I do, I get warning messages (see attached screen shot). The validator cannot resolve the reference to the URI because of the need to log in.

WarningMessages.png

I can see an issue when a system (not user) wants to validate that it's receiving/creating a valid code in a VSAC valueset. This may also be an issue for other organizations (authorized to use VSAC) to reuse or adopt profiles. Recognizing the need for proper usage of VSAC, what's the best approach to systems validating their valueset?

view this post on Zulip Grahame Grieve (Oct 03 2017 at 01:44):

I don't really know the answer here - needing a username/password is both a technical and a procedural burden that blocks development of an eco-system. eg. I could simply write a username/password for VSAC into the infrastructure somewhere, but the point of the VSAC login is to force user acknowledgement of some arcane and irrelevant licensing terms or something, so doing an end-run around this with the tooling will just generate procedural push-back. but the alternative is to... refuse to allow VSAC hosted value sets in FHIR IGs? that's pretty much the exact opposite of the intent of VSAC... @Robert McClure @Avinash Shanbhag Does VSAC really really need to force login? I think that the consequences of this for building an eco-system have not really been understood. Time to push back against the lawyers....

view this post on Zulip Grahame Grieve (Oct 03 2017 at 01:45):

right now, ONC is pushing us to move FHIR value sets to VSAC - happy to copy them up, but can never depend on something is user level blocked when the infrastructure doesn't operate at the user level

view this post on Zulip Joel Francis (Oct 06 2017 at 13:17):

Hi,

If an element is bound to a ValueSet, and during creation of an instance, if a code is picked from this ValuSet, can the display name be different than what is in the value set?

Example is I were to use this ValueSet https://www.hl7.org/fhir/valueset-practitioner-role.html and in particular the "doctor" code, but change the display to "Doctor of medicine" instead of "A qualified/registered medical practitioner" would this be within the rules. Is the display text computable? Also what does it mean for the Coding.userSelected element if this were true/false? Does it have any impact ?

view this post on Zulip Lloyd McKenzie (Oct 06 2017 at 17:13):

The display name should to be an official display name for the code from the value set. If it's not, the validator will spit out a warning. If the user saw something else, that should be capturd in CodeableConcept.text. User-selected differentiates which coding was originally chosen vs. which were added as tranlations

view this post on Zulip Yunwei Wang (Oct 06 2017 at 20:26):

PractitionerRole.code is a CodeableConcept so you can put "Doctor of medicine" as PractitionerRole.code.text.

view this post on Zulip Joel Francis (Oct 10 2017 at 12:59):

PractitionerRole.code is a CodeableConcept so you can put "Doctor of medicine" as PractitionerRole.code.text.

Thanks @Yunwei Wang , I realize that only CodeableConcepts have a text property and the elements in a ValueSet are of type Coding.

view this post on Zulip Eric Haas (Oct 10 2017 at 15:50):

The Specific FHIR Guidance on this is documented here: http://build.fhir.org/valueset.html#compositions

view this post on Zulip Lloyd McKenzie (Oct 10 2017 at 18:47):

Elements in a ValueSet are of type Coding, however data elements that are bound to ValueSets typically have a type of CodeableConcept - and that's where you'd want the text - where the code is used, not where the allowed sets of codes are defined.

view this post on Zulip shachar zilbershlag (Feb 05 2020 at 10:23):

Hi all,
There is something I don't quite understand about the implementation of code systems and value sets.
Let's say I have a list of 1,000,000 streets and another list of 50,000 cities.
Is the correct implementation here to create a code system to contain all street names and another to contain all city names?
If there are multiple streets with the same name in different cities, should these streets be "minimized" into a single concept in the streets code system?
Would the correct way to create a relationship from this street to the multiple cities be by using the concept's "property" element?
When a user chooses a city I need to present to him in the drop down only the streets of that specific city. Does this mean that in my database I have to create a value set per city linking to it's streets?

Thanks!

view this post on Zulip Grahame Grieve (Feb 05 2020 at 13:10):

generally, code systems are systems of concepts not of instances of concepts. So it's not really intended to have a code system of 10000000+ street names - the concept in any case wouldn't (usually) be the name of the street, but the street. But in that case, there is only one instance of any particular street, and so we don't really think of that as a code system.

early ISO work called this kind of item an 'appellation' - a concept of which there can only be one instantiation. Countries are a common code system that is an appellation. It's not uncommon to see code systems for cities too. If you want to make a code system for streets, then you need some of namespacing to make the working code for a street unique. e.g. city/street name. But in some cities I've been to, that's not unique because of working pecularities of streets due to history etc.

You'll note that (a) we don't think of addresses as codeable items and (b) we haven't tried to model address in any formal way - we expect that you'll use one of the many postal or geolocation standards for something like that

view this post on Zulip shachar zilbershlag (Feb 06 2020 at 09:58):

So if I have a list containing instances that are not of a resource for which FHIR has set a standard, am I correct in understanding that there is no FHIR standard regarding requests and responses of the items in this list?

view this post on Zulip Lloyd McKenzie (Feb 06 2020 at 10:01):

Standardizing postal database lookup and enforcement isn't something that falls within the scope of FHIR. That doesn't mean you couldn't use (or perhaps abuse) FHIR resources to come up with a workable solution, it just means that FHIR is unlikely to provide much guidance in that space.

view this post on Zulip Brian Postlethwaite (Feb 07 2020 at 23:08):

We've done the Australian towns as a lookup list for use in questionnaires.


Last updated: Apr 12 2022 at 19:14 UTC