hl7-fhirdstu2-fhirhapi-fhir

FHIR complex extension


How can I add an extension that has multiple fields ? For example if I have a extension related to visit motives that is structured like this in my application :

"visit_motive":
    {
          "id": "1",
          "label": "Visit motive name",
          "color": "#000000",
          "duration": 5
    }

I have something like this for the moment :

"extension": [
    {
      "url": "https://api.test.com/fhir/StructureDefinition/schedule-visit_motives",
      "valueIdentifier": "visit_motive1_id",
      "valueString" : "visit motive name",
      "valueString" : "#000",
      "valueInteger" : 5,
    },
    {
      "url": "https://api.test.com/fhir/StructureDefinition/schedule-visit_motives",
      "valueIdentifier": "visit_motive2_id",
      "valueString" : "visit motive name 2",
      "valueString" : "#111",
      "valueInteger" : 10,
    }
]

But I'm pretty sure it is not correct since I can't name the fields since I have to precise value[x] each time.

How can I do it ?


Solution

  • You would do that with a complex extension, which is basically an extension containing extensions. You can see more information about extensions in the spec. Scroll down a bit for the complex one. Or view an example of the structure of a complex extension here.

    The use of your extension would look something like this:

    "extension" : [{
        "url" : "https://api.test.com/fhir/StructureDefinition/schedule-visit_motives",
        "extension" : [{
            "url" : "id",
            "valueIdentifier": "visit_motive1_id"
        }, {
            "url" : "label", 
            "valueString" : "visit motive name"
        }, {
            "url" : "color",
            "valueString" : "#000"
        }, {
            "url" : "duration",
            "valueInteger" : 5,
        }]
    }]