Creating extensional terminology in Terminology Service


#1

I have a SNOMED CT subset, and three extensional fields: display term (english and french) and a sort weight. I am trying to make this terminology available to an EMR pick-list through a FHIR Terminology Service. The display terms would be shown in the pick-list field and the sort weight would be used to determine how the pick-list GUI orders the pick-list values.

I’m trying to understand what the standard FHIR approach to this problem would be?

I have only ever seen ValueSet expansions contain the four fields: system, abstract, code and display.

"expansion": {
    "timestamp": "2017-05-28T13:31:03-04:00",
    "total": 221,
    "contains": [
      {
        "system": "2.16.840.1.113883.6.96",
        "abstract": false,
        "code": "86080005",
        "display": "BAtx botulism antitoxin unspecified"
      } ...

Is it possible to extend those objects like so?

      {
        "system": "2.16.840.1.113883.6.96",
        "abstract": false,
        "code": "21911000087100",
        "enDisplay": "BAtx botulism antitoxin heptavalent unspecified",
        "frDisplay": "BAtx botulism antitoxin heptavalent unspecified",
        "sortWeight": 5
      },

Or perhaps there’s another resource type that is more appropriate to making lists of extensional content that are not the coded values themselves?

Thanks in advance for your help!


#2

Translations of the codes in a valueset can be added via the designation element, see the spec or an example I created [here]:frowning:http://chmed16af.emediplan.ch/CodeSystem-chmed16af-codesystem-risks-category.json.html).

 {
      "code" : "1",
      "display" : "Renal Insufficiency",
      "designation" : [
        {
          "language" : "de-CH",
          "value" : "Niereninsuffizienz"
        },
        {
          "language" : "fr-CH",
          "value" : "Insuffisance rénale"
        }
      ]
    },

concerning the sortWeight you can use maybe the conceptorder extension?


#3

the english and french displays are designations. Typically, you put one of them in the contains.display, and the other one in a designation:

   {
        "system": "2.16.840.1.113883.6.96",
        "abstract": false,
        "code": "21911000087100",
        "display": "BAtx botulism antitoxin heptavalent unspecified",
        "designation" : [{
            "language: "fr",
            "value" : "BAtx botulism antitoxin heptavalent unspecified",
       } ]
    }

Which to put in display depends on the stated language of the expansion (e.g. Resource.language) and that depends on the language specified in the request (http headers,explicit expansion parameter or expansion profile)

The sort weight would have to be an extension:

 {
   "extension" : [{
     "url" : "http://someextension/sortWeight",
     "valueInteger": 5
   }]
 }