Inera Core Implementation Guide
0.2.0 - ci-build
Sweden
Inera Core Implementation Guide - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Funktionen Tillgänglig patient (TGP) ska bidra till att:
I en modern FHIR/SMART-baserad arkitektur vill vi uppnå samma integritetsstärkande effekt som dagens TGP, men:
Detta avsnitt beskriver två arkitekturalternativ:
Detaljer kring loggning (AuditEvent), juridik och PDL ligger utanför denna sida och tas upp i särskilda vägledningar.
I detta alternativ ses NPÖ (eller motsvarande sammanhållen visning) som en SMART-app som startas direkt från det lokala journalsystemet. Idén är:
Om användaren redan har öppnat en journal för patienten i EHR:et, så är kravet ”tillgänglig patient” uppfyllt.
EHR:et intygar detta genom att ge NPÖ ett access-token med patientkontext.
launch/patient, patient-claim).patient = <lokalt patient-id eller personnummer>tenant / organization = HSA-id för vårdenhet/vårdgivarepatient/*.rs.```plantuml @startuml title TGP via SMART EHR Launch (NPÖ som app)
actor "Vårdanvändare" as User participant "Lokalt journalsystem\n(EHR + Authz Server)" as EHR participant "NPÖ-klient\n(SMART-app)" as NPO participant "NPÖ/FHIR-hub\n(FHIR + spärr/Consent)" as Hub participant "Andra vårdgivare\n(FHIR/TKB-källor)" as Sources
User -> EHR : Öppna patientjournal (P)\n(lokal behörighetskontroll) activate EHR
User -> EHR : Klicka 'Öppna NPÖ' EHR -> EHR : Kontrollera att P har journal\n(TGP-krav uppfyllt lokalt) EHR -> EHR : Logga TGP-beslut\n(AuditEvent lokalt)
EHR -> NPO : Starta SMART-app\n(OIDC auth + token med patient=P,\n tenant=Vårdenhet X) deactivate EHR
activate NPO NPO -> Hub : FHIR-anrop för P\n(inkl. token från EHR) activate Hub
Hub -> Hub : Kontrollera egna policyer\n(spärr, samtycke, loggning) Hub -> Sources : Hämta journaluppgifter för P\n(via FHIR/TKB-adaptrar) Sources –> Hub : Kliniska data (FHIR/TKB) Hub –> NPO : Resultat (FHIR Bundle)
deactivate Hub NPO –> User : Visa NPÖ-data för P deactivate NPO
@enduml
I detta alternativ finns en separat TGP-komponent per v�rdgivare, men utan centralt index. NP�/FHIR-hub:
Varje v�rdgivare exponerar antingen:
tgp=true f�r given patient.NP�/FHIR-hub kr�ver att:
innan den sl�pper igenom anrop mot andra v�rdgivare.
Loggning kan ske b�de i TGP-komponenten och i NP�/FHIR-hub.
Det finns tv� n�rliggande varianter:
Token-baserat (TGP som claim)
tgp=truetgp_patient=<personnummer>tgp_organization=<HSA-id>.API-baserat (NP� anropar TGP direkt)
GET /tgp?patientId=P&careUnit=X``plantuml @startuml title TGP med separat TGP-API och token-claim
actor "V�rdanv�ndare" as User participant "Klient\n(NP� UI / Portal)" as Client participant "NP�/FHIR-hub" as Hub participant "TGP-tj�nst\nhos v�rdgivare X" as TGP participant "Auth/IdP\n(v�rdgivare X)" as IdP participant "Andra v�rdgivare\n(FHIR/TKB-k�llor)" as Sources
User -> Client : Logga in och v�lj patient P Client -> Hub : F�rfr�gan om NP�-data f�r P
activate Hub Hub -> IdP : Verifiera anv�ndare & v�rdgivare IdP –> Hub : JWT/OAuth-token\n(ev. med tgp-claim=false/ej satt)
' Steg 1: Kontrollera TGP Hub -> TGP : Kontrollera 'Tillg�nglig patient'\n(P, v�rdgivare/v�rdenhet X) activate TGP TGP -> TGP : Kontroll i lokalt journalsystem\n(finns journal/relation f�r P?) TGP -> TGP : Logga TGP-beslut\n(AuditEvent lokalt) TGP –> Hub : Svar: JA / NEJ deactivate TGP
Hub -> Hub : Om NEJ: avbryt och returnera\nOperationOutcome 'ingen lokal journal' Hub –> Client : (NEJ) Visa felmeddelande\n"Patient ej tillg�nglig" deactivate Hub
== Vid JA ==
activate Hub Hub -> Hub : Markera TGP-uppfyllt\n(ev. uppdatera internt token/claim) Hub -> Sources : H�mta kliniska data f�r P\n(via FHIR/TKB) Sources –> Hub : Kliniska data (FHIR) Hub –> Client : (JA) Visa NP�-data f�r P deactivate Hub
@enduml ``
| Aspekt | Alternativ 1 NP� som SMART-app | Alternativ 2 NP�/FHIR-hub + TGP-API |
|---|---|---|
| Centralt index kr�vs? | Nej | Nej (kan kompletteras om man vill) |
| Var g�rs TGP-bed�mningen? | I EHR/IdP f�re SMART-launch | I separat TGP-tj�nst/IdP |
| Startpunkt f�r NP� | Fr�n �ppnad journal i EHR | Fr�n EHR eller frist�ende portal |
| Token/claim-hantering | SMART patientkontext i launch-token | Eget tgp-claim eller API-svar |
| Loggning | Prim�rt lokalt i EHR/IdP | B�de i TGP-komponent och NP�-hub |
| Komplexitet i NP�-hub | L�gre (f�rlitar sig p� SMART) | H�gre (m�ste tala TGP-API) |
F�r renodlade FHIR/SMART-milj�er och nya klienter:
Alternativ 1 (NP� som SMART-app) �r arkitektoniskt renast och kr�ver minst speciallogik.
F�r blandade milj�er med flera klienttyper, frist�ende portaler och behov av en gemensam TGP-policy f�r m�nga tj�nster:
Alternativ 2 (NP�/FHIR-hub med TGP-API) ger st�rst flexibilitet och kan samexistera med befintlig TGP-implementering.
B�da alternativen uppfyller grundid�n med TGP:
Att styrka och logga att det finns en journalrelation hos den v�rdgivare/v�rdenhet som beg�r uppgifter, innan sammanh�llen journalf�ring initieras.
De kan dessutom kombineras t.ex. genom att NP� b�de kan startas via SMART-launch (implicit TGP) och vid behov kan verifiera TGP via ett API i s�rskilda, frist�ende anv�ndningsfall.