FHI har laget eksempelkode som viser hvordan en integrasjon mot Legemiddelregisteret kan utvikles. Eksempelkoden er tilgjengelig i både C# og PowerShell, og demonstrerer de viktigste funksjonene for sikker dataoverføring til registeret.
Du finner eksempelkoden her:
For å få tilgang til API-et for overføring av data kreves det at avsendersystemets IP-adresse registreres i LMRs oversikt over hvitelistede adresser. Både enkeltadresser og adresseområder kan hvitelistes. Det er kun hvitelisting i produksjonsmiljøet.
Data som overføres til API-et skal være kryptert og signert (se SignertKryptertBundle).
APIet er beskyttet av Maskinporten og krever at klienter autentiserer seg med maskin-til-maskin autentisering.
For å få tilgang:
https://sjolvbetjening.test.samarbeid.digdir.no/)
fhi:lmr/fhirmottak.apihttps://github.com/Altinn/altinn-apiclient-maskinporten
Resource i JWT-assertion. Denne verdien skal være fhi:lmr/fhirmottak.Scope claimet må også legges til. Denne verdien korresponderer med navnet på scopet i selvbetjeningsportalen: fhi:lmr/fhirmottak.apiInstitusjoner som skal overføre data til Legemiddelregisteret, må følge den definerte protokollen. Protokollen beskriver krav til overføringsfrekvens, datastruktur og sikkerhet. Du finner mer informasjon her: Protokoll for overføring av data.
For å bygge en samling med data som skal overføres må det lages en LegemiddelregisterBundle. Dette er en spesialisert FHIR Bundle-profil utviklet for innsending av data til Legemiddelregisteret. Den er begrenset til transaction-type bundles og tillater kun POST-operasjoner, noe som sikrer konsistent datahåndtering og sporbarhet. Bundlen kan kun inneholde spesifikke ressurstyper som er relevante for Legemiddelregisteret: Pasient, Helsepersonell, Legemiddel, LegemiddelAdministrasjon, Diagnose, Institusjonsopphold, Legemiddelrekvirering, Organisasjon.
Ved overføring av data skal det lages en SignertKryptertBundle, som sikrer både kryptering og signering av innholdet. Denne prosessen innebærer å komprimere, kryptere og signere en FHIR-basert LegemiddelregisterBundle før den sendes til API-et. Les mer om hvordan du oppretter en SignertKryptertBundle i denne veiledningen.
URL til Legemiddelregisterets API:
For testing av integrasjonen er det tilgjengelig to dedikerte valideringsendepunkter. Disse lagrer ingen data og er kun tilgjengelig i testmiljøet.
Validering av FHIR-bundle:
/fhirmottak/v1/validateLegemiddelregisterBundle - Validerer innholdet i en FHIR-bundle mot LMDI-spesifikasjonen. Endepunktet forventer å motta en usignert og ukryptert FHIR-bundle i JSON-format. Krever ikke autentisering. Returnerer valideringsresultat som OperationOutcome med status 200 (gyldig) eller 400 (ugyldig).Validering av signert og kryptert bundle:
/fhirmottak/v1/validate - Validerer at signering og kryptering er utført korrekt, samt at innholdet i den krypterte FHIR-bundelen er i henhold til LMDI-spesifikasjonen. Endepunktet forventer å motta en signert og kryptert bundle. Data valideres men lagres ikke. Krever Maskinporten-autentisering. Returnerer status 200 (gyldig) eller 400 (ugyldig).API-et returnerer følgende HTTP-statuskoder:
200 OK
/fhirmottak/v1: Meldingen er validert og lagret i databasen/fhirmottak/v1/validate: Meldingen er validert men ikke lagret/fhirmottak/v1/validateLegemiddelregisterBundle: Returnerer OperationOutcome som bekrefter at FHIR-bundelen er gyldig400 Bad Request
/fhirmottak/v1 og /fhirmottak/v1/validate:
/fhirmottak/v1/validate)500 Internal Server Error