<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="MaiaRuleBasedEvaluation" />
  <url value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaRuleBasedEvaluation" />
  <version value="1.0.0" />
  <name value="MaiaRuleBasedEvaluation" />
  <title value="Maia Rule Based Evaluation" />
  <status value="active" />
  <experimental value="false" />
  <date value="2025-04-30" />
  <publisher value="Tiplu GmbH" />
  <description value="Tiplu presumed diagnoses are generated and displayed based on a set of rules derived from medical guidelines and literature (state-of-the-art medicine). &#xA;&#xA;Customised presumptive diagnoses can be created and released to all MAIA users in the hospital by physicians trained by the manufacturer, known as Medical Administrators, using a rules editor built into MAIA. These function similarly to Tiplu presumed diagnoses, but additionally provide the option to include therapy and diagnostic information. Medical administrators can enable/disable these rules only for patients within the departments for which they have access rights.&#xA;&#xA;*German:*&#xA;Tiplu-Verdachtsdiagnosen werden auf der Grundlage eines von Leitlinien und Fachliteratur (State-of-the-Art Medizin) basierenden Regelwerkes generiert und angezeigt. &#xA;&#xA;Vom Hersteller geschulte Ärzte, so genannte Medical Administrators, können mithilfe eines in MAIA integrierten Regeleditors benutzerdefinierte Verdachtsdiagnosen erstellen und für alle MAIA-Benutzer im Krankenhaus freigeben. Diese funktionieren analog zu Tiplu-Verdachtsdiagnosen, bieten jedoch zusätzlich die Möglichkeit, Therapie- und Diagnostikinformationen zu hinterlegen.  Medizinische Administrator:innen können dabei entsprechende Hinweise nur für Patient:innen der Fachabteilungen aktivieren/deaktivieren, auf deren Patient:innen sie ein Zugriffsrecht haben." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="RiskAssessment" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/RiskAssessment" />
  <derivation value="constraint" />
  <differential>
    <element id="RiskAssessment.text">
      <path value="RiskAssessment.text" />
      <short value="human-readable narrative" />
      <comment value="HTML representation of this rule-based evaluation" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.text.status">
      <path value="RiskAssessment.text.status" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.text.div">
      <path value="RiskAssessment.text.div" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.extension">
      <path value="RiskAssessment.extension" />
      <min value="2" />
    </element>
    <element id="RiskAssessment.extension:ReviewStatus">
      <path value="RiskAssessment.extension" />
      <sliceName value="ReviewStatus" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaRuleBasedEvaluationReviewStatus" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.extension:ReviewStatus.value[x]">
      <path value="RiskAssessment.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.extension:DefinitionReference">
      <path value="RiskAssessment.extension" />
      <sliceName value="DefinitionReference" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaRiskAssessmentDefinitionReference" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.extension:DefinitionReference.value[x]">
      <path value="RiskAssessment.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.modifierExtension:HiddenReason">
      <path value="RiskAssessment.modifierExtension" />
      <sliceName value="HiddenReason" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaHiddenReason" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.modifierExtension:HiddenReason.value[x]">
      <path value="RiskAssessment.modifierExtension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.modifierExtension:HiddenReason.value[x].coding:Reason">
      <path value="RiskAssessment.modifierExtension.value[x].coding" />
      <sliceName value="Reason" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.modifierExtension:HiddenReason.value[x].coding:Reason.system">
      <path value="RiskAssessment.modifierExtension.value[x].coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.modifierExtension:HiddenReason.value[x].coding:Reason.code">
      <path value="RiskAssessment.modifierExtension.value[x].coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.modifierExtension:HiddenReason.value[x].coding:Reason.display">
      <path value="RiskAssessment.modifierExtension.value[x].coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.modifierExtension:HiddenReason.value[x].text">
      <path value="RiskAssessment.modifierExtension.value[x].text" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.parent">
      <path value="RiskAssessment.parent" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaRuleBasedEvaluation" />
      </type>
    </element>
    <element id="RiskAssessment.status">
      <path value="RiskAssessment.status" />
      <short value="Status of the rule-based evaluation" />
      <comment value="Status 'preliminary' is default set for rule-based evaluation." />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.method">
      <path value="RiskAssessment.method" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.method.coding">
      <path value="RiskAssessment.method.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.method.coding:AssessmentMethod">
      <path value="RiskAssessment.method.coding" />
      <sliceName value="AssessmentMethod" />
      <short value="Assessment method used for this RiskAssessment" />
      <min value="1" />
      <max value="1" />
      <patternCoding>
        <system value="https://tiplu.de/fhir/maia/CodeSystem/MaiaAssessmentMethod" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://tiplu.de/fhir/maia/ValueSet/MaiaAssessmentMethodVS" />
      </binding>
    </element>
    <element id="RiskAssessment.method.coding:AssessmentMethod.system">
      <path value="RiskAssessment.method.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.method.coding:AssessmentMethod.code">
      <path value="RiskAssessment.method.coding.code" />
      <min value="1" />
      <patternCode value="TRBE" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.method.coding:AssessmentMethod.display">
      <path value="RiskAssessment.method.coding.display" />
      <min value="1" />
      <patternString value="Tiplu rule-based evaluation" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.code">
      <path value="RiskAssessment.code" />
      <definition value="Code of the assessed rule-based evaluation" />
      <min value="1" />
      <constraint>
        <key value="MaiaTrbeCodeOrText" />
        <severity value="error" />
        <human value="A code from MaiaPresumedDiagnosisAssessmentType and a free-text display (code.text) must not be used at the same time." />
        <expression value="coding.where(system = 'https://tiplu.de/fhir/maia/CodeSystem/MaiaPresumedDiagnosisAssessmentType').exists() xor text.exists()" />
        <source value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaRuleBasedEvaluation" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.code.coding">
      <path value="RiskAssessment.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.code.coding:AssessmentType">
      <path value="RiskAssessment.code.coding" />
      <sliceName value="AssessmentType" />
      <short value="Coding of the Tiplu presumed diagnosis" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://tiplu.de/fhir/maia/ValueSet/MaiaPresumedDiagnosisAssessmentTypeVS" />
      </binding>
    </element>
    <element id="RiskAssessment.code.coding:AssessmentType.system">
      <path value="RiskAssessment.code.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.code.coding:AssessmentType.code">
      <path value="RiskAssessment.code.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.code.coding:AssessmentType.display">
      <path value="RiskAssessment.code.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.code.text">
      <path value="RiskAssessment.code.text" />
      <short value="Name of the custom presumed diagnosis" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.subject">
      <path value="RiskAssessment.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaPatient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.subject.identifier">
      <path value="RiskAssessment.subject.identifier" />
      <short value="Patient ID of the referenced patient" />
      <comment value="The MAIA FHIR endpoints don't have the possibility to get the patient resource. For this, the resource identifier is mandatory." />
      <min value="1" />
      <type>
        <code value="Identifier" />
        <profile value="http://fhir.de/StructureDefinition/identifier-pid" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.subject.identifier.type">
      <path value="RiskAssessment.subject.identifier.type" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.subject.identifier.system">
      <path value="RiskAssessment.subject.identifier.system" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.subject.identifier.value">
      <path value="RiskAssessment.subject.identifier.value" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.encounter">
      <path value="RiskAssessment.encounter" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaKontaktGesundheitseinrichtung" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.encounter.extension">
      <path value="RiskAssessment.encounter.extension" />
      <min value="1" />
    </element>
    <element id="RiskAssessment.encounter.extension:AccountIdentifier">
      <path value="RiskAssessment.encounter.extension" />
      <sliceName value="AccountIdentifier" />
      <short value="Account Identifier (German: Fallnummer/Abrechnungsnummer) of the referenced account" />
      <comment value="The MAIA FHIR endpoints don't have the possibility to get the account or encounter resource. For this, the resource identifier is mandatory." />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://tiplu.de/fhir/maia/StructureDefinition/MaiaAccountIdentifier" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.encounter.extension:AccountIdentifier.value[x]">
      <path value="RiskAssessment.encounter.extension.value[x]" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.encounter.extension:AccountIdentifier.value[x].type">
      <path value="RiskAssessment.encounter.extension.value[x].type" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.encounter.extension:AccountIdentifier.value[x].system">
      <path value="RiskAssessment.encounter.extension.value[x].system" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.encounter.extension:AccountIdentifier.value[x].value">
      <path value="RiskAssessment.encounter.extension.value[x].value" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.occurrence[x]">
      <path value="RiskAssessment.occurrence[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="RiskAssessment.occurrence[x]:occurrenceDateTime">
      <path value="RiskAssessment.occurrence[x]" />
      <sliceName value="occurrenceDateTime" />
      <short value="Last calculation of MAIA" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.performer">
      <path value="RiskAssessment.performer" />
      <comment value="A Device example with valid MAIA information can be found in the Simplifier project." />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Device" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction">
      <path value="RiskAssessment.prediction" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.outcome">
      <path value="RiskAssessment.prediction.outcome" />
      <comment value="Not Must-Support and not expected to be populated. Rule-based evaluations do not predict a future clinical outcome; they assess whether a defined diagnostic pattern is currently met. The result is fully expressed through qualitativeRisk (severity level) and code (the assessed rule). The outcome element is therefore not applicable in this context." />
    </element>
    <element id="RiskAssessment.prediction.qualitativeRisk">
      <path value="RiskAssessment.prediction.qualitativeRisk" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.qualitativeRisk.coding">
      <path value="RiskAssessment.prediction.qualitativeRisk.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.qualitativeRisk.coding:QualitativeRisk">
      <path value="RiskAssessment.prediction.qualitativeRisk.coding" />
      <sliceName value="QualitativeRisk" />
      <min value="1" />
      <max value="1" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/risk-probability" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/ValueSet/risk-probability" />
      </binding>
    </element>
    <element id="RiskAssessment.prediction.qualitativeRisk.coding:QualitativeRisk.system">
      <path value="RiskAssessment.prediction.qualitativeRisk.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.qualitativeRisk.coding:QualitativeRisk.code">
      <path value="RiskAssessment.prediction.qualitativeRisk.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.qualitativeRisk.coding:QualitativeRisk.display">
      <path value="RiskAssessment.prediction.qualitativeRisk.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.when[x]">
      <path value="RiskAssessment.prediction.when[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="RiskAssessment.prediction.when[x]:whenPeriod">
      <path value="RiskAssessment.prediction.when[x]" />
      <sliceName value="whenPeriod" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.when[x]:whenPeriod.start">
      <path value="RiskAssessment.prediction.when[x].start" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.when[x]:whenPeriod.end">
      <path value="RiskAssessment.prediction.when[x].end" />
      <mustSupport value="true" />
    </element>
    <element id="RiskAssessment.prediction.rationale">
      <path value="RiskAssessment.prediction.rationale" />
      <short value="Reasoning" />
      <comment value="Provides the patient-specific relevant data points for the result provided by the rule-based evaluation from the patient record if possible." />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>