Autoriseerimise teenus

Autoriseerimise teenust kasutavad rakendused tokeni küsimiseks. Esialgu token valideeritakse ning selle käigus ka application. Kasutaja õigusi antud rollide ja asutustega kontrollitakse õiguste haldus- ja valideerimisteenuse abiga, kus andmeid koostatakse ning saadetakse /token päring SSO-sse. Lisaks võimaldab autoriseerimise teenus küsida sessiooni infot JWT tokenist (user info, role, organization info* jne) ja tühistada sessioon id järgi.

Liidestusjuhend tervisehoiuteenuse osutajale

Tervise infosüsteemi (TIS) X-Tee teenuste kasutamiseks tuleb eelnevalt küsida token (autoriseerimist kinnitav ligipääsupilet) autoriseerimise X-Tee teenuselt, andes sisendiks infot päringute sooritaja ja päringute subjekti kohta. Saadud token tuleb lisada TIS X-Tee päringute päisesse. Token on taaskasutatav kuni enda eluaja lõpuni.

Tokeni päring

Tokeni saamiseks peab tervishoiuteenuse osutaja (TTO) tarkvara pöörduma X-Tee turvaserveri poole X-Tee REST teenuse kaudu.
POST https://{tto_turvaserveri_host}/r1/{INSTANCE}/GOV/70009770/tis/auth/v2/token

Päised

Päringute päised vastavad X-Tee REST protokolli nõuetele (https://www.x-tee.ee/docs/live/xroad/pr-rest_x-road_message_protocol_for_rest.html#4-message-format)
Teenus ootab järgmisi päiseid:

NimetusKirjeldus
X-Road-UserIdX-Tee kasutaja isikukood EE eesliitega. Lubatud nii ISO 3166-1 alpha-2 riigi koodi eesliitega kui ka ilma
X-Road-ClientClient vormis INSTANCE/CLASS/MEMBER/SUBSYSTEM

Keha

Päringu teostamiseks on vaja anda päringu kehas objekt JSON kujul:

NimiKard.TüüpKirjeldus
├─ user1…1OBJECTKasutaja, kelle nimelt andmed päritakse ühe tokeni kontekstis.
│   ├─ personalCode1…1STRINGKasutaja isikukood
│   │Väärtus peab vastama X-Road-UserId päises oleva isikukoodiga.
│   └─ personalCodeSystem0…1STRINGKasutaja isikukoodi süsteem.
Vaikimisi:  https://fhir.ee/sid/pid/est/ni
├─ organization1…1STRINGPäringu sooritaja asutuse registrikood.
Väärtus peab vastama X-Road-Client päises oleva member code osaga.
├─ patient0…1OBJECTPatsient, kelle kohta andmete pärimiseks tokenit võetakse.
│   │Peab olema defineeritud vähemalt üks väärtus: id, personalCode
│   │Kohustuslik patsiendite rollide puhul
│   ├─ id0…1STRINGPatsiendi ressursi id MPI-s.
│   ├─ personalCode0…1STRINGPatsiendi isikukood.
│   └─ personalCodeSystem0…1STRINGPatsiendi isikukoodi süsteem.
Vaikimisi:  https://fhir.ee/sid/pid/est/ni
├─ representedParty0…1STRINGAsutuse registrikood, kelle nimelt andmed päritakse ühe tokeni kontekstis.
Vajalik vaid juhul, kui see ei võrdu päringu sooritaja asutusega
├─ role1…1STRINGSoovitud roll nimekirjast
Lubatud väärtused: https://teabekeskus.tehik.ee/et/teenused/tis-teenused/tis-andmevahetus/autoriseerimise-teenuse-kasutajate-rollid
├─ application1…1STRINGPäringut sooritav rakendus

Tokeni pärimisel valideeritakse andmed tervishoiutöötajate registri, Terviseameti registri ja Rahvastikuregistri vastu

  • Tervishoiuteenuse osutaja (TTO) juures töötava isiku puhul
    • Kasutaja on kantud Terviseameti tervishoiutöötajate registrisse arstina või spetsialistina.
    • Kasutajal on Terviseameti registrites seos kasutaja ja tervishoiuasutuse vahel.
  • Patsiendi rolli puhul
    • Kasutaja peab eksisteerima rahvastikuregistris
  • Esindaja rolli puhul
    • Peab eksisteerima vastav sugulusseos või esindusseos rahvastikuregistris (näiteks lapsevanem või hooldaja) või nõusolek
      Täpsema valideerimise algoritmi leiab allpool peatükis “Rolli valideerimine”.

Päringu näide - nurse

{
  "user": {
    "personalCode": "12345678901",
    "personalCodeSystem": "https://fhir.ee/sid/pid/est/ni"
  },
  "organization": "12345678",
  "representedParty": "87654321",
  "role": "nurse",
  "application": "my-app"
}

Päringu näide – patient

{
  "user": {
    "personalCode": "12345678901"
  },
  "organization": "12345678",
  "role": "patient",
  "application": "my-app",
  "patient": {
    "personalCode": "12345678901"
  }
}

Päringu näide - authorized-person

{
  "user": {
    "personalCode": "1234567891"
  },
  "organization": "12345678",
  "role": "authorized-person",
  "application": "my-app",
  "patient": {
    "personalCode": "09876543211"
  }
}

Väljund

Vastuseks tuleb JSONi kujul autoriseerimise koodi objekt

NimiKirjeldus
└─ accessTokenJuurdepääsu token JWT formaadis
└─ expiresInTokeni kehtivuse aeg sekundites
└─ tokenTypeTokeni tüüp

Vastuse näide

{
  "accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  "expiresIn":300,
  "tokenType":"Bearer"
}

X-Tee päring ligipääsu tokeniga

Tervise infosüsteemi X-Tee päringu teostamisel tuleb lisaks standardsetel X-Tee päistele lisada esimesel sammul saadud token väljast accessToken järgmisel kujul:

NimetusVäärtus
AuthorizationBearer {accessToken}

Näide

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Vaata siit detailseid tabeleid Kasutajate rollid ja Rollide kirjeldused

Kontrollid

Kohustuslike elementide kontroll

Kohustuslikud elemendid on kirjeldatud peatükis “Liidestusjuhend”.

Lisaks valideeritakse, et asutuste registrikoodid vastaksid nõuetele ehk oleksid 8-kohalised araabia numbrid.

Küsides rolli patient, patient-limited, legal-representative, consent-representative või consent-representative-limited kontrollitakse patsiendi isikukoodi olemasolu. Rollide patient ja patient-limited peab patsiendi isikukood vastama kasutaja isikukoodiga. Teistel juhtudel peab erinema.

Asutuste valideerimine

Esmase asutuse kood leitakse päringu kehast organization väljalt, kus valideeritakse, et on sama (kui eksisteerib) x-road-client päisest member code väljaga. Viimane vastab X-Road Message Protocol For rest#Use of HTTP headers kirjeldatud formaadile.

Antud koodi alusel kontrollitakse MEDRE registrist, kas asutusel on kehtiv tegevusluba.
Kui päringu sisendis eksisteerib represented_party väljal registrikood, siis kontrollitakse kas antud asutus on aktiivne TAM registris.

Kasutaja seos tervishoiuteenuse osutajaga (TTO)

Kui soovitakse tervishoiutöötaja rolli, siis kontrollitakse kas kasutajal on kehtiv sissekanne TAM registris isikukoodi alusel. TAM vastusest leitakse isiku seosed TTO-dega ning leitakse vaste.

  • Tervishoiutöötajad (arst, hambaarst, õde, ämmaemand) ja proviisor, farmatseut on MEDREsse registreeritud.
  • Tervishoiuteenuse osutamisel osalevaid isikuid ja tervishoiutöötajaga võrdsustatud isikuid (spetsialistid jne) ei registreerita MEDREsse TTKS § 27 tähenduses, vaid nende andmed jõuavad sinna tegevusloa taotluse või tööandja esitatava tegevusloa teatise kaudu.

TÖR töösuhte kontroll

Töösuhte kontrollimiseks teostatakse TÖR registri päring, mis tagastab aktiivsed töösuhted. Kontrollitakse, et päringu asutuse registrikood esineb töösuhetes.

Esindatavust kirjeldav joonis

Patsiendi ja tema seaduslike esindajate info tuleb Rahvastikuregistrist ning täieõiguslike usaldusisikute info tervise infosüsteemi tabelist NRDB_CONSENT

EsindatavusEestkostjaFüüsiline isikEsindajaTäieõiguslikVaatamisõiguslikVaatamisõiguslik ja retseptiõiguslikRetseptiõiguslik
Määratud teovõimetuse puhul kohtu (riigi) poolt ja andmed tulevad Rahvastikuregistrist!
Määratud teovõimetuse puhul ko...
Patsiendi enda määratud esindaja Terviseportaalis
Patsiendi enda määratud esindaj...
PatsientMuutmisõigusega patsient ehk täieõiguslikVaatamisõigusega patsient (alaealine või piiratud teovõimelisusega)Juriidiline isikKOV
Text is not SVG - cannot display
Viimati uuendatud 4.03.2025