PseudonymizePatient

Zweck

//TODO

Voraussetzung
  • API-Key: Der spezifizierte API-Key muss valide und zum Aufruf der Methode autorisiert sein. //TODO
Aufruf und Rückgabe

Invocations

URL: [base]/$pseudonymizePatient

This operation changes content

Parameters (In)

NameCardinalityTypeDocumentation
study1..1string

Angabe der Studie auf Basis derer für die angegebenen Originalwerte ein vorhandenens eindeutiges Pseudonym gesucht wird

patient1..1Patient

Patienten-Ressource des Patienten, der pseudonymisiert werden soll

target1..1string

Angabe der Domäne auf Basis derer für die angegebenen Originalwerte ein vorhandenens eindeutiges Pseudonym gesucht wird

Return Values (Out)

NameCardinalityTypeDocumentation
externalPatientId1..1string

ID der Patient-Ressource zum Zweck der Rückreferenzierung. Es wird die vom Client übermittelte ID (Element Patient.id) verwendet, in Anlehnung an das Konzept 'Update as Create' as der FHIR-Spezifikation.

target1..1Identifier

Angabe der Domäne (entspricht dem beim Request übermittelten Wert) zum Zweck der Rückreferenzierung

pseudonym0..1Identifier

Das erzeugte Pseudonym (wird nur im Erfolgsfall übermittelt)

Abfrage je eines Pseudonym-Wertes für einen Originalwert und eine spezifische Domäne. Eine gleichzeitige Verarbeitung von mehreren Pseudonymisierungen kann durch Übergabe mehrerer entsprechender Requests in einem FHIR-Batch-Bundle erfolgen.

//TODO SL weitere Hinweise

Im Kontext dieser Operation wird das folgende Patient-Profil verwendet:

idS Σ1..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriPattern
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
bloomfilterS Σ0..1IdentifierBloomfilter
activeΣ ?!0..1boolean
nameΣ0..*HumanName
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

Im Fehlerfall wird eine OperationOutcome-Ressource mit entsprechenden Informationen zurückgegeben. Bei Verwendung innerhalb eines Batch-Bundles (siehe Beispiele) wird in der Batch-Response neben diesem OperationOutcome auch eine Parameters-Ressource zurückgegeben, die auf die betroffene PatientId sowie das Target verweist.

Beispiel

Beispielhafter Request-Body als Bundle:

<Bundle xmlns="http://hl7.org/fhir">
    <id value="PseudonymizePatient-Bundle-request-example-1" />
    <type value="batch" />
    <entry>
        <resource>
            <Parameters>
                <id value="PseudonymizePatient-Bundle-request-example-1-Par1" />
                <parameter>
                    <name value="study" />
                    <valueString value="MyStudy" />
                </parameter>
                <parameter>
                    <name value="patient" />
                    <resource>
                        <Patient>
                            <id value="aaaaaaaa-8a1e-4442-af99-50abc27d6f52" />
                            <meta>
                                <profile value="https://ths-greifswald.de/fhir/StructureDefinition/epix/Patient" />
                            </meta>
                            <identifier>
                                <type>
                                    <coding>
                                        <system value="http://terminology.hl7.org/CodeSystem/v2-0203" />
                                        <code value="MR" />
                                    </coding>
                                </type>
                                <system value="http://my.fhir.domain.local/fhir/sid/patients" />
                                <value value="1337" />
                            </identifier>
                            <identifier>
                                <system value="http://fhir.de/sid/gkv/kvid-10" />
                                <value value="A123456789" />
                            </identifier>
                            <identifier>
                                <type>
                                    <coding>
                                        <system value="https://ths-greifswald.de/fhir/CodeSystem/epix/BloomfilterType" />
                                        <code value="A" />
                                    </coding>
                                </type>
                                <system value="https://ths-greifswald.de/fhir/sid/epix/bloomfilter" />
                                <value value="SWNoIGJpbiBlaW4gQmxvb21maWx0ZXIuIFZlcnNwcm9jaGVuLg==" />
                            </identifier>
                        </Patient>
                    </resource>
                </parameter>
                <parameter>
                    <name value="target" />
                    <valueString value="MyStudy-Domain1" />
                </parameter>
            </Parameters>
        </resource>
        <request>
            <method value="POST" />
            <url value="$pseudonymizePatient" />
        </request>
    </entry>
    <entry>
        <resource>
            <Parameters>
                <id value="PseudonymizePatient-Bundle-request-example-1-Par2" />
                <parameter>
                    <name value="study" />
                    <valueString value="MyStudy" />
                </parameter>
                <parameter>
                    <name value="patient" />
                    <resource>
                        <Patient>
                            <id value="bbbbbbbb-e258-4471-9ac3-6dfdfac35a6e" />
                            <meta>
                                <profile value="https://ths-greifswald.de/fhir/StructureDefinition/epix/Patient" />
                            </meta>
                            <identifier>
                                <type>
                                    <coding>
                                        <system value="http://terminology.hl7.org/CodeSystem/v2-0203" />
                                        <code value="MR" />
                                    </coding>
                                </type>
                                <system value="http://my.fhir.domain.local/fhir/sid/patients" />
                                <value value="0815" />
                            </identifier>
                            <identifier>
                                <system value="http://fhir.de/sid/gkv/kvid-10" />
                                <value value="Z987654321" />
                            </identifier>
                            <name>
                                <family value="Hinterlist" />
                                <given value="Herbert" />
                            </name>
                        </Patient>
                    </resource>
                </parameter>
                <parameter>
                    <name value="target" />
                    <valueString value="NotMyStudy-Domain15" />
                </parameter>
            </Parameters>
        </resource>
        <request>
            <method value="POST" />
            <url value="$pseudonymizePatient" />
        </request>
    </entry>
</Bundle>

Beispielhafter Response-Body als Bundle:

<Bundle xmlns="http://hl7.org/fhir">
    <id value="PseudonymizePatient-Bundle-response-example-1" />
    <type value="batch-response" />
    <entry>
        <resource>
            <Parameters>
                <id value="PseudonymizePatient-Bundle-response-example-1-Par1" />
                <parameter>
                    <name value="externalPatientId" />
                    <valueId value="aaaaaaaa-8a1e-4442-af99-50abc27d6f52" />
                </parameter>
                <parameter>
                    <name value="target" />
                    <valueIdentifier>
                        <system value="http://my.fhir.domain.local/fhir/sid/domains" />
                        <value value="MyStudy-Domain1" />
                    </valueIdentifier>
                </parameter>
                <parameter>
                    <name value="pseudonym" />
                    <valueIdentifier>
                        <system value="http://my.fhir.domain.local/fhir/sid/pseudonyms" />
                        <value value="56464986521" />
                    </valueIdentifier>
                </parameter>
            </Parameters>
        </resource>
        <response>
            <status value="200" />
            <outcome>
                <OperationOutcome>
                    <id value="PseudonymizePatient-Bundle-response-example-1-Par1OpO" />
                    <issue>
                        <severity value="information" />
                        <code value="informational" />
                        <diagnostics value="Operation completed successfully." />
                    </issue>
                </OperationOutcome>
            </outcome>
        </response>
    </entry>
    <entry>
        <resource>
            <Parameters>
                <id value="PseudonymizePatient-Bundle-response-example-1-Par2" />
                <parameter>
                    <name value="externalPatientId" />
                    <valueId value="bbbbbbbb-e258-4471-9ac3-6dfdfac35a6e" />
                </parameter>
                <parameter>
                    <name value="target" />
                    <valueIdentifier>
                        <system value="http://my.fhir.domain.local/fhir/sid/domains" />
                        <value value="NotMyStudy-Domain15" />
                    </valueIdentifier>
                </parameter>
            </Parameters>
        </resource>
        <response>
            <status value="404" />
            <outcome>
                <OperationOutcome>
                    <id value="PseudonymizePatient-Bundle-response-example-1-Par2OpO" />
                    <issue>
                        <severity value="fatal" />
                        <code value="security" />
                        <diagnostics value="Target domain &#39;NotMyStudy-Domain15&#39; not found." />
                    </issue>
                </OperationOutcome>
            </outcome>
        </response>
    </entry>
</Bundle>