{
  "resourceType": "StructureDefinition",
  "id": "Profile-HiGHmed-InfectionControl-MolekulareDiagnostik",
  "url": "http://highmed.org/fhir/StructureDefinition/ic/MolekulareDiagnostik",
  "version": "1.0.0",
  "name": "Profile_HiGHmed_InfectionControl_MolekulareDiagnostik",
  "title": "HiGHmed - Infection Control - Molekulare Diagnostik",
  "status": "active",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "https://www.medizininformatik-initiative.de/fhir/core/modul-labor/StructureDefinition/ObservationLab",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Observation.category.coding",
        "path": "Observation.category.coding",
        "min": 3
      },
      {
        "id": "Observation.category.coding:loinc-microbiology-studies",
        "path": "Observation.category.coding",
        "sliceName": "loinc-microbiology-studies",
        "min": 1,
        "max": "1",
        "patternCoding": {
          "system": "http://loinc.org",
          "code": "18725-2"
        }
      },
      {
        "id": "Observation.code.coding",
        "path": "Observation.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "pattern",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:molekularediagnostik-allgemein",
        "path": "Observation.code.coding",
        "sliceName": "molekularediagnostik-allgemein",
        "min": 1,
        "max": "1",
        "patternCoding": {
          "system": "http://loinc.org",
          "code": "92253-4"
        },
        "mustSupport": true
      },
      {
        "id": "Observation.code.coding:molekulare-nachweistests-spezialisierung-loinc",
        "path": "Observation.code.coding",
        "sliceName": "molekulare-nachweistests-spezialisierung-loinc",
        "max": "1",
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://highmed.org/ValueSet/ic/molekulare-nachweistests-spezialisierung-loinc"
        }
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "type": [
          {
            "code": "CodeableConcept"
          }
        ]
      },
      {
        "id": "Observation.value[x]:valueQuantity",
        "path": "Observation.value[x]",
        "sliceName": "valueQuantity",
        "max": "0"
      },
      {
        "id": "Observation.value[x]:valueCodeableConcept",
        "path": "Observation.value[x]",
        "sliceName": "valueCodeableConcept",
        "binding": {
          "strength": "required",
          "valueSet": "http://highmed.org/fhir/ValueSet/ic/positive-weaklypositive-negative-inconclusive-snomed"
        }
      },
      {
        "id": "Observation.specimen",
        "path": "Observation.specimen",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://highmed.org/fhir/StructureDefinition/ic/Specimen",
              "http://highmed.org/fhir/StructureDefinition/ic/Specimen2"
            ]
          }
        ]
      },
      {
        "id": "Observation.component",
        "path": "Observation.component",
        "slicing": {
          "discriminator": [
            {
              "type": "pattern",
              "path": "code"
            }
          ],
          "rules": "open"
        },
        "max": "3",
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisBakterien",
        "path": "Observation.component",
        "sliceName": "NachweisBakterien",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisBakterien.code",
        "path": "Observation.component.code",
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "118146008"
            }
          ]
        },
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisBakterien.value[x]",
        "path": "Observation.component.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisBakterien.value[x]:valueCodeableConcept",
        "path": "Observation.component.value[x]",
        "sliceName": "valueCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://highmed.org/fhir/ValueSet/ic/mikrobiologische-erreger-bakterien-snomedct-explizit"
        }
      },
      {
        "id": "Observation.component:NachweisPilze",
        "path": "Observation.component",
        "sliceName": "NachweisPilze",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisPilze.code",
        "path": "Observation.component.code",
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "118148009"
            }
          ]
        },
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisPilze.value[x]",
        "path": "Observation.component.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisPilze.value[x]:valueCodeableConcept",
        "path": "Observation.component.value[x]",
        "sliceName": "valueCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://highmed.org/fhir/ValueSet/ic/mikrobiologische-erreger-pilze-snomedct-explizit"
        }
      },
      {
        "id": "Observation.component:NachweisVirus",
        "path": "Observation.component",
        "sliceName": "NachweisVirus",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisVirus.code",
        "path": "Observation.component.code",
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "118147004"
            }
          ]
        },
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisVirus.value[x]",
        "path": "Observation.component.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.component:NachweisVirus.value[x]:valueCodeableConcept",
        "path": "Observation.component.value[x]",
        "sliceName": "valueCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://highmed.org/fhir/ValueSet/ic/mikrobiologische-viren-snomedct-explizit"
        }
      },
      {
        "id": "Observation.component:NucleicAcidAssay",
        "path": "Observation.component",
        "sliceName": "NucleicAcidAssay",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Observation.component:NucleicAcidAssay.code",
        "path": "Observation.component.code",
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "398545005"
            }
          ]
        },
        "mustSupport": true
      },
      {
        "id": "Observation.component:NucleicAcidAssay.value[x]",
        "path": "Observation.component.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "type": [
          {
            "code": "Quantity"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.component:NucleicAcidAssay.value[x]:valueQuantity",
        "path": "Observation.component.value[x]",
        "sliceName": "valueQuantity",
        "min": 1,
        "type": [
          {
            "code": "Quantity"
          }
        ],
        "mustSupport": true,
        "binding": {
          "strength": "required",
          "valueSet": "http://highmed.org/fhir/ValueSet/ic/NucleicAcidAssayEinheit"
        }
      },
      {
        "id": "Observation.component:NucleicAcidAssay.value[x]:valueQuantity.value",
        "path": "Observation.component.value[x].value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.component:NucleicAcidAssay.value[x]:valueQuantity.system",
        "path": "Observation.component.value[x].system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.component:NucleicAcidAssay.value[x]:valueQuantity.code",
        "path": "Observation.component.value[x].code",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.component:PCR-CycleThreashold",
        "path": "Observation.component",
        "sliceName": "PCR-CycleThreashold",
        "max": "1",
        "mustSupport": true
      },
      {
        "id": "Observation.component:PCR-CycleThreashold.code",
        "path": "Observation.component.code",
        "patternCodeableConcept": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "9718006"
            }
          ]
        },
        "mustSupport": true
      },
      {
        "id": "Observation.component:PCR-CycleThreashold.value[x]",
        "path": "Observation.component.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "type": [
          {
            "code": "Quantity"
          }
        ],
        "mustSupport": true
      },
      {
        "id": "Observation.component:PCR-CycleThreashold.value[x]:valueQuantity",
        "path": "Observation.component.value[x]",
        "sliceName": "valueQuantity",
        "min": 1,
        "type": [
          {
            "code": "Quantity"
          }
        ],
        "patternQuantity": {
          "system": "http://unitsofmeasure.org",
          "code": "{Ct_value}"
        },
        "mustSupport": true
      },
      {
        "id": "Observation.component:PCR-CycleThreashold.value[x]:valueQuantity.value",
        "path": "Observation.component.value[x].value",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.component:PCR-CycleThreashold.value[x]:valueQuantity.system",
        "path": "Observation.component.value[x].system",
        "min": 1,
        "mustSupport": true
      },
      {
        "id": "Observation.component:PCR-CycleThreashold.value[x]:valueQuantity.code",
        "path": "Observation.component.value[x].code",
        "min": 1,
        "mustSupport": true
      }
    ]
  }
}