Moderne Patient:innenabrechnung und Datenkommunikation on FHIR (MOPED)
0.1.0 - ci-build

Moderne Patient:innenabrechnung und Datenkommunikation on FHIR (MOPED) - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: MOPED Patient $entlassen (POC) - XML Representation

Draft as of 2025-02-26

Raw xml | Download


<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="MOPED.Patient.Entlassen"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: OperationDefinition MOPED.Patient.Entlassen</b></p><a name="MOPED.Patient.Entlassen"> </a><a name="hcMOPED.Patient.Entlassen"> </a><a name="MOPED.Patient.Entlassen-en-US"> </a><p>URL: [base]/Encounter/$entlassen</p><h3>Parameters</h3><table class="grid"><tr><td><b>Use</b></td><td><b>Name</b></td><td><b>Scope</b></td><td><b>Cardinality</b></td><td><b>Type</b></td><td><b>Binding</b></td><td><b>Documentation</b></td></tr><tr><td>IN</td><td>aufnahmezahl</td><td/><td>1..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#Identifier">Identifier</a></td><td/><td><div><p>Der <em>aufnahmezahl</em> Parameter beinhaltete den eindeutigen Identifizierer für den relevanten Fall.</p>
</div></td></tr><tr><td>IN</td><td>zeitpunkt</td><td/><td>1..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#dateTime">dateTime</a></td><td/><td><div><p>Der <em>zeitpunkt</em> Parameter definiert zu welchem Zeitpunkt die Beurlaubung startet.</p>
</div></td></tr><tr><td>IN</td><td>entlassungsart</td><td/><td>1..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#code">code</a></td><td><a href="ValueSet-Entlassungsart.html">Entlassungsart des Patienten</a> (Required)</td><td><div><p>Der <em>entlassungsart</em> Parameter definiert die Entlassungsart des Patienten.</p>
</div></td></tr><tr><td>IN</td><td>tageOhneKostenbeitrag</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#unsignedInt">unsignedInt</a></td><td/><td><div><p>Der <em>tageOhneKostenbeitrag</em> Parameter definiert zu für wie viele Tage kein Kostenbeitrag eingehoben wurde.</p>
</div></td></tr><tr><td>IN</td><td>abgangsart</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#code">code</a></td><td><a href="ValueSet-Abgangsart.html">Abgangsart des Patienten</a> (Required)</td><td><div><p>Der <em>abgangsart</em> Parameter definiert die Abgangsart des Patienten vom letzten offenen MopedTransferEncounter.</p>
</div></td></tr><tr><td>IN</td><td>freigeben</td><td/><td>1..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#boolean">boolean</a></td><td/><td><div><p>Mit Hilfe des <em>freigeben</em> Parameters wird angegeben, ob es sich bei der Patienten-Entlassung um vollständige Daten handelt (<em>freigeben</em> = <em>true</em>) und somit eine Validierung erfolgen soll, oder ob lediglich unvollständige Daten zwischengespeichert werden (<em>freigeben</em> = <em>false</em>) - in diesem Fall wird ein Entlassungs-Aviso erstellt.</p>
</div></td></tr><tr><td>OUT</td><td>return</td><td/><td>1..1</td><td><a href="http://hl7.org/fhir/R5/resource.html">Resource</a> (<a href="http://hl7.org/fhir/R5/operationoutcome.html" title="http://hl7.org/fhir/StructureDefinition/OperationOutcome">OperationOutcome</a>)</td><td/><td><div><p>Der <em>return</em> Parameter gibt Auskunft über den Erfolg der Operation.</p>
</div></td></tr></table><div><p>TBD: Abgangsart beim MopedTransferEncounter falls intensiv, muss befüllt werden</p>
</div></div>
  </text>
  <url
       value="https://elga.moped.at/OperationDefinition/MOPED.Patient.Entlassen"/>
  <version value="0.1.0"/>
  <name value="MOPED_Patient_Entlassen"/>
  <title value="MOPED Patient $entlassen (POC)"/>
  <status value="draft"/>
  <kind value="operation"/>
  <date value="2025-02-26T17:15:50+00:00"/>
  <publisher value="ELGA GmbH"/>
  <contact>
    <name value="ELGA GmbH"/>
    <telecom>
      <system value="url"/>
      <value value="https://elga.gv.at"/>
    </telecom>
  </contact>
  <description
               value="Die $entlassen Operation wird aufgerufen, wenn ein(e) Patient*in aus dem Krankenhaus entlassen wurde."/>
  <purpose
           value="**Wer ruft diese Operation in welchem Zusammenhang auf?**

Die Operation wird vom Akteur Krankenhaus (KH) aufgerufen. Die $entlassen Operation wird aufgerufen, wenn ein(e) Patient*in aus dem Krankenhaus entlassen wurde.

**Voraussetzungen für den Aufruf**

* Account-Status: `Aufnahme freigegeben`, `SV verarbeitet`

**Detaillierte Business-Logik**

1. Suche des MopedEncounter: Der MopedEncounter mit der jeweiligen *aufnahmezahl* lt. Operation-Parameter wird gesucht
2. Update des MopedEncounters:
  * *MopedEncounter.actualPeriod.end* mit dem *zeitpunkt* lt. Operation-Parameter befüllen
  * *MopedEncounter.status* mit `discharged`  befüllen
  * *MopedEncounter.admission.dischargeDisposition* mit *entlassungsart* lt. Operation-Parameter befüllen
3. Suche des letzten MopedTransferEncounter: Mit *MopedTransferEncounter.partOf* einer Referenz auf den MopedEncounter aus Schritt 1 und den Status *in-progress*
4. Update des letzten MopedTransferEncounter:
  * *MopedTransferEncounter.status* mit `completed` befüllen gesetzt 
  * *MopedTransferEncounter.actualPeriod.end* mit *zeitpunkt* lt. Operation-Parameter befüllen  
  * Abgangsart vom alten MopedTransferEncounter: *MopedTransferEncounter.admission.dischargeDisposition* wird auf *abgangsart* lt. Operation-Parameter gesetzt.
  * Altersgruppe bei Abgang vom alten MopedTransferEncounter: *MopedTransferEncounter.admission.extension[Altersgruppe].extension[beiAbgang].value* wird lt. LKF-Regeln berechnet, anhand des *MopedEncounter.subject.birthdate* aus dem Encounter aus Schritt 1 (für Berechnugns-Details siehe Hinweis 2 und 3).
5. Änderungen im Account:
  * *MopedAccount.WorkflowStatus* mit `Entlassungs Aviso` befüllen, oder, falls der *freigeben*-Operation-Parameter auf `true` gesetzt war und die Validierung erfolgreich war, wird *MopedAccount.WorkflowStatus* mit `Entlassung vollständig` befüllt. 
  * *MopedAccount.TageOhneKostenbeitrag* lt. gleichnamigen Opeartion-Parameter befüllen

**Validierung / Fehlerbehandlung**

* Wenn der *freigeben*-Parameter auf *true* ist, muss eine Validierung aller Ressourcen (MopedEncounter, Account) erfolgreich sein, oder die Operation schlägt fehl.
* Wurden bei der Suche in Schritt 4 mehrere MopedTransferEncounter gefunden, liegen inkonsistente Daten vor und die Operation schlägt fehl.

**Weitere Hinweise**
* Hinweis 1: LKF 4.1.9 Altersgruppe bei Entlassung/Kontakt
  * Vollendete Lebensjahre sind ausschlaggebend
  * 0: 0
  * 1-4: 1
  * 5-9: 5
  * 10-14: 10
  * 15-19: 15
  * 20-24: 20
  * ... immer weiter so, die untere Grenze des Alters in 5er-Schritten
  * 85-89: 85
  * 90-95: 90
  * 95 und älter: 95
* Hinweis 2: Die Altersgruppe wird als Code repräsentiert (siehe ValueSet `Altersgruppe`)

**Annahmen an das BeS**
* Es wurde vorab geprüft, ob das `system` des Parameters `aufnahmezahl` dem GDA entspricht, der die Operation aufruft. Somit ist sichergestellt, dass nur eigene Fälle entlassen werden können.
"/>
  <affectsState value="true"/>
  <code value="entlassen"/>
  <comment
           value="TBD: Abgangsart beim MopedTransferEncounter falls intensiv, muss befüllt werden"/>
  <resource value="Encounter"/>
  <system value="false"/>
  <type value="true"/>
  <instance value="false"/>
  <parameter>
    <name value="aufnahmezahl"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation
                   value="Der *aufnahmezahl* Parameter beinhaltete den eindeutigen Identifizierer für den relevanten Fall."/>
    <type value="Identifier"/>
  </parameter>
  <parameter>
    <name value="zeitpunkt"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation
                   value="Der *zeitpunkt* Parameter definiert zu welchem Zeitpunkt die Beurlaubung startet."/>
    <type value="dateTime"/>
  </parameter>
  <parameter>
    <name value="entlassungsart"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation
                   value="Der *entlassungsart* Parameter definiert die Entlassungsart des Patienten."/>
    <type value="code"/>
    <binding>
      <strength value="required"/>
      <valueSet value="https://elga.moped.at/ValueSet/Entlassungsart"/>
    </binding>
  </parameter>
  <parameter>
    <name value="tageOhneKostenbeitrag"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation
                   value="Der *tageOhneKostenbeitrag* Parameter definiert zu für wie viele Tage kein Kostenbeitrag eingehoben wurde."/>
    <type value="unsignedInt"/>
  </parameter>
  <parameter>
    <name value="abgangsart"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation
                   value="Der *abgangsart* Parameter definiert die Abgangsart des Patienten vom letzten offenen MopedTransferEncounter."/>
    <type value="code"/>
    <binding>
      <strength value="required"/>
      <valueSet value="https://elga.moped.at/ValueSet/Abgangsart"/>
    </binding>
  </parameter>
  <parameter>
    <name value="freigeben"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation
                   value="Mit Hilfe des *freigeben* Parameters wird angegeben, ob es sich bei der Patienten-Entlassung um vollständige Daten handelt (*freigeben* = *true*) und somit eine Validierung erfolgen soll, oder ob lediglich unvollständige Daten zwischengespeichert werden (*freigeben* = *false*) - in diesem Fall wird ein Entlassungs-Aviso erstellt."/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="return"/>
    <use value="out"/>
    <min value="1"/>
    <max value="1"/>
    <documentation
                   value="Der *return* Parameter gibt Auskunft über den Erfolg der Operation."/>
    <type value="Resource"/>
    <targetProfile
                   value="http://hl7.org/fhir/StructureDefinition/OperationOutcome"/>
  </parameter>
</OperationDefinition>