RequestTasks

Zweck

Tasks sind Aufgaben, die ein Standort regelmäßig abruft und abarbeitet. Dies umfasst beispielsweise die Auflösung eines Clearing-Prozesses, wenn ein Privacy-Preserving Record Linkage zu einem uneindeutigem Ergebnis kam. Es wird empfohlen, die Aufgaben regelmäßig (und mehrmals die Woche) abzurufen. Andernfalls können uneindeutige Matches nicht aufgelöst werden und entsprechende Pseudonyme nicht vergeben werden. Aufgaben können sein: Einen vorhergehenden Request erneut senden, das Pseudonym nach einem Clearing-Prozess abrufen und am Standort hinterlegen, Identifizierende Daten zu einem vorher gesendeten Bloomfilter senden. Aufgaben haben ein Verfallsdatum. Werden diese nicht rechtzeitig abgearbeitet, wird der auslösende Prozess abgebrochen (z.B. Clearing-Prozess).

Voraussetzung
  • Die spezifizierte Studie muss im Zielsystem bekannt und angelegt sein.
  • Die standortspezifische Ziel-Domäne (target) muss im Zielsystem bekannt und angelegt sein.
  • API-Key: Der spezifizierte API-Key muss valide und zum Aufruf der Methode autorisiert sein.
Aufruf und Rückgabe

Die bereitgestellte Funktionalität kann per POST-Request aufgerufen werden. Die erforderlichen Angaben werden per POST-BODY in Form von FHIR Parameters übermittelt.

<HOST>:<PORT>/ttp-fhir/fhir/dispatcher/$requestTasks

Der Funktionsaufruf liefert eine Parameters-Ressource bestehend aus multiplen Multi-Part-Parametern zurück.

Invocations

URL: [base]/$requestTasks

This operation does NOT change content

Parameters (In)

NameCardinalityTypeDocumentation
study1..1string

Angabe der Studie

target1..1string

Angabe der Ziel-Domäne bzw. des abrufenden Standorts

apikey1..1string

Gültiger API-Key zur Authentifizierung und Authorisierung des aufrufenden Systems gegenüber dem verarbeitenden Workflow-Manager

Return Values (Out)

NameCardinalityTypeDocumentation
dic_psn_available0..*

Pseudonym-Rückgabe aus einem Bloomfilter-Request.

dic_psn_available.expires0..1instant

Ablaufdatum (danach ist die Information ungültig)

dic_psn_available.bloomfilter1..1base64Binary

Bloomfilter

dic_psn_available.target1..1Identifier

Target-Identifikator

dic_psn_available.pseudonym1..1Identifier

Pseudonym

send_idat0..*

Anforderung, IDAT zu übermitteln.

send_idat.expires1..1instant

Ablaufdatum (danach ist die Information ungültig)

send_idat.taskId1..1id

Identifikator der Aufgabe, dient der Rückreferenzierung in der providePatientData Operation.

send_idat.pseudonym0..1Identifier

Pseudonym. Entweder Pseudonym oder Bloomfilter müssen enthalten sein.

send_idat.bloomfilter0..1base64Binary

Bloomfilter. Entweder Pseudonym oder Bloomfilter müssen enthalten sein.

send_idat.element1..*Coding

Vorgabe, welche Elemente in den IDAT von providePatientData enthalten sein sollen. Das Coding ist an das Value Set IdatElements gebunden.

repeat_request0..*

Anforderung einen Bloomfilter-Request zu wiederholen.

repeat_request.expires0..1instant

Ablaufdatum (danach ist die Information ungültig)

repeat_request.study1..1Identifier

Angabe der Studie

repeat_request.bloomfilter1..1base64Binary

Studien- und standortspezifischer Bloomfilter (base64-codiert)

repeat_request.target1..1Identifier

Angabe des Bloomfilter sendenden Standorts (Ziel-Domäne)

Ein Standort kann seine offenen Aufgaben abrufen. Antwort ist eine Liste von Tasks.

Im Erfolgsfall wird der HTTP Statuscode 200 zurückgegeben.

Im Fehlerfall wird einer der folgenden HTTP Statuscodes in Verbindung mit einer OperationOutcome-Ressource zurückgegeben:

  • 400: Fehlende oder fehlerhafte Parameter.
  • 401: Fehlende Authentifizierung oder Autorisierung.
Beispiel

Beispielhafter Request-Body:

<Parameters xmlns="http://hl7.org/fhir">
    <id value="Parameters-RequestTasks-request-example-1" />
    <parameter>
        <name value="study" />
        <valueString value="num" />
    </parameter>
    <parameter>
        <name value="target" />
        <valueString value="codex" />
    </parameter>
    <parameter>
        <name value="apikey" />
        <valueString value="abcdef12345" />
    </parameter>
</Parameters>

Beispielhafte Rückmeldung:

<Parameters xmlns="http://hl7.org/fhir">
    <id value="Parameters-RequestTasks-response-example-1" />
    <parameter>
        <name value="dic_psn_available" />
        <part>
            <name value="bloomfilter" />
            <valueBase64Binary value="SWNoIGJpbiBlaW4gQmxvb21maWx0ZXIuIFZlcnNwcm9jaGVuLg==" />
        </part>
        <part>
            <name value="target" />
            <valueIdentifier>
                <system value="https://ths-greifswald.de/gpas" />
                <value value="codex" />
            </valueIdentifier>
        </part>
        <part>
            <name value="pseudonym" />
            <valueIdentifier>
                <system value="https://ths-greifswald.de/gpas" />
                <value value="codex_6348Q7" />
            </valueIdentifier>
        </part>
    </parameter>
    <parameter>
        <name value="send_idat" />
        <part>
            <name value="expires" />
            <valueInstant value="2021-05-28T13:00:00.00+02:00" />
        </part>
        <part>
            <name value="taskId" />
            <valueId value="064ddebf-b20e-468a-97fd-88097bcdbc11" />
        </part>
        <part>
            <name value="pseudonym" />
            <valueIdentifier>
                <system value="https://ths-greifswald.de/gpas" />
                <value value="codex_1244Q2" />
            </valueIdentifier>
        </part>
        <part>
            <name value="element" />
            <valueCoding>
                <system value="https://ths-greifswald.de/fhir/CodeSystem/dispatcher/IdatElements" />
                <code value="given" />
            </valueCoding>
        </part>
        <part>
            <name value="element" />
            <valueCoding>
                <system value="https://ths-greifswald.de/fhir/CodeSystem/dispatcher/IdatElements" />
                <code value="family" />
            </valueCoding>
        </part>
        <part>
            <name value="element" />
            <valueCoding>
                <system value="https://ths-greifswald.de/fhir/CodeSystem/dispatcher/IdatElements" />
                <code value="birthdate" />
            </valueCoding>
        </part>
        <part>
            <name value="element" />
            <valueCoding>
                <system value="https://ths-greifswald.de/fhir/CodeSystem/dispatcher/IdatElements" />
                <code value="gender" />
            </valueCoding>
        </part>
        <part>
            <name value="element" />
            <valueCoding>
                <system value="https://ths-greifswald.de/fhir/CodeSystem/dispatcher/IdatElements" />
                <code value="birthplace" />
            </valueCoding>
        </part>
        <part>
            <name value="element" />
            <valueCoding>
                <system value="https://ths-greifswald.de/fhir/CodeSystem/dispatcher/IdatElements" />
                <code value="degree" />
            </valueCoding>
        </part>
    </parameter>
    <parameter>
        <name value="repeat_request" />
        <part>
            <name value="study" />
            <valueIdentifier>
                <system value="https://ths-greifswald.de/gpas" />
                <value value="num" />
            </valueIdentifier>
        </part>
        <part>
            <name value="bloomfilter" />
            <valueBase64Binary value="SWNoIGJpbiBlaW4gQmxvb21maWx0ZXIuIFZlcnNwcm9jaGVuLg==" />
        </part>
        <part>
            <name value="target" />
            <valueIdentifier>
                <system value="https://ths-greifswald.de/gpas" />
                <value value="codex" />
            </valueIdentifier>
        </part>
    </parameter>
</Parameters>