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