{
  "resourceType": "StructureDefinition",
  "id": "SHCQuestionnaire",
  "url": "https://electronichealth.se/fhir/shc/StructureDefinition/SHCQuestionnaire",
  "version": "0.1",
  "name": "SHCQuestionnaire",
  "status": "draft",
  "description": "This profile contains information about a health certificate form with defined fields and questions intended to be filled in with information about the certificate subject.",
  "fhirVersion": "5.0.0",
  "mapping": [
    {
      "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
      "uri": "SHCIntygsformularLogical"
    }
  ],
  "kind": "resource",
  "abstract": false,
  "type": "Questionnaire",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Questionnaire",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Questionnaire.url",
        "path": "Questionnaire.url",
        "short": "Unique URI identifying the questionnaire",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "uri"
          }
        ]
      },
      {
        "id": "Questionnaire.identifier",
        "path": "Questionnaire.identifier",
        "short": "The identifier assigned by the issuing body",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "intygsformularid"
          }
        ]
      },
      {
        "id": "Questionnaire.identifier.system",
        "path": "Questionnaire.identifier.system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.identifier.value",
        "path": "Questionnaire.identifier.value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.version",
        "path": "Questionnaire.version",
        "short": "Version identifier set by the form’s issuer",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "version"
          }
        ]
      },
      {
        "id": "Questionnaire.title",
        "path": "Questionnaire.title",
        "short": "Short, descriptive, user-friendly title for the form",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "intygsformularnamn"
          }
        ]
      },
      {
        "id": "Questionnaire.status",
        "path": "Questionnaire.status",
        "short": "The status of the form (e.g., draft, active)",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "intygsformularstatus"
          }
        ]
      },
      {
        "id": "Questionnaire.publisher",
        "path": "Questionnaire.publisher",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.description",
        "path": "Questionnaire.description",
        "short": "Simple, user-friendly description of the form",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "intygsbeskrivning"
          }
        ]
      },
      {
        "id": "Questionnaire.useContext",
        "path": "Questionnaire.useContext",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code.code"
            }
          ],
          "description": "Slice on useContext based on the code value",
          "ordered": false,
          "rules": "open"
        },
        "min": 4,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:category",
        "path": "Questionnaire.useContext",
        "sliceName": "category",
        "short": "Code for the grouping of questionnaires (e.g., Legal, Care, Health, Sickness)",
        "min": 1,
        "max": "1",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "intygskategori"
          }
        ]
      },
      {
        "id": "Questionnaire.useContext:category.code",
        "path": "Questionnaire.useContext.code",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:category.code.system",
        "path": "Questionnaire.useContext.code.system",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:category.code.code",
        "path": "Questionnaire.useContext.code.code",
        "min": 1,
        "fixedCode": "topic",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:category.value[x]",
        "path": "Questionnaire.useContext.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        }
      },
      {
        "id": "Questionnaire.useContext:category.value[x]:valueCodeableConcept",
        "path": "Questionnaire.useContext.value[x]",
        "sliceName": "valueCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:category.value[x]:valueCodeableConcept.coding",
        "path": "Questionnaire.useContext.value[x].coding",
        "max": "0",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:category.value[x]:valueCodeableConcept.coding.system",
        "path": "Questionnaire.useContext.value[x].coding.system",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:category.value[x]:valueCodeableConcept.coding.code",
        "path": "Questionnaire.useContext.value[x].coding.code",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:category.value[x]:valueCodeableConcept.text",
        "path": "Questionnaire.useContext.value[x].text",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:purpose",
        "path": "Questionnaire.useContext",
        "sliceName": "purpose",
        "short": "Text description of the purpose for which this certificate is issued",
        "min": 1,
        "max": "1",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "intygsandamal"
          }
        ]
      },
      {
        "id": "Questionnaire.useContext:purpose.code",
        "path": "Questionnaire.useContext.code",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:purpose.code.system",
        "path": "Questionnaire.useContext.code.system",
        "fixedUri": "https://electronichealth.se/shc/CodeSystem/questionnaire-usage-context-type",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:purpose.code.code",
        "path": "Questionnaire.useContext.code.code",
        "min": 1,
        "fixedCode": "purpose",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:purpose.value[x]",
        "path": "Questionnaire.useContext.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        }
      },
      {
        "id": "Questionnaire.useContext:purpose.value[x]:valueCodeableConcept",
        "path": "Questionnaire.useContext.value[x]",
        "sliceName": "valueCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:purpose.value[x]:valueCodeableConcept.coding",
        "path": "Questionnaire.useContext.value[x].coding",
        "max": "0"
      },
      {
        "id": "Questionnaire.useContext:purpose.value[x]:valueCodeableConcept.text",
        "path": "Questionnaire.useContext.value[x].text",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:legislation",
        "path": "Questionnaire.useContext",
        "sliceName": "legislation",
        "short": "The legislation on which the questionnaire is based",
        "min": 1,
        "max": "1",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "laghanvisning"
          }
        ]
      },
      {
        "id": "Questionnaire.useContext:legislation.code",
        "path": "Questionnaire.useContext.code",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:legislation.code.system",
        "path": "Questionnaire.useContext.code.system",
        "fixedUri": "https://electronichealth.se/shc/CodeSystem/questionnaire-usage-context-type",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:legislation.code.code",
        "path": "Questionnaire.useContext.code.code",
        "min": 1,
        "fixedCode": "legislation",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:legislation.value[x]",
        "path": "Questionnaire.useContext.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "ordered": false,
          "rules": "open"
        }
      },
      {
        "id": "Questionnaire.useContext:legislation.value[x]:valueCodeableConcept",
        "path": "Questionnaire.useContext.value[x]",
        "sliceName": "valueCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:legislation.value[x]:valueCodeableConcept.coding",
        "path": "Questionnaire.useContext.value[x].coding",
        "max": "0",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:legislation.value[x]:valueCodeableConcept.coding.system",
        "path": "Questionnaire.useContext.value[x].coding.system",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:legislation.value[x]:valueCodeableConcept.coding.code",
        "path": "Questionnaire.useContext.value[x].coding.code",
        "mustSupport": false
      },
      {
        "id": "Questionnaire.useContext:legislation.value[x]:valueCodeableConcept.text",
        "path": "Questionnaire.useContext.value[x].text",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:subjectType",
        "path": "Questionnaire.useContext",
        "sliceName": "subjectType",
        "min": 1,
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.useContext:subjectType.code.system",
        "path": "Questionnaire.useContext.code.system",
        "min": 1,
        "fixedUri": "https://electronichealth.se/shc/CodeSystem/questionnaire-usage-context-type"
      },
      {
        "id": "Questionnaire.useContext:subjectType.code.code",
        "path": "Questionnaire.useContext.code.code",
        "min": 1,
        "fixedCode": "subjectType"
      },
      {
        "id": "Questionnaire.useContext:subjectType.value[x]",
        "path": "Questionnaire.useContext.value[x]",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ]
      },
      {
        "id": "Questionnaire.useContext:subjectType.value[x].coding",
        "path": "Questionnaire.useContext.value[x].coding",
        "min": 1,
        "max": "1",
        "binding": {
          "strength": "required",
          "valueSet": "http://electronichealth.se/fhir/shc/ValueSet/shc-extended-subject-types"
        }
      },
      {
        "id": "Questionnaire.useContext:subjectType.value[x].coding.code",
        "path": "Questionnaire.useContext.value[x].coding.code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.approvalDate",
        "path": "Questionnaire.approvalDate",
        "short": "The time when the form was published",
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "publiceringstidpunkt"
          }
        ]
      },
      {
        "id": "Questionnaire.effectivePeriod",
        "path": "Questionnaire.effectivePeriod",
        "short": "The period during which the form is valid",
        "min": 1,
        "mustSupport": true,
        "mapping": [
          {
            "identity": "SHCQuestionnaireToSHCIntygsformularLogical",
            "map": "giltighetsperiod"
          }
        ]
      },
      {
        "id": "Questionnaire.effectivePeriod.start",
        "path": "Questionnaire.effectivePeriod.start",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.effectivePeriod.end",
        "path": "Questionnaire.effectivePeriod.end",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item",
        "path": "Questionnaire.item",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.extension:itemControl",
        "path": "Questionnaire.item.extension",
        "sliceName": "itemControl",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"
            ]
          }
        ],
        "mustSupport": true,
        "isModifier": false
      },
      {
        "id": "Questionnaire.item.linkId",
        "path": "Questionnaire.item.linkId",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.definition",
        "path": "Questionnaire.item.definition",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.prefix",
        "path": "Questionnaire.item.prefix",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.text",
        "path": "Questionnaire.item.text",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.text.extension:markdown",
        "path": "Questionnaire.item.text.extension",
        "sliceName": "markdown",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://hl7.org/fhir/StructureDefinition/rendering-markdown"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "Questionnaire.item.type",
        "path": "Questionnaire.item.type",
        "definition": "Code for the item type in the health certificate form. For section items type is 'group', For information texts or sub label items the type is 'display' and for question items the type is 'coding', 'boolean', 'decimal', 'integer', 'date', 'dateTime', 'time', 'string', 'text', 'url' or 'quantity'",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "https://electronichealth.se/fhir/shc/ValueSet/shc-allowed-question-types"
        }
      },
      {
        "id": "Questionnaire.item.enableWhen",
        "path": "Questionnaire.item.enableWhen",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.enableWhen.question",
        "path": "Questionnaire.item.enableWhen.question",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.enableWhen.operator",
        "path": "Questionnaire.item.enableWhen.operator",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.enableWhen.answer[x]",
        "path": "Questionnaire.item.enableWhen.answer[x]",
        "type": [
          {
            "code": "boolean"
          },
          {
            "code": "decimal"
          },
          {
            "code": "integer"
          },
          {
            "code": "date"
          },
          {
            "code": "dateTime"
          },
          {
            "code": "time"
          },
          {
            "code": "string"
          },
          {
            "code": "Coding"
          },
          {
            "code": "Quantity"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.required",
        "path": "Questionnaire.item.required",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.answerValueSet",
        "path": "Questionnaire.item.answerValueSet",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.answerOption",
        "path": "Questionnaire.item.answerOption",
        "mustSupport": true
      },
      {
        "id": "Questionnaire.item.answerOption.value[x]",
        "path": "Questionnaire.item.answerOption.value[x]",
        "type": [
          {
            "code": "integer"
          },
          {
            "code": "date"
          },
          {
            "code": "time"
          },
          {
            "code": "string"
          },
          {
            "code": "Coding"
          }
        ],
        "mustSupport": true
      }
    ]
  }
}