eLab posistemės integracijos dokumentacija
0.3.40 - versija Lithuania flag

eLab posistemės integracijos dokumentacija - Local Development build (v0.3.40) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Dokumentų pasirašymo API

Yra 2 pasirašymo būdai: Registrų centro komponentu ir SPĮ IS priemonėmis. Daugiau informacijos apie dokumentų pasirašymo procesą galite rasti dokumente ESPBI IS duomenų mainų ir integracijos projektavimo dokumentacija, skyriuje 2.6.23 „Pasirašyti medicininį dokumentą“.

Pasirašymas Registrų centro komponentu

Užklausos parametrai

Pavadinimas Aprašymas

callbackUrl

URL, į kurį bus nukreipiama po pasirašymo

compositionIds

Pasirašomų composition identifikatoriai

Vienos kompozicijos pasirašymas

Užklausa

POST /fhir/Composition/{id}/$sign

Užklausos pavyzdžiai

Inicijuojamas vienos kompozicijos pasirašymas, kur paduodami compositionId (nurodomas URL kaip kompozijos resurso identifikatorius) ir callbackUrl (nurodomas užklausos kūne) parametrai.

pvz:

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "callbackUrl",
      "valueString": "http://example.com"
    }
  ]
}

Gaunamas atsakymas su šiomis reikšmėmis

  • signingUrl - pasirašymo URL (čia atliksite pasirašymo veiksmus).
  • transactionId - transakcijos id.

SVARBU! Gavus atsakymą būtina kreiptis į $confirm-sign

Pasirašymo patvirtinimo užklausa

Užklausa

POST /fhir/Composition/{id}/$confirm-sign

Užklausos pavyzdžiai

Po pasirašymo, būtina kreiptis į “$confirm-sign” kur id yra compositionId. Šis metodas išsaugo pasirašymo informaciją ELAB sistemoje ir gaunamas atsakymas su šiomis reikšmėmis:

  • base64Content - Pasirašyto dokumento turinys
  • status - pasirašymo baigties statusas
  • fileName - pasirašyto dokumento PDF failo pavadinimas
  • documentReference - Nuoroda į FHIR sistemoje sukurtą DocumentReference resursą, kuriame saugoma nuoroda į pasirašyto dokumento PDF failą

Kelių kompozicijų pasirašymas vienu metu

Užklausa

POST /fhir/Composition/$sign-multi

Užklausos pavyzdžiai

Inicijuojamas vienos arba daugiau kompozicijų pasirašymas, kur užklausos parametruose paduodami callbackUrl, ir kompozicijų identifikatoriai.

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "callbackUrl",
      "valueString": "http://example.com"
    },
    {
      "name": "compositionIds",
      "valueId": "c5562539-7e49-4a95-9129-847bdee9d060"
    },
    {
      "name": "compositionIds",
      "valueId": "69ca25a3-4f60-49ba-ac08-4d90e6aa5e93"
    }
  ]
}

Gaunamas atsakymas su šiomis reikšmėmis.

  • signingUrl - pasirašymo komponento URL (čia atliksite pasirašymo veiksmus).
  • transactionId - pasirašymo transakcijos id.

SVARBU! Gavus atsakymą būtina kreiptis į $confirm-multi-sign arba $confirm-multi-sign-comp

Pasirašymo patvirtinimo užklausa

Užklausa

POST /fhir/Composition/$confirm-multi-sign

Po pasirašymo, būtina kreiptis į “$confirm-multi-sign” arba "$confirm-multi-sign-comp". Šis metodas išsaugo pasirašymo informaciją ELAB sistemoje.

Užklausos pavyzdžiai

Užklausos parametruose paduodami kompozicijų identifikatoriai.

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "compositionIds",
      "valueId": "c5562539-7e49-4a95-9129-847bdee9d060"
    },
    {
      "name": "compositionIds",
      "valueId": "69ca25a3-4f60-49ba-ac08-4d90e6aa5e93"
    }
    {
      "name": "compositionIds",
      "valueId": "b3bd8ac5-559a-4c82-98b6-9afc8b24ad0d"
    }
  ]
}

Atsakymas

Gaunamas atsakymas su šiomis reikšmėmis.

  • base64Content - Pasirašyto dokumento turinys
  • documents[] - Sąrašas dokumentų su parametrais:
    • compositionId
    • status
    • fileName
    • base64Content
  • documentReferences[] - Sąrašas nuorodų į FHIR sistemoje sukurtus DocumentReference resursus, kuriuose saugomos nuorodos į pasirašytus PDF failus.

ESPBI "stiliaus" kelių kompozicijų pasirašymas vienu metu (API suderinama su ESPBI paketiniu pasirašymu)

Šis API skirtas suderinamumui su ESPBI IS API naudojamu kelių (paketinio) dokumentų pasirašymo (multisign) API. Nuo $sign-multi skiriasi tuo, kad užklausos parametrai perduodami URL kaip užklausos eilutės (query string) parametrai, o ne Parameters resurso kūne, taip pat atsakymas grąžinamas ne kaip FHIR Parameters resursas, o kaip „grynas“ HTTP atsakymas su Location antrašte ir tekstiniu (text/plain) turiniu. Nuo ESPBI API skiriasi klaidų tvarkymo mechanizmu - atsitikus nenumatytiems atvejams (pvz dokumentas jau pasirašytas), klaidos "pranešimas" skirsis nuo ESPBI.

Užklausa

POST /fhir/Composition/$multi-sign-comp

arba

GET /fhir/Composition/$multi-sign-comp

Pastaba. GET metodas palaikomas (ESPBI tik jis naudojamas), bet nerekomenduojamas ("depreciated") - pagal hapi-fhir serverio "ideologiją GET užklausos pagal identiškus parametrus turi gražinti identiškus rezultatus (t.y. idempotent=true), todėl yra tikimybė kad sekančiose hapi-fhir serverio versijose gali būti pridėti "kešavimas" ar panašūs optimizavimai, ko pasekoj GET metodas gali būti ateityj nebepalaikomas.

Užklausos parametrai

Pavadinimas Aprašymas

callbackUrl

Adresas (URL), į kurį turi būti nukreipiama naršyklė pasirašymo proceso pabaigoje (pvz., https://mano-ligoninė.lt/pasirašymas-baigtas/pasirašytas-paketas?id=100). Adresas turi būti užkoduotas pagal RFC 1738 specifikacijos skyrių 2.2. URL Character Encoding Issues; (ESPBI atveju parametras įvardintas kaip 'returnURL' - tai vienas iš skirtumų su ESPBI paketinio pasirašymo implementacija)

id

Kableliais atskirti pasirašomų Composition resursų identifikatoriai

personalCode

Pasirašančio asmens asmens kodas. Neprivalomas parametras. Jei parametras nenurodytas arba tuščias, pasirašymo transakciją gali užbaigti bet kuris organizacijos narys

Užklausos pavyzdžiai

Inicijuojamas vienos arba daugiau kompozicijų pasirašymas, kur callbackUrl ir id (bei neprivalomas personalCode) perduodami kaip URL kodavimu užkoduoti užklausos eilutės parametrai.

pvz:

GET http://localhost:8082/fhir/Composition/$multi-sign-comp?id=22e75be0-9e5d-4f77-b10f-8678112464f5, 75b24f1a-daf1-48ec-968b-7c7befdde2db&callbackUrl=http://poliklinika.com&personalCode=38002191214 

arba

POST /fhir/Composition/$multi-sign-comp?callbackUrl=http%3A%2F%2Fexample.com&id=c5562539-7e49-4a95-9129-847bdee9d060%2C69ca25a3-4f60-49ba-ac08-4d90e6aa5e93

Parametrai šiuo atveju perduodami kaip HTTP užklausos parametrai; Galima juos perduoti ir Hapi-fhir serverio stiliumi, naudojant json'ą body, tokiu atveju http parametrai nenurodomi, o paduodamos toks body:

{
"resourceType": "Parameters",
"parameter": [
		{ "name": "callbackUrl", "valueString": "https://mano-ligoninė.lt/pasirašymas-baigtas/pasirašytas-paketas?id=100" },
		{ "name": "id", "valueString": "22e75be0-9e5d-4f77-b10f-8678112464f5, 75b24f1a-daf1-48ec-968b-7c7befdde2db" },
		{ "name": "personalCode", "valueString": "39001010000" }
	]
}

Jei asmens kodas nenurodomas, parametras turi būti praleistas, tokiu atveju body turėtų būti toks:

{
"resourceType": "Parameters",
"parameter": [
		{ "name": "callbackUrl", "valueString": "https://mano-ligoninė.lt/pasirašymas-baigtas/pasirašytas-paketas?id=100" },
		{ "name": "id", "valueString": "22e75be0-9e5d-4f77-b10f-8678112464f5, 75b24f1a-daf1-48ec-968b-7c7befdde2db" }
	]
}

Toks parametrų perdavimas per json'a requesto body'je ESPBI nepalaikomas (čia hapi-fhir serverio feature'as), ji naudojant HTTP parametrų nurodyt nereikia, arba jei naudojami http užklausos parametrais (pvz "get ttp://localhost:8082/fhir/Composition/$multi-sign-comp?id=22e75be0-9e5d-4f77-b10f-8678112464f5, 75b24f1a-daf1-48ec-968b-7c7befdde2db&callbackUrl=http://poliklinika.com"), tai body reikia paduoti tuščią.

Atsakymas

Gaunamas HTTP 200 atsakymas su šiomis reikšmėmis:

  • Location antraštėje - pasirašymo komponento URL (čia atliksite pasirašymo veiksmus).
  • Atsakymo turinyje (text/plain) - pasirašymo transakcijos id.

SVARBU! Gavus atsakymą būtina kreiptis į $confirm-multi-sign-comp arba $confirm-multi-sign

Pasirašymo patvirtinimo užklausa (API suderinama su ESPBI paketiniu pasirašymu)

Užklausa

POST /fhir/Composition/$confirm-multi-sign-comp

Po pasirašymo, būtina kreiptis į „$confirm-multi-sign-comp“ arba “$confirm-multi-sign”. Šis metodas išsaugo pasirašymo informaciją ELAB sistemoje.

Užklausos parametrai

  • transaction - pasirašymo transakcijos id, gauta dokumentų paketo suformavimo užklausos rezultate (pvz., 2978779), t.y. iš $multi-sign-comp atsakymo (arba $sign-multi).

Užklausos pavyzdžiai

pvz:

POST /fhir/Composition/$confirm-multi-sign-comp?transaction=123456

Atsakymas

Gaunamas HTTP 200 atsakymas su tekstiniu (text/plain) turiniu - kableliais atskirtas sėkmingai pasirašytų kompozicijų identifikatorių sąrašas.

pvz:

c5562539-7e49-4a95-9129-847bdee9d060,69ca25a3-4f60-49ba-ac08-4d90e6aa5e93

Pasirašymas SPĮ IS priemonėmis

Pasirašymui reikalingo dokumento turinio gavimas pagal kompozicijos identifikatorių

Užklausa

GET /fhir/Composition/{id}/$get-pdf-document-for-signing

Atsakymo pavyzdžiai

Gaunamas Parameters resursas su dokumento turiniu.

Pavyzdys:

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "data",
            "valueString": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3VyYWJpdHVyIGVnZXQgYmxhbmRpdCBhbnRlLiBTZWQgYSBkaWFtIHZlbCBzZW0gZmFjaWxpc2lzIGltcGVyZGlldC4gTnVuYyBuZWMgdG9ydG9yIG5lYyBzYXBpZW4gYWxpcXVldCBncmF2aWRhIGV1IG5vbiB2ZWxpdC4gRHVpcyBmZXJtZW50dW0gc29kYWxlcyByaG9uY3VzLiBDcmFzIHZlbCBtZXR1cyBhbGlxdWFtLCBwdWx2aW5hciBvcmNpIHNhZ2l0dGlzLCBncmF2aWRhIG51bGxhLiBPcmNpIHZhcml1cyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLg=="
        }
    ]
}

SPĮ pusėje pasirašyto dokumento įkėlimas:

Užklausa

POST /fhir/DocumentReference/$upload-pdf-document

Siunčiamas Parameters resursas su dokumento turiniu.

Užklausos pavyzdžiai

Užklausoje pateikiamos šios reikšmės:

  • compositionId - Composition resurso id
  • data - Dokumento turinys užkoduotas Base64 formatu

Pavyzdys:

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "compositionId",
            "valueId": "3b79ecf2-645a-4754-92cd-5cf1e220103e"
        },
        {
            "name": "data",
            "valueString": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3VyYWJpdHVyIGVnZXQgYmxhbmRpdCBhbnRlLiBTZWQgYSBkaWFtIHZlbCBzZW0gZmFjaWxpc2lzIGltcGVyZGlldC4gTnVuYyBuZWMgdG9ydG9yIG5lYyBzYXBpZW4gYWxpcXVldCBncmF2aWRhIGV1IG5vbiB2ZWxpdC4gRHVpcyBmZXJtZW50dW0gc29kYWxlcyByaG9uY3VzLiBDcmFzIHZlbCBtZXR1cyBhbGlxdWFtLCBwdWx2aW5hciBvcmNpIHNhZ2l0dGlzLCBncmF2aWRhIG51bGxhLiBPcmNpIHZhcml1cyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLg=="
        }
    ]
}

Pasirašyto dokumento turinio gavimas pagal kompozicijos identifikatorių

Užklausa

GET /fhir/DocumentReference/$get-pdf-document?compositionId={compositionId}

Atsakymo pavyzdžiai

Gaunamas Parameters resursas su dokumento turiniu.

Gaunamas atsakymas su šiomis reikšmėmis:

  • documentReference - Nuoroda į DocumentReference resursą
  • fileName - PDF failo pavadinimas
  • data - Dokumento turinys užkoduotas Base64 formatu

Pavyzdys:

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "documentReference",
            "valueId": "DocumentReference/5e61540a-e664-494b-b94b-1b7769efdbb4/_history/1"
        },
        {
            "name": "fileName",
            "valueString": "e200-0b3c783e-1f04-496d-8cf1-57f15368d8bc.pdf"
        },
        {
            "name": "data",
            "valueString": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3VyYWJpdHVyIGVnZXQgYmxhbmRpdCBhbnRlLiBTZWQgYSBkaWFtIHZlbCBzZW0gZmFjaWxpc2lzIGltcGVyZGlldC4gTnVuYyBuZWMgdG9ydG9yIG5lYyBzYXBpZW4gYWxpcXVldCBncmF2aWRhIGV1IG5vbiB2ZWxpdC4gRHVpcyBmZXJtZW50dW0gc29kYWxlcyByaG9uY3VzLiBDcmFzIHZlbCBtZXR1cyBhbGlxdWFtLCBwdWx2aW5hciBvcmNpIHNhZ2l0dGlzLCBncmF2aWRhIG51bGxhLiBPcmNpIHZhcml1cyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLg=="
        }
    ]
}