Medisinkabinett
Medisinkabinettintegrasjoner trenger å vite hvilke pasienter som er relevante for et fysisk medisinkabinett. I Open Aidn løses dette ved å konfigurere hvert kabinett med avdelings-ID-en som representerer plasseringen, og deretter søke i EpisodeOfCare etter omsorgsepisoder som håndteres av den avdelingen.
Scenario
Leverandøren drifter ett eller flere medisinkabinett for en kommune. Hvert kabinett er installert på en fysisk plassering, for eksempel en avdeling eller post. Leverandørsystemet henter jevnlig pasientene som er relevante for plasseringen, slik at legemiddelarbeidsflyter kan avgrenses til riktig omsorgskontekst.
Påkrevd oppsett
| Konfigurasjon | Eier | Beskrivelse |
|---|---|---|
| OAuth-klient | Kommune eller Aidn-administrator | Klient konfigurert for leverandør og miljø. Se Kommuneoppsett. |
| Klientens privatnøkkel | Leverandør | Privatnøkkel som hører til den registrerte offentlige nøkkelen. Leverandøren kan generere nøkkelparet selv, eller administrasjonsportalen kan generere det under klientoppsettet. Lagres sikkert. |
| Scope | Kommune eller Aidn-administrator | Klienten trenger episodeofcare.search. Legg bare til episodeofcare.read hvis integrasjonen må lese enkeltressurser med ID. |
| Avdelings-ID | Kommune | Avdelings-ID-en som representerer kabinettets fysiske plassering. |
| Integrasjon aktivert for kommunen | Kommune eller Aidn-administrator | Medisinkabinettintegrasjonen må aktiveres før forespørsler tillates mot kommunen. |
Dataflyt
sequenceDiagram
participant Admin as Kommunal administrator
participant Vendor as Kabinettleverandør
participant IdP as Aidn identity provider
participant FHIR as Open Aidn FHIR API
Admin->>Admin: Aktiver integrasjon for kommunen
Admin->>Admin: Opprett OAuth-klient og velg scopes
Admin->>Vendor: Del client ID, key ID, miljø og avdelings-ID
Vendor->>IdP: Be om access token med private_key_jwt
IdP-->>Vendor: Access token med godkjente scopes
Vendor->>FHIR: Søk EpisodeOfCare med avdelings-ID
FHIR-->>Vendor: FHIR Bundle med matchende omsorgsepisoder og eventuelle pasienter
Hent pasienter for et kabinett
Bruk konfigurert avdelings-ID som søkeparameteren organization.
GET /EpisodeOfCare/_search?organization=<DEPARTMENT_ID>&_include=EpisodeOfCare:patient HTTP/1.1
Host: <OPEN_AIDN_FHIR_HOST>
Accept: application/fhir+json
Authorization: Bearer <ACCESS_TOKEN>
Responsen er en FHIR Bundle:
EpisodeOfCareentries medsearch.mode = matchrepresenterer omsorgsepisoder for konfigurert avdeling.Patiententries medsearch.mode = includereturneres når_include=EpisodeOfCare:patienter brukt.EpisodeOfCare.patient.referencepeker til matchendePatient-ressurs.EpisodeOfCare.managingOrganization.identifier.valueinneholder avdelings-ID-en som brukes for plasseringen.
Filtrering på tjenestetype
Hvis integrasjonen bare skal inkludere bestemte tjenestetyper, kan du legge til ett eller flere type-parametre. Dagens verdier mappes til IPLOS-koder der det er relevant.
GET /EpisodeOfCare/_search?organization=<DEPARTMENT_ID>&type=<IPLOS_CODE>&_include=EpisodeOfCare:patient HTTP/1.1
Host: <OPEN_AIDN_FHIR_HOST>
Accept: application/fhir+json
Authorization: Bearer <ACCESS_TOKEN>
Bruk bare tjenestetypefiltrering når dette er avtalt under oppstart. Hvis type ikke sendes inn, filtrerer ikke Open Aidn på tjenestetype.
Sjekkliste før produksjonssetting
Valider oppsettet med kommunen før produksjonssetting:
- Konfigurert avdelings-ID representerer kabinettets fysiske plassering.
- OAuth-klienten tilhører riktig kommune og miljø.
- Klienten kan be om
episodeofcare.search. - Søket returnerer bare pasienter som forventes for konfigurert avdeling.
- Leverandøren håndterer tomme søkeresultater uten å behandle dem som feil.
- Nøkkelrotasjon og kontaktpunkter ved hendelser er avtalt.