Introduktion
Formål
Dette dokument beskriver hvordan man kommer i gang med at tilpasse eller videreudvikle EMR - EHMI MeddelelsesRegistrering.
Læsevejledning
Læser forventes at have kendskab til Java softwareudvikling med anvendelse af Maven, konfiguration af WildFly og brug af docker-compose.
Komponentens struktur
Selve komponenten er delt op i følgende moduler:
- msh_common: Fælles kode, bl.a. til status- og alarm-endpoints og oprettelse af http-klienter.
- msh_integration_tests: Integrationstests mod en kørende service. Lige pt. understøttes kun localhost, da der afventes installation på NSPs testmiljøer.
- msh_services: Selve service-koden, inklusiv baggrundsjobs, DAO'er, EHMI-besked-generering og Domibus-service (klienten til Domibus ligger under "msh_integrations").
- msh_adapter: Web-modul der udstiller snitflader til at starte baggrundsjobs, aflæsning af status'er og alarm'er samt indlæsning af konfiguration.
- msh_integrations: Integrationer til DROS, Domibus og EDS-service.
- msh_schema: Domibus- og EHMI-skemaer til generering af Java-kode.
Komponenten indeholder følgende integrationer, som alle ligger under "msh_integrations":
- Domibus-integration, baseret på WSDL-fil fra "msh_schema" og jakarta.xml.ws.
- EDS-integration som er FHIR-baseret.
- DROS-integration baseret på IHE-frameworket og Apache CXF.
Opsætning af udviklingsmiljø
Projektet ligger som nspop git-repository på følgende adresse:
Som en del af projektet, leveres der også en konfiguration af Domibus, som skal anvendes af NSP. Den findes også i git:
EMR er udviklet i java 21 og kan bygges med.
mvn clean install
Som en del af bygget afvikles der unit tests.
Afvikling
Maven bygger war-filerne, som kan deployes med docker compose. Dette gøres lokalt med kommandoen:
docker-compose -f compose/development/docker-compose.yaml up --build
Herefter vil EMR services være tilgængelig under http://localhost:8092/msh-adapter/.
Det er muligt at sætte en remote debugger op på port 5056.
Integrationstests
Integrationstesten kan afvikles op imod et kørende system på localhost med følgende kommando:
mvn verify -pl msh_integration_tests -Pintegration-test
Pt. er det et udestående omkring at definerer profiler, så testen kan køre mod udviklingsmiljøerne på test1 og test2, da disse i skrivende stund endnu ikke er deployed.
Projektstruktur
For nærmeste beskrivelse af projektets struktur og opbygning, se Design- og Arkitekturbeskrivelsen.
Database
Databasemodellen styres ved hjælp af liquibase. Det betyder, at når der skal laves ændringer til databasen, så må man ikke rette i de eksisterende skemafiler. I stedet skal der laves nye filer, der beskriver ændringerne.