Page merge and unmerge

TIS võimaldab liita patsiente. Selleks kasutatakse PRPA_IN201102UV01_PatientLivingSubject_Information_Revised_dublikaadid sõnum. Hetkel TIS ei paku lahti sidumise teenust.

Selleks, et tagada sarnast funktsionaalsust upTIS Patsiendi Registris tuleb võta kasutusele FHIR operatsiooni http://hl7.org/fhir/OperationDefinition/Patient-merge. NB! Hetkel operatsioon kuulub R5 komplekti ja peab olema importitud R4 serverisse manuaalselt.

FHIR spetsifikatsiooni merge operaatori kirjeldus ütleb "This is not an idempotent operation", ühtlasi see tähendab et lahti sidumine (unmerge) ei ole võimalik ning unmerge operatsiooni puudumine spetsifikatsiooni kinnitab seda väidet. FHIR spetsifikatsioon ütleb, et merge operatsiooni tulemusena tuleb ülekäia kõik ressuursid kõikides FHIR repositooriumitest ja muuta lingid "source" patsiendist "target" patsiendi peake, kus "target" on "surviving patient resource". Selline lähenemine ei ole võimalik hajutatud keskkonnas, kus MPI opereerib omaette moodulina ilma teiste (tihti peale veel mitte eksisteerivate) repositooriumite teadmata. Sama moodi "hard" linkimine, kus ühe patsiendi andmed "kaovad" ära võib tekkitada probleemi TTO-dele kes on liidestanud ennast upTIS-iga ning võivad mitte teada kliinilise informatsiooni liitmisest (s.t. et päring kliiniliste andmete vastu täna ja homme võib anda erinevad tulemused).

Vastupudi vaikimisi FHIR implementatsioonile planeeritavas Patsiendiregistris operatsioon $merge saab olema idempotentne, ning tekkib ka võimalus $unmerge ehk lahti sidumiseks. Patsiendi sidumise algoritm kirjeldatud spetsifikatsioonis .


Merge

Structure definition URI: http://hl7.org/fhir/OperationDefinition/Patient-merge

URL in FHIR: [base]/Patient/$merge

Täpne kirjeldus https://build.fhir.org/patient-operation-merge.html

Merge operatsiooni tulemusena tekkivad uued kirjed tabelis 

Unmerge

Unmerge operatsioon puudub FHIR spetsifikatsioonis ja peab olema arendatud custom operatsioonina.

Structure definition URI: http://hl7.org/fhir/OperationDefinition/Patient-unmerge

URL in FHIR: [base]/Patient/$unmerge


In Parameters:
Name Cardinality Type Binding Profile Documentation
source-patient 0..1 Reference(Patient)

A direct resource reference to the source patient resource (this may include an identifier)

source-patient-identifier 0..* Identifier

The Identifier(s) of the source patient resource; all of these identifiers MUST be present in the located resource (in addition to the one included in the resource reference above - if included)

(The purpose of this property is to ensure that the correct source patient resource is selected)

target-patient 0..1 Reference(Patient)

A direct resource reference to the target patient resource

This is the target for the unmerge. As result target patient become an "active" patient (Patient.active → true)

target-patient-identifier 0..* Identifier

The Identifier(s) of the target patient resource; all of these identifiers MUST be present in the located resource (The purpose of this property is to ensure that the correct source patient resource is selected)

Out Parameters:
Name Cardinality Type Binding Profile Documentation
return 1..1 Bundle

A bundle contain a set of Patient records that represent information from requested source(s). Optionally it may also contain an OperationOutcome with further information about the search results (such as warnings or information messages, such as a count of records that were close but eliminated) If the operation was unsuccessful, then an OperationOutcome may be returned along with a BadRequest status Code (e.g. security issue, or insufficient properties in patient fragment - check against profile).


Linkide kasutamine FHIR serveris

Tüüpiline päring FHIR serveris Observation ressurssi vastu näeb välja nii

[fhir-server-base]/Observation?patient=789 { "resourceType": "Bundle", "type": "searchset", "total": 5, ..A, L, I, T, Y]]></ac:plain-text-body> </ac:structured-macro>

, kus 123 ja 789 on patsiendi refererence-id (või teiste sõnadeda patsiendi id MPI-s). Oletame, et esimesel patsiendi on identifikaator UK123 ja teisel on EE789. Siis päring identifikaatori kohta annab samad tulemused.

[fhir-server-base]/Observation?patient.identifier=EE789 { "resourceType": "Bundle", "type": "searchset", "total": 5, ..A, L, I, T, Y]]></ac:plain-text-body> </ac:structured-macro>


Peale patsientide sidumist

Esimene patsient muutub mitte aktiivseka ja tal tekkib link teisele patsiendile koos tunnusega, et ta on asendatud

ning teisel patsiendil tekkib link esimesele patsiendile koos tunnusega, et ta on seda asendanud

Antud muudatused ei muuda andmed lähteregistritest, st et päringud id järgi endiselt annavad samu tulemusi

[fhir-server-base]/Observation?patient=789 { "resourceType": "Bundle", "type": "searchset", "total": 5, ..A, L, I, T, Y]]></ac:plain-text-body> </ac:structured-macro>

Kuid tänu sidumisele päring identifikaatori järgi leiab mitte ühte patsiendi id vaid kahte. Ning päring nii ühte kui teise identifikaatori järgi tagastab sama andmehulka

[fhir-server-base]/Observation?patient.identifier=EE789 { "resourceType": "Bundle", "type": "searchset", "total": 8, ..K, O, D, A, L, I, T, Y]]></ac:plain-text-body> </ac:structured-macro>


Juhul kui sidumine oli tehtud ekslikult ja neid kahte patsiente tuleb lahti ühendada siis kasutatakse unmerge operatsioon

selle tulemusena lingid kahe patsiendi vahel kustutatakse ära ning source patsient (123) muutub uuesti aktiivseks. Ühtlasi Observation päringud identifikaatorite järgi tagastavad uuesti 3 kirjet Patient/123 puhul ja 5 kirjet Patient/789.