Patsiendi üldandmete teenus / Master Patient Index
1.4.0 - trial-use Estonia flag

Patsiendi üldandmete teenus / Master Patient Index - Downloaded Version 1.4.0 See the Directory of published versions

Patsientide sidumine ja lahti sidumine

Patsientide sidumine

Tehakse $link operatsiooniga

Reeglid ja piirangud

  • "target" on primaarne patsient, kes ei tohi olla surnud ega seotud teise primaarse patsiendiga.
  • "source" on sekundaarne patsient.
  • Eesti isikukoodiga patsient peab alati olema primaarne patsient.
    • Kahte Eesti isikukoodiga patsienti ei saa siduda, isikukoodi muudatus tuleb Rahvastikuregistri kaudu automaatselt.
  • Kui sidumisel on mõlemal patsiendil sama süsteemiga identifikaatorid (näiteks mõlemal on Soome isikukood), siis sekundaarse patsiendi identifikaatorile pannakse lõppkuupäev (ka Eesti isikukoodi puhul).
  • Sidumise tulemused hoitakse Patient.link väljas.
    • Patient ressursi salvestamisel rakendus ignoreerib link välja sisu.
    • link välja saab muuta ainult operatsioonide abil.
  • Saab siduda mitu sekundaarset patsienti ühe primaarse patsiendiga:
    • Primaarsel patsiendil tekib mitu link välja replaces tüübiga.
    • Sekundaarsetel patsientidel tekib üks link väli replaced-by tüübiga.
  • "target" patsiendil ei tohi olla link välja replaced-by tüübiga.
    • Tuleb võtta replaced-by patsient ja kasutada selle "target" patsiendina.
  • replaces tüübiga loetletud ka kõik transitiivselt seotud patsiendid.
    • Näiteks kui tehakse sidumised A -> B, C -> D ja B -> D, siis patsiendid A, B ja C on patsiendi D link väljal replaces tüübiga loetletud.

Patsientide lahti sidumine

Tehakse $unlink operatsiooniga

Reeglid ja piirangud

  • Lahti sidumisel patsiendid peavad olema seotud (Patient.link element on täidetud).
  • Peale lahti sidumist on eemaldatakse lingid (Patient.link) kahe patsiendi vahel.

Linkide kasutamine teises FHIR serveris (visioon)

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

[fhir-server-base]/Observation?patient=123
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 3,
   ..K, O, D
}
 
[fhir-server-base]/Observation?patient=789
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 5,
  ..A, L, I, T, Y
}

, kus 123 ja 789 on patsiendi refererence-id (või teiste sõnadega 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=UK123
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 3,
  ..K, O, D
}
 
[fhir-server-base]/Observation?patient.identifier=EE789
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 5,
  ..A, L, I, T, Y
}  

Peale patsientide sidumist:

POST [mpi]/Patient/$link
[some headers]
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "source-patient",
      "valueReference": {
          "reference": "Patient/123"
      }      
    },
    {
      "name": "target-patient",
      "valueReference": {
          "reference": "Patient/789"
      }
    }
  ]
}

Esimesel patsiendil tekib link teisele patsiendile koos tunnusega, et ta on asendatud:

GET [fhir-server-base]/Patient/123
[some headers]
{
  "id": "123",
  ...
  "link": [
    {
      "other": {
        "reference": "Patient/789"
      }
    },
    "type": "replaced-by"
    }
  ]
}

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

GET [fhir-server-base]/Patient/789
[some headers]
{
  "id": "789",
  ...
  "link": [
    {
       "other": {
        "reference": "Patient/123"
      }
    },
    "type": "replaces"
    }
  ]
}

Antud muudatused ei muuda andmeid lähteregistrites, st et päringud id järgi annavad endiselt samu tulemusi:

[fhir-server-base]/Observation?patient=123
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 3,
  ..K, O, D
}
 
[fhir-server-base]/Observation?patient=789
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 5,
  ..A, L, I, T, Y
}  

Tänu sidumisele leiab päring identifikaatori järgi mitte ühe patsiendi id vaid kahe ning päring nii ühe kui teise identifikaatori järgi tagastab sama andmehulga:

[fhir-server-base]/Observation?patient.identifier=UK123
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 8,
  ..K, O, D, A, L, I, T, Y
}

[fhir-server-base]/Observation?patient.identifier=EE789
{
  "resourceType": "Bundle",
  "type": "searchset",
  "total": 8,
  ..K, O, D, A, L, I, T, Y
}  

Juhul kui sidumine oli tehtud ekslikult ja need kaks patsienti tuleb lahti ühendada, siis kasutatakse unlink operatsiooni:

POST [mpi]/Patient/$unlink
[some headers]
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "source-patient",
      "valueReference": {
          "reference": "Patient/123"
      }      
    },
    {
      "name": "target-patient",
      "valueReference": {
          "reference": "Patient/789"
      }      
    }
  ]
}

Selle tulemusena lingid kahe patsiendi vahel kustutatakse. Ühtlasi Observation päringud identifikaatorite järgi tagastavad uuesti 3 kirjet Patient/123 puhul ja 5 kirjet Patient/789 puhul.

Liitmine (Merge)

Kuigi FHIR API-s esineb patsiendi ühendamise operatsioon *http://hl7.org/fhir/OperationDefinition/Patient-merge, mis liidab kahe patsiendi andmed jäädavalt (liidetav kaotatakse ära). MPI ei paku antud operatsiooni patsientide liitmiseks, kuna ta ei ole tagasipööratav.

Teised ressursid

TIS

TIS võimaldab siduda patsiente. Selleks kasutatakse HL7 V3 sõnumit PRPA_IN201102UV01_PatientLivingSubject_Information_Revised_dublikaadid. Hetkel TIS ei paku patsientide lahti sidumise teenust.