Skip to content

Latest commit

 

History

History
105 lines (79 loc) · 5.2 KB

readme.md

File metadata and controls

105 lines (79 loc) · 5.2 KB

Build and deploy ebms-provider

eMottak ebXML

Dette prosjektet håndterer meldinger mottatt på ebXML-standarden.

Prosjektet består av fire hovedmoduler for behandling av ebXML-meldinger.

  • EbMS Provider
  • EbMS Payload behandling
  • CPA Repo
  • EbMS Send In

I tillegg er det en modul for asynkron trafikk som lytter på epost, og router meldinger til ebMS-Provider for behandling.

  • SMTP-Listener

EbMS Provider

Selve motoren i ebMS-håndteringen. Det er her ebMS-spesifikasjonen er implementert. Validerer ebXML-konvolutten, pakker ut fagmeldingen og sender den til ebMS-payload.

EbMS Payload

Behandling av fagmeldingene som er pakket inn i ebXML. Mottar meldinger fra ebMS-provider, og validerer at innholdet er en korrekt fagmelding og er klar for videreformidling til fagsystem.

CPA Repo

Holder på alle godkjente CPAer. Mottar ebXML-header informasjon fra ebMS-provider, og validerer innholdet mot relevant CPA.

EbMS Send In

Denne tjenesten har ansvaret for å route fagmeldingene til og fra fagsystemene. På vei inn mottar den ferdigbehandlede fagmeldinger som routes videre til riktig fagsystem. På vei ut mottar den fagmeldinger fra fagsystemene, og router dem videre til EbMS provider som validerer, pakker og sender ut meldingene.

SMTP Listener

Liten modul som henter eposter fra definert innboks, og router meldingene videre til ebMS-Provider. Trigges av periodisk NAISJob, og leser alle mail i innboksen ved aktivering.

Utvikling

Teknologi

Alle modulene kjører som selvstendig applikasjoner, og er bygd opp av følgende teknologier

  • Kotlin
  • Ktor
  • Gradle

Avhengigheter

Avhengigheter og relasjoner til andre repoer i teamet

Bygg prosjektet

For å bygge prosjektet brukes gradle.

./gradlew build

Noen av testene bruker testcontainers for å bygge opp et mer komplett kjøretidsmiljø. Disse er avhengig av et fungerende docker miljø. For eksempel docker eller colima på mac.

Hvis du har en mac som bruker de nyere "M"-chipene (eks. M3) vil du møte på problemer når du spinner opp testcontainers i dette prosjektet. Dette gjelder containerne for Oracle DB (gvenzl/oracle-xe:21-slim-faststart) når man bruker docker desktop. For å unngå dette må man heller bruke Colima. Under er steg for hvordan:

  1. Innstaller Colima.
  2. Sett DOCKER_HOST env-variabel til Colima (mulig dette må reverseres når man bygger andre prosjekter).
    • export DOCKER_HOST="unix://${HOME}/.colima/default/docker.sock"
  3. Start Colima med x86_64.
    • colima start
  4. Bygg prosjekt/kjør tester.

Oppsett av Github PAT

For å kunne dra inn de riktige dependenciene, må man opprette en github PAT. Denne trenger rettigheten read:packages og må autoriseres for tilgang til organisasjonen navikt. img

Denne PATen må settes som en environment variable, for eksempel globalt i ditt foretrukne shell eller IDE.

export GITHUB_TOKEN=ghp_abcdefghijklmnopqrstuvwxyzABCD012345

ebXML standarder og dokumentasjon

Målet for prosjektet er å være i tråd med spesifikasjon fra e-helse.

ebXML hos e-helse

Les dokumentasjon fra e-helse for deres tolkning av ebXML-standarden.

ebXML hos Oasis

Oasis står bak ebXML-standarden, og spesifikasjonen er dokumentert i detalj på følgende sider:

Har du spørsmål? 😵

Vi er hovedsakelig tilgjengelige på slack i følgende kanal:

Alle spørsmål relatert til dette prosjektet er velkomne. Alternativt setter vi også pris på pull requests og issues direkte her på Github.