Pieprasījumi

Resursu nodrošināšanas principi FHIR API

Izmantojamais API ir balstīts FHIR REST API, kas nodrošina darbu ar dažādiem HL7 FHIR objektiem. Pieejamie FHIR objekti ir atkarīgi no tā, cik FHIR profili ir pieejami sistēmai.

Vispārēja informācija par FHIR Standartiem ir pieejama šeit.

Pieejamie gala punkti

Izsaukuma metode Galapunkts Operācija Apraksts Statuss
POST /api/(resourceType) Saglabā jaunu resursa ierakstu LAB IS Pieejams
PUT /api/(resourceType) id Saglabā jaunu resursa ieraksta versiju LAB IS Pieejams
PATCH /api/(resourceType) id Saglabā jaunu resursa ieraksta versiju LAB IS, veicot izmaiņas norādītajā resursa lauka vērtībā, pārējo saturu pārņemot no iepriekšējās resursa versijas Izstrādē
GET /api/(resourceType) id Izmantojot resursa ieraksta identifikatoru, iegūst konkrētā resursa ieraksta datus. Pieejams
GET /api/(resourceType)/(id) _history Izmantojot resursa ieraksta identifikatoru, iegūst konkrētā resursa ieraksta aktuālos un vēsturiskos datus Pieejams
GET /api/(resourceType)/(id) _history/(version) Izmantojot resursa ieraksta identifikatoru un versiju, iegūst konkrētā resursa ieraksta norādīto versiju Pieejams
GET /api/(resourceType)/ _search Meklē norādīto resursu pēc atļautajiem datu laukiem Pieejams
POST /api/(resourceType)/ _search Meklē norādīto resursa tipu Izstrādē
POST /api/(resourceType)/ by-identity Meklē norādīto resursa ierakstu pēc tipa, sistēmas un vērtības Pieejams
POST /api/ Saņem transakciju izpildei Pieejams

NVD testa vides gala punkts:

https://fhir-api-tv.lab.eveseliba.gov.lv/fhir/api

Pieejamo galapunktu pieprasījumu galvenes lauki

Izsaukuma metode Galapunkts Operācija Galvenes lauks Vērtība Galvenes lauka apraksts Kad?
POST /api/(resourceType)
Content-Type application/fhir+json Pieprasījuma body formāts Vienmēr
X-Provenance JSON Provenance objekts, kas satur t.sk. datu parakstu Ja pieprasījuma resurs nav "Patient"
Prefer respond-async Norāda uz asinhrono pieprasījuma apstrādi Vienmēr
Prefer return=representation Ja atbildē sagaidām jaunizveidoto resursu Ja pieprasījuma resurs ir "Patient"
PUT /api/(resourceType) id
Content-Type application/fhir+json Pieprasījuma body formāts Vienmēr
X-Provenance JSON Provenance objekts, kas satur t.sk. datu parakstu Ja pieprasījuma resurs nav "Patient"
Prefer respond-async Norāda uz asinhrono pieprasījuma apstrādi Vienmēr
GET /api/(resourceType) id
Accept application/fhir+json Norāda uz atbildes formātu Ja iegūstamie JSON
GET /api/(resourceType)/(id) _history
Accept application/fhir+json Norāda uz atbildes formātu Vienmēr
GET /api/(resourceType)/(id) _history/(version)
Accept application/fhir+json Norāda uz atbildes formātu Vienmēr
GET /api/(resourceType)/ _search
Accept application/fhir+json Norāda uz atbildes formātu Vienmēr
Prefer return=representation Norāda, ja atbilde nepieciešams saņemt pieprasījuma statusu kopā ar izveidoto resursu Neobligāts "_job" resursa datu izsaukumiem
POST /api/(resourceType)/ by-identity
Content-Type application/fhir+json Pieprasījuma body formāts Vienmēr
Accept application/fhir+json Norāda uz atbildes formātu Vienmēr
Prefer respond-async Norāda uz asinhrono pieprasījuma apstrādi Vienmēr

Izsaukumos pieejamie resursu veidi

NVD FHIR saskarne datu apmaiņai nodrošina atbalstu šādiem resursu tipiem:

Binary - binārās datnes (piem., pdf);
Communication - dati par komunikācijas notikumu;
Condition - diagnožu dati;
Consent - dati par papildus pieejas ierobežojumiem;
Coverage - dati par apmaksas avotiem (piem., apdrošināšanas līgumi, valsts garantēta apmaksa);
DiagnosticReport - izmeklējumu rezultātu pārskati;
MedicationStatement - ārstniecības līdzekļu dati;
Observation - izmeklējumu dati;
Organization - dati par ĀI un to filiālēm;
Patient - dati par pacienta personu;
Practitioner - dati par ĀP;
PractitionerRole - dati par ĀP;
Procedure - manipulāciju dati;
ServiceRequest - nosūtījumi;
Specimen - dati par paraugiem.

Sistēma nodrošina atbalstu tikai resursiem, kas balstīti uz NVD vajadzībām pielāgotajiem publicētiem profiliem.

Profilu norāde

Visos FHIR izsaukumos kuri pievieno vai labo LAB IS datus obligāti pie iesūtāmajiem datiem nepieciešams veikt pieprasījumā izmantojamā profila norādi!

Piemērs:

{
    "meta": {
        "profile": [
            "https://vvis.gov.lv/fhir/StructureDefinition/Patient/LVPatient"
        ]
    }
    <<<Biznesa dati>>>
}

Pieprasījumu struktūras

/api/(resourceType)

Metode GET

Galapunkta GET metodei ir pieejamas vairākas operācijas, kuras savā starpā atšķirās ar pieprasījuma izveides struktūru.

  • Metode "/id" - Metodes ietvaros pieprasījumu struktūrā ir sagaidāms norādīt izsaucamā resursa tipu un LAB IS ieraksta identifikatoru, veidojot izsaukumu atbilstoši formātam: "/api/(resourceType)/(id)". Atgieztā datu struktūra satur datus par izsaukto sistēmas ierakstu.
  • Metode "/_history" - Metodes ietvaros pieprasījumu struktūrā ir sagaidāms norādīt izsaucamā restursa tipu un LAB IS ieraksta identifikatoru, veidojot izsaukumu atbilstoši formātam: "/api/(resourceType)/(id)/_history". Atgieztā datu struktūra saturēs datus par izsaukto sistēmas ierakstu un visām vēsturiskajām ieraksta datu kopām.
    • Metode "/_history/(version)" - Metodes ietvaros pieprasījumu struktūrā ir sagaidāms norādīt izsaucamā restursa tipu, LAB IS ieraksta identifikatoru un versiju, par kuru jāatgriež aktuālais vēsturiskais ieraksts, veidojot izsaukumu atbilstoši formātam: "/api/(resourceType)/(id)/_history/(date)". Atgieztā datu struktūra saturēs datus ieraksta datu kopu atbilstoši norādītajai versijai.
  • Metode "/_search" - pieprasījumā tiek norādīts atļautais FHIR path lauks kā meklēšanas parametrs

Metode PUT

Galapunkta PUT metodei ir izmantojama datu labošanas/aizvietošanas vajadzībām.

  • Metode "/id" - Metodes ietvaros pieprasījumu struktūrā ir sagaidāms norādīt izsaucamā restursa tipu un LAB IS ieraksta identifikatoru veidojot izsaukumu atbilstoši formātam: "/api/(resourceType)/(id)". Papildus metodē ir iespējams norādīt callback header parametru, kurā var norādīt adresi, uz kuru FHIR API nosūta transakcijas statusu. PUT metodes body struktūra ir atkarīga no resursa tipa definētā profila.

Metode POST

Galapunkta POST metodei ir izmantojama datu izveidei.

  • Pieprasījumu struktūrā ir sagaidāms norādīt izsaucamā restursa tipu,veidojot izsaukumu atbilstoši formātam: "/api/(resourceType)". Papildus metodē ir iespējams norādīt callback header parametru, kurā var norādīt adresi, uz kuru FHIR API nosūta tranzakcijas statusu. POST metodes body struktūra ir atkarīga no resursa tipa definētā profila.

/api/search/(resourceType)

Metode POST

Galapunkta POST metodei ir pieejamas vairākas operācijas, kuras savā starpā atšķirās ar pieprasijuma izveides struktūru.

  • Metode "/id" - Metodes ietvaros pieprasījumu struktūrā ir sagaidāms norādīt izsaucamā restursa tipu, veidojot izsaukumu atbilstoši formātam: "/api/search/(resourceType)/by-identity". Izsaukuma body struktūra vienmēr saturēs sekojošos laukus: "{ "value": "string", - Meklējamā vērtība "system": "string", - meklējamās vērtības sistēmas identifikators "resourceType": "string" - Sagaidāmā atbildes resursa tipa nosaukums. }"Atgieztā datu struktūra saturēs datus par izsaukto sistēmas ierakstu.

Operācijā izmantojamie resursi

Meklēšanas operācija ir izmantojama sekojošajiem FHIR resursiem:

Resursa nosaukums sistēmā Aprakts
PractitionerRole Arstniecības personas darba vieta
Organization Medicīnas iestāde vai medicīnas iestādes filiāle
Practitioner Arstniecības persona

Resursiem piesaistītie vērtību filtra lauki

Resursa nosaukums sistēmā Filtra lauks Filtra lauka vērtības
PractitionerRole active true vai false
PractitionerRole identifier[].system Klasifikatora OID "1.3.6.1.4.1.38760.2.37"
Organization active true vai false
Organization identifier[].system Klasifikatora OID, kur "1.3.6.1.4.1.38760.2.23" tiek norādīts meklējot ārstniecības iestādī un "1.3.6.1.4.1.38760.2.28" tiek norādīts meklējot ārstniecības iestādes filiāli
Practitioner active true vai false
Practitioner identifier[].system Klasifikatora OID "1.3.6.1.4.1.38760.3.1.4" vai "1.3.6.1.4.1.38760.3.1.1"

Lapošanas izmantošana operācijas izsaukumos

Ja meklēšanas operācijas atrasto ierakstu skaits pārsniedz sistēmā definēto vienas lappas izmēru, tad izsaukuma atbildes struktūra tiek papildināta ar "link" objektu masīvu, kur masīva objekts satur laukus "relation" un "url"

JSON lauks Apraksts
link Satur lappaspušu navigācijas datus
link.relation Norāde uz objekta link.url pielietojumu. Iespējamās vērtības "self" - norāda pašreizējās lapas datu izsaukuma saiti; "next" - norādā nākamās lapas datu izsaukuma saiti; "previous" - norāda iepriekšējās lapas datu izsaukuma saiti
link.url Lapas datu izsaukuma saiti

Piezīme:

  • Pašreizējās lapas saite tiek uzrādīta tikai gadījumā, ja "link" masīvs satur vienu vai abus JSON objektus ar references lauka vērtībām "next" vai/un "previous".
  • Nākamās lapas saite tiek uzrādīta tikai gadījumā, ja nākamā lappa eksistē.
  • Iepriekšejās lapas saite tiek uzrādīta tikai gadījumā, ja ja iepriekšējā lappa eksistē.
  • Veicot iepriekšējās lapas datu pieprasījumu dati tiek kārtoti dilstōša secībā pēc ieraksta identifikatoriem.
  • Veicot nākamās lapas datu pieprasījumu dati tiek kārtoti augošā secībā pēc ieraksta identifikatoriem.

Piemērs lapošanas masīvam

    "link": [
        {
            "relation": "previous",
            "url": "{DOMAIN}/fhir/api/Organization/_search?active=true&identifier[].system=1.3.6.1.4.1.38760.2.23&search_previous=01H0JKDZ1F010MXYSJF6JBYJW0"
        },
        {
            "relation": "self",
            "url": "{DOMAIN}/fhir/api/Organization/_search?active=true&identifier[].system=1.3.6.1.4.1.38760.2.23&search_next=01H0JKDZ1F01XHMXW69XCCX4CW"
        },
        {
            "relation": "next",
            "url": "{DOMAIN}/fhir/api/Organization/_search?active=true&identifier[].system=1.3.6.1.4.1.38760.2.23&search_next=01H0JKDZ1F035PXAZHXVEX641E"
        }
    ]

Piezīme: piemera nolūkos host saite aizvietota ar DOMAIN!