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
Draft as of 2025-03-02 |
<OperationDefinition xmlns="http://hl7.org/fhir">
<id value="MOPED.VAERequest.Anfragen"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: OperationDefinition MOPED.VAERequest.Anfragen</b></p><a name="MOPED.VAERequest.Anfragen"> </a><a name="hcMOPED.VAERequest.Anfragen"> </a><a name="MOPED.VAERequest.Anfragen-en-US"> </a><p>URL: [base]/Account/$anfragen</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 beinhaltet den eindeutigen Identifizierer für den relevanten Fall.</p>
</div></td></tr><tr><td>IN</td><td>versicherer</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>versicherer</em> Parameter beinhaltet den eindeutigen Identifizierer für den Versicherer an dem der VAERequest gerichtet ist.</p>
</div></td></tr><tr><td>IN</td><td>verlaengerungstage</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>verlaengerungstage</em> beschreibt, um wie viele Verlängerungstage angefragt wird.</p>
</div></td></tr><tr><td>IN</td><td>sonderklasse</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#code">code</a></td><td><a href="ValueSet-SonderklasseVS.html">Sonderklasse ValueSet</a> (Required)</td><td><div><p>Der <em>sonderklasse</em> codiert, ob der Aufenthalt in der Allgemeine Gebührenklasse oder Sonderklasse stattfindet, da es bei speziellen Versicherungsträgern dafür Optionen gibt.</p>
</div></td></tr><tr><td>IN</td><td>verdachtArbeitsSchuelerunfall</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#code">code</a></td><td><a href="ValueSet-VerdachtArbeitsSchuelerunfallVS.html">Verdacht auf Arbeits- oder Schuelerunfall ValueSet</a> (Required)</td><td><div><p>Mit Hilfe des <em>verdachtArbeitsSchuelerunfall</em> Parameters wird festgehalten, ob es bei der Patienten-Aufnahme einen Verdacht auf einen Schüler- oder Arbeitsunfall gibt. Wird dieser Parameter mitgegeben, ist im Account das entsprechende Feld zu befüllen.</p>
</div></td></tr><tr><td>IN</td><td>verdachtFremdverschulden</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R5/datatypes.html#boolean">boolean</a></td><td/><td><div><p>Mit Hilfe des <em>verdachtFremdverschulden</em> Parameters wird festgehalten, ob es bei der Patienten-Aufnahme einen Verdacht auf Fremdverschulden gibt. Wird dieser Parameter mitgegeben, ist im Account das entsprechende Feld zu befüllen.</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: Ist hier evtl. eine Transaction die bessere Lösung? Bei dieser Operation findet keine Status-Änderung statt. Lediglich auf die Precondition des Workflow-Status müsste geachtet werden.</p>
</div></div>
</text>
<url
value="https://elga.moped.at/OperationDefinition/MOPED.VAERequest.Anfragen"/>
<version value="0.1.0"/>
<name value="MOPED_VAERequest_Anfragen"/>
<title value="MOPED Versichertenanspruchserklärung $anfragen (POC)"/>
<status value="draft"/>
<kind value="operation"/>
<date value="2025-03-02T20:57:05+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 Versichertenanspruchserklärung $anfragen Operation wird aufgerufen, um die Versichertenanspruchserklärung-Anfrage an die SV anzustoßen. Diese Operation ist irrelevant für Selbstzahler (das ist wichtig für künftige weiterentwicklung - wenn im Account auf eine Coverage-Ressource für Selbstzahler referenziert wird, darf die Operation $anfragen nicht ausgeführt werden)."/>
<purpose
value="
Legende: ~~durchgestrichen~~ heißt, dass es für den IG zwar bedacht wird, für den ersten POC jedoch nicht relevant ist.
**Wer ruft diese Operation in welchem Zusammenhang auf?**
Die Operation wird vom Akteur Krankenhaus (KH) aufgerufen. Die Versichertenanspruchserklärung $anfragen Operation wird aufgerufen, um die Versichertenanspruchserklärung-Anfrage an die SV anzustoßen. ~~Diese Operation ist irrelevant für Selbstzahler (das ist wichtig für künftige weiterentwicklung - wenn im Account auf eine Coverage-Ressource für Selbstzahler referenziert wird, darf die Operation $anfragen nicht ausgeführt werden).~~
**Voraussetzungen für den Aufruf**
* Account-Status: : `Aufnahme freigegeben`
**Detaillierte Business-Logik**
1. Suche des MopedEncounter: Der MopedEncounter mit der jeweiligen *aufnahmezahl* lt. Operation-Parameter wird gesucht
2. Suche aller MopedTransferEncounter die *partOf* den MopedEncounter aus Schritt 1 referenzieren
3. Suchen des MopedAccounts: Die Referenz des *MopedEncounter.account* aus Schritt 1.
4. Erstellung des MopedVAERequest:
* a. *MopedVAERequest.status* mit 'active'
* b. *MopedVAERequest.type* mit 'institutional'
* c. *MopedVAERequest.use* mit 'preauthorization'
* d. *MopedVAERequest.Verlaengerungstage* mit *verlaengerungstage* lt. Operation-Parameter befüllen
* e. *MopedVAERequest.created* mit dem aktuellem Zeitpunkt befüllen
* f. *MopedVAERequest.Sonderklasse* mit *sonderklasse* lt. Operation-Parameter befüllen
* g. *MopedVAERequest.patient* mit *MopedAccount.subject* befüllen
* h. *MopedVAERequest.insurance.coverage* mit *MopedAccount.coverage.coverage* befüllen
* i. *MopedVAERequest.provider* mit *MopedAccount.owner* befüllen
* j. *MopedVAERequest.insurer* mit einer Referenz auf jene Organization befüllen, deren *Organization.identifier* dem Identifier *versicherer* lt. Operation-Parameter entspricht
* k. *MopedVAERequest.encounter* mit allen gefundenen Encountern aus Schritt 1 und 2 befüllen.
* l. *MopedVAERequest.supportingInfo[VerdachtFremdverschulden].valueBoolean* lt. Operation-Parameter befüllen
* m. *MopedVAERequest.accident.VerdachtArbeitsSchuelerunfall* lt. Operation-Parameter befüllen
5. POSTen des neu erstellten MopedVAERequest
**Validierung / Fehlerbehandlung**
* *Nur POC: MopedAccount.coverage* darf nur eine Versicherung gelistet haben
* *MopedVAERequest.patient* muss mit *Coverage.beneficiary* mit der Coverage aus Schritt 3h übereinstimmen
* *MopedVAERequest.insurer* muss mit *Coverage.insurer* mit der Coverage aus aus Schritt 3h übereinstimmen
* ~~*MopedVAERequest.provider* muss gleichzeitig die gleiche Organisation sein, die lt. Token die Operation aufgerufen hat.~~
**Weitere Hinweise**
* Hinweis 1: Nach dieser Operation findet lt. Soll-Prozess kein Update des Status *MopedAccount.workflowStatus* statt.
**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 Kostenübernahmen für eigene Fälle angefragt werden können.
"/>
<affectsState value="true"/>
<code value="anfragen"/>
<comment
value="TBD: Ist hier evtl. eine Transaction die bessere Lösung? Bei dieser Operation findet keine Status-Änderung statt. Lediglich auf die Precondition des Workflow-Status müsste geachtet werden."/>
<resource value="Account"/>
<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 beinhaltet den eindeutigen Identifizierer für den relevanten Fall."/>
<type value="Identifier"/>
</parameter>
<parameter>
<name value="versicherer"/>
<use value="in"/>
<min value="1"/>
<max value="1"/>
<documentation
value="Der *versicherer* Parameter beinhaltet den eindeutigen Identifizierer für den Versicherer an dem der VAERequest gerichtet ist."/>
<type value="Identifier"/>
</parameter>
<parameter>
<name value="verlaengerungstage"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation
value="Der *verlaengerungstage* beschreibt, um wie viele Verlängerungstage angefragt wird."/>
<type value="unsignedInt"/>
</parameter>
<parameter>
<name value="sonderklasse"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation
value="Der *sonderklasse* codiert, ob der Aufenthalt in der Allgemeine Gebührenklasse oder Sonderklasse stattfindet, da es bei speziellen Versicherungsträgern dafür Optionen gibt."/>
<type value="code"/>
<binding>
<strength value="required"/>
<valueSet value="https://elga.moped.at/ValueSet/SonderklasseVS"/>
</binding>
</parameter>
<parameter>
<name value="verdachtArbeitsSchuelerunfall"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation
value="Mit Hilfe des *verdachtArbeitsSchuelerunfall* Parameters wird festgehalten, ob es bei der Patienten-Aufnahme einen Verdacht auf einen Schüler- oder Arbeitsunfall gibt. Wird dieser Parameter mitgegeben, ist im Account das entsprechende Feld zu befüllen."/>
<type value="code"/>
<binding>
<strength value="required"/>
<valueSet
value="https://elga.moped.at/ValueSet/VerdachtArbeitsSchuelerunfallVS"/>
</binding>
</parameter>
<parameter>
<name value="verdachtFremdverschulden"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation
value="Mit Hilfe des *verdachtFremdverschulden* Parameters wird festgehalten, ob es bei der Patienten-Aufnahme einen Verdacht auf Fremdverschulden gibt. Wird dieser Parameter mitgegeben, ist im Account das entsprechende Feld zu befüllen."/>
<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>