Note
Dette prosjektet er arkivert inntil vidare utviklingsarbeid eventuelt blir aktuelt igjen.
- Node.js >= 18.x.x
- npm >= 9.x.x
- @Navikt packages authenticated with GitHub Packages Click here for guide
Lag en .env
fil i roten av prosjektet med følgende variabler:
FHIR_BASE_URL=https://api.dips.no/fhir
FHIR_SUBSCRIPTION_KEY
(can be retrieved OPEN DIPS Profile)HELSEOPPLYSNINGER_SERVER_BASE_URL=https://helseserver.intern.dev.nav.no
HELSEOPPLYSNINGER_SERVER_SCOPE=api://dev-gcp.helseopplysninger.server-helse/.default
AZURE_APP_CLIENT_ID=k9-legeerklaering-on-fhir
AZURE_APP_CLIENT_SECRET=some-secret
AZURE_APP_WELL_KNOWN_URL=http://localhost:8080/default/.well-known/openid-configuration
(well-known URL for mocked Azure AD-containeren i docker-compose)
Hvis du vil utføre frontend-utvikling med en falsk helseopplysninger-backend i stedet for å måtte koble til en ekte
tjeneste må du sette FAKE_HELSEOPPLYSNINGER=fake1
i .env
-filen. Dette unngår behovet for å kjøre docker-compose med
mocked Azure AD-container.
npm ci
npm run dev
Tjenesten vises på http://localhost:3000.
docker build -t k9-legeerklaering-on-fihr .
docker run -p 8080:8080 k9-legeerklaering-on-fihr:latest
Kjør applikasjonen med docker-compose for å få med mock azure ad.
docker compose -f docker-compose.yaml up --build
Visualisert løsningsbeskrivelse som beskrevet i Implementasjonsguide SMART App Launch Framework
sequenceDiagram
box DarkBlue EPJ
participant EPJ as EPJ
participant Browser as Integrert Nettleser
participant AuthServer as Autorisasjonsserver
participant FHIR as FHIR API
end
box DarkRed NAV
participant App as k9-legeerklaering-on-fhir-klient
participant AppBackend as k9-legeerklaering-on-fhir-server
end
EPJ ->> Browser: Start webapplikasjon med SMART App Launch Framework
Browser ->> EPJ: Opprett LaunchContext (inkl. patient, practitioner, encounter)
EPJ ->> Browser: Returner LaunchContext ID
Browser ->> App: Initier launch-sekvens (iss, launch)
App ->> AuthServer: Forespør /metadata/ eller .well-known/smart-configuration.json
AuthServer ->> App: Returner URLs til authorize og token endepunkter
App ->> AuthServer: Forespørsel mot authorize endepunkt med nødvendige parametere
AuthServer ->> EPJ: Sjekk autorisasjon (lokale tilgangsregler, brukers samtykke)
EPJ ->> AuthServer: Autorisasjonsavgjørelse
AuthServer ->> App: Returner autorisasjonskode eller feilkode/-respons
App ->> AuthServer: Veksle inn autorisasjonskoden for tilgangstoken
AuthServer ->> App: Returner tilgangstoken (og potensielle andre tokens som id_token, refresh_token)
critical FHIR API kall med api-key proxy
App -->> AppBackend: Forespørsler for helsedata med tilgangstoken
AppBackend -->> FHIR: Forespørsler for helsedata med tilgangstoken
FHIR -->> AppBackend: Returner helsedata basert på token og forespørsel
AppBackend -->> App: Returner helsedata basert på token og forespørsel
end
critical Direkte kall til FHIR API
App ->> FHIR: Forespørsler for helsedata med tilgangstoken
FHIR ->> App: Returner helsedata basert på token og forespørsel
end
Linje | Forklaring |
---|---|
----- | Alle kall til FHIR API får en api-nøkkel som hentes og legges på via k9-legeerklæring-on-fhir-server |
___ | Alle kall går direkte fra k9-legeerklæring-on-fhir-client til FHIR API |