{
  "resourceType": "StructureDefinition",
  "meta": {
    "versionId": "2",
    "lastUpdated": "2020-03-06T11:04:57.142+00:00"
  },
  "url": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/QuestionnaireResponse-COVID19",
  "name": "QuestionnaireResponse-COVID19",
  "status": "active",
  "experimental": false,
  "fhirVersion": "3.0.2",
  "kind": "resource",
  "abstract": false,
  "type": "QuestionnaireResponse",
  "baseDefinition": "http://apiframework.dedalus.eu/fhir/StructureDefinition/QuestionnaireResponse",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "QuestionnaireResponse.contained",
        "path": "QuestionnaireResponse.contained",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "QuestionnaireResponse.contained:relatedPerson",
        "path": "QuestionnaireResponse.contained",
        "sliceName": "relatedPerson",
        "max": "1",
        "type": [
          {
            "code": "RelatedPerson",
            "profile": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/RelatedPerson-COVID19"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.contained:questionnaire",
        "path": "QuestionnaireResponse.contained",
        "sliceName": "questionnaire",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Questionnaire",
            "profile": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/Questionnaire-COVID19"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.contained:questionnaire.meta.tag",
        "path": "QuestionnaireResponse.contained.meta.tag",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "QuestionnaireResponse.status",
        "path": "QuestionnaireResponse.status",
        "fixedCode": "completed"
      },
      {
        "id": "QuestionnaireResponse.subject",
        "path": "QuestionnaireResponse.subject",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/Patient-COVID19",
            "aggregation": [
              "referenced"
            ]
          }
        ],
        "mustSupport": true
      },
      {
        "id": "QuestionnaireResponse.context",
        "path": "QuestionnaireResponse.context",
        "type": [
          {
            "code": "Reference",
            "targetProfile": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/Encounter-COVID19"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.author",
        "path": "QuestionnaireResponse.author",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/Patient-COVID19"
          },
          {
            "code": "Reference",
            "targetProfile": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/RelatedPerson-COVID19"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.source",
        "path": "QuestionnaireResponse.source",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": "http://d4solutions.dedalus.eu/fhir/StructureDefinition/Patient-COVID19"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item",
        "path": "QuestionnaireResponse.item",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "linkId"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "QuestionnaireResponse.item:riskLocation",
        "path": "QuestionnaireResponse.item",
        "sliceName": "riskLocation",
        "min": 1,
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocation.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "riskLocation"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocation.answer",
        "path": "QuestionnaireResponse.item.answer",
        "definition": "element may be: \r\n - present with valueBollean = TRUE or FALSE\r\n - missing when unkown",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocation.answer.value[x]:valueBoolean",
        "path": "QuestionnaireResponse.item.answer.valueBoolean",
        "sliceName": "valueBoolean",
        "definition": "TRUE, FALSE or missing when unkown",
        "type": [
          {
            "code": "boolean"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationPlace",
        "path": "QuestionnaireResponse.item",
        "sliceName": "riskLocationPlace",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationPlace.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "riskLocationPlace"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationPlace.answer",
        "path": "QuestionnaireResponse.item.answer",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationPlace.answer.value[x]:valueCoding",
        "path": "QuestionnaireResponse.item.answer.valueCoding",
        "sliceName": "valueCoding",
        "min": 1,
        "type": [
          {
            "code": "Coding"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationPlace.answer.value[x]:valueCoding.system",
        "path": "QuestionnaireResponse.item.answer.valueCoding.system",
        "mustSupport": true
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationPlace.answer.value[x]:valueCoding.code",
        "path": "QuestionnaireResponse.item.answer.valueCoding.code",
        "mustSupport": true
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationPlace.answer.value[x]:valueCoding.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "QuestionnaireResponse.item.answer.valueCoding.display",
        "mustSupport": true
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationDepartureDate",
        "path": "QuestionnaireResponse.item",
        "sliceName": "riskLocationDepartureDate",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationDepartureDate.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "riskLocationDepartureDate"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationDepartureDate.answer",
        "path": "QuestionnaireResponse.item.answer",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:riskLocationDepartureDate.answer.value[x]:valueDate",
        "path": "QuestionnaireResponse.item.answer.valueDate",
        "sliceName": "valueDate",
        "min": 1,
        "type": [
          {
            "code": "date"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item:exposureToAscertainedCases",
        "path": "QuestionnaireResponse.item",
        "sliceName": "exposureToAscertainedCases",
        "min": 1,
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:exposureToAscertainedCases.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "exposureToAscertainedCases"
      },
      {
        "id": "QuestionnaireResponse.item:exposureToAscertainedCases.answer",
        "path": "QuestionnaireResponse.item.answer",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:exposureToAscertainedCases.answer.value[x]:valueBoolean",
        "path": "QuestionnaireResponse.item.answer.valueBoolean",
        "sliceName": "valueBoolean",
        "min": 1,
        "type": [
          {
            "code": "boolean"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item:exposureToSuspiciousCases",
        "path": "QuestionnaireResponse.item",
        "sliceName": "exposureToSuspiciousCases",
        "min": 1,
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:exposureToSuspiciousCases.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "exposureToSuspiciousCases"
      },
      {
        "id": "QuestionnaireResponse.item:exposureToSuspiciousCases.answer",
        "path": "QuestionnaireResponse.item.answer",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:exposureToSuspiciousCases.answer.value[x]:valueBoolean",
        "path": "QuestionnaireResponse.item.answer.valueBoolean",
        "sliceName": "valueBoolean",
        "min": 1,
        "type": [
          {
            "code": "boolean"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item:contactReturnedPersons",
        "path": "QuestionnaireResponse.item",
        "sliceName": "contactReturnedPersons",
        "min": 1,
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:contactReturnedPersons.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "contactReturnedPersons"
      },
      {
        "id": "QuestionnaireResponse.item:contactReturnedPersons.answer",
        "path": "QuestionnaireResponse.item.answer",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:contactReturnedPersons.answer.value[x]:valueBoolean",
        "path": "QuestionnaireResponse.item.answer.valueBoolean",
        "sliceName": "valueBoolean",
        "min": 1,
        "type": [
          {
            "code": "boolean"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item:contactFamilyMembersSuspects",
        "path": "QuestionnaireResponse.item",
        "sliceName": "contactFamilyMembersSuspects",
        "min": 1,
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:contactFamilyMembersSuspects.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "contactFamilyMembersSuspects"
      },
      {
        "id": "QuestionnaireResponse.item:contactFamilyMembersSuspects.answer",
        "path": "QuestionnaireResponse.item.answer",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:contactFamilyMembersSuspects.answer.value[x]:valueBoolean",
        "path": "QuestionnaireResponse.item.answer.valueBoolean",
        "sliceName": "valueBoolean",
        "min": 1,
        "type": [
          {
            "code": "boolean"
          }
        ]
      },
      {
        "id": "QuestionnaireResponse.item:numberOfPersonsInFamily",
        "path": "QuestionnaireResponse.item",
        "sliceName": "numberOfPersonsInFamily",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:numberOfPersonsInFamily.linkId",
        "path": "QuestionnaireResponse.item.linkId",
        "fixedString": "numberOfPersonsInFamily"
      },
      {
        "id": "QuestionnaireResponse.item:numberOfPersonsInFamily.answer",
        "path": "QuestionnaireResponse.item.answer",
        "max": "1"
      },
      {
        "id": "QuestionnaireResponse.item:numberOfPersonsInFamily.answer.value[x]:valueInteger",
        "path": "QuestionnaireResponse.item.answer.valueInteger",
        "sliceName": "valueInteger",
        "min": 1,
        "type": [
          {
            "code": "integer"
          }
        ]
      }
    ]
  }
}