Code Monkey home page Code Monkey logo

syfoinntektsmelding's Introduction

Syfoinntektsmelding

Actions Status
Quality Gate Status Coverage Security Rating Known Vulnerabilities

Formål

Applikasjonen tar imot innkommende inntektsmeldinger for sykepenger, journalfører dette og oppretter oppgaver i Gosys for behandlende enhet. Dersom behandlede enhet ikke er funnet blir det opprettet en fordelingsoppgave istedet. Andre applikasjoner kan be om utsettelse eller ignorering av opprettelser av disse oppgavene.

Oversikt

image

Meldingsinnhold om JoarkHendelse

Illustrasjonen viser innholdet i kafka meldingen (InngaaendeJournalpostDTO).

image

Detaljer om inntektsmelding

Illustrasjonen viser inntektsmeldingen i sin helhet

image

Robusthet

Applikasjonen er laget med tanke på aldri miste noen inntektsmeldinger. Dette er løst med disse tiltakene:

Melding om ny inntekstmelding

JoarkHendelseConsumer lytter på en Kafka kø. Straks den får nyss om inntektsmelding blir kafka-meldingen lagret i databasen og køet opp til behandling av de periodiserte jobbene.

Periodiserte jobber (køer)

BakgrunnsjobbService kjører to ulike jobber med faste tidsintervaller. Hver av de henter ventende oppgaver fra køen (databasen). Oppgaver som feiler sendes tilbake til køen med en utsettelse. Dersom de feiler for mange ganger blir de stoppet.

Behandling

JoarkInntektsmeldingHendelseProsessor henter ut inntektsmelding fra køen og sjekker hvor lenge den har ligget ubehandlet i køen. Dersom tidsfristen er nådd opprettes det en fordelingsoppgave i Gosys og inntektsmeldingen blir markert som ferdigbehandlet og tatt ut av køen. Hvis ikke ferdigstilles journalposten for inntektsmeldingen det gjelder og fjernes fra denne køen. I tillegg blir det opprettet en jobb i oppgavekøen under. Til slutt blir inntektsmeldingen lagt på en Kafka topic.

Oppgave

FeiletUtsattOppgaveMeldingProsessor henter ut oppgaver fra køen og sjekker tilstanden. Dersom tilstanden er satt i å opprette blir det opprettet en Gosys-oppgave.

Varsling om oppgave status

UtsattOppgaveConsumer lytter på en Kafka kø om det er oppgaver som skal forkastes eller utsettes. Oppgaver som blir funnet her endrer tilstanden i køen for Oppgave i avsnittet over.

Utvikling

Kjøre applikasjonen lokalt

Applikasjonen er avhengig av mange tjenester og det enkleste er å starte den inne fra en tynnklient hvor tjenestene er tilgjengelige.

Applikasjonen må kjøres som en spring-boot applikasjon med local som profil. For å kunne starte så MÅ du sette tre environment variabler ellers vil den ikke starte. Det er filen application-local.properties som bestemmer hvilke tjenster som blir benytter lokalt. For å kunne kjøre må du påse at alle disse miljø innstillingene er riktig og fylle ut innstillinger for passord da de nå er satt til dummy.

Påkrevde miljøvariabler

SECURITYTOKENSERVICE_URL=dummy
SRVSYFOINNTEKTSMELDING_USERNAME=dummy
SRVSYFOINNTEKTSMELDING_PASSWORD=dummy

Ktlint

Prosjektet bruker en Ktlint-plugin for Gradle som håndhever kodestilregler. Nyttige kommandoer er:

  • gradle ktlintCheck (sier ifra om brudd på kodestilreglene)
  • gradle ktlintFormat (retter opp i brudd på kodestilreglene)

Det anbefales hver utvikler å konfigurere en pre-commit hook som automatisk sjekker endrede filer for brudd på kodestilreglene. Alternativt kan man sette opp automatisk formattering. Kommandoene for dette er:

  • gradle addKtlintCheckGitPreCommitHook (automatisk sjekk)
  • gradle addKtlintFormatGitPreCommitHook (automatisk formattering)

Les mer om pluginen her.

Database

Applikasjonen bruker Postgres database med JPA grensesnitt OG et JDBC grensesnitt. Skjermbildet nedenfor viser samtlige tabeller som er brukt. Flyway blir brukt til versjonering i databasen. Passord mot databasen ligger i vault.

image

For NAV-ansatte

Interne henvendelser kan sendes via Slack i kanalen #helse-arbeidsgiver

syfoinntektsmelding's People

Contributors

laukvik avatar junnae avatar b162214 avatar knutnyg avatar sorvoja avatar dependabot[bot] avatar martinmekk avatar maccyber avatar mortenbyhring avatar bjerga avatar tiafiring avatar andersostby avatar stefanengelien-nav avatar alpet avatar joakibj avatar sillerud avatar majahelene avatar jonashas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.