Introduktion

Formål

Formålet med dette dokument er at beskrive, hvordan et udviklingsmiljø til videreudvikling af  SXA (Labsvar) Adaptere, kan sættes op, samt hvordan koden bygges, deployes og testes.

Først beskrives de softwaremæssige krav, der er til udviklingsmiljøet, herunder hvordan kode hentes og bygges. Dernæst beskrives deploymentmiljøet.

Læsevejledning

Læser forventes at have kendskab til Java softwareudvikling med anvendelse af Maven, Docker og docker-compose.

Hvor der i teksten er angivet <component base> refereres til topniveaufolderen for kildekoden for komponenten.

Opsætning af udviklingsmiljø

I det følgende antages at koden er hentet fra SVN: https://svn.nspop.dk/svn/components/labsvar/

Krav til software

SXA Adaptere deployeres vha. docker, hvorfor de alle baserer sig på NSP platformens base image, hvori der findes nødvendigt software til afvikling.

Derudover er der krav til de anvendte udviklingsværktøjer:

Kildekodens struktur og design

Modulopbygning

Kildekoden bygges vha Apache Maven, og kildekoden er struktureret som Maven moduler. Følgende moduler findes i  SXA Adaptere:

ModulBeskrivelse
SXA Lab Report Service StubStub til at emulere en Svareksponeringsservice backend. Pakkes som en Wildfly applikation (WAR)
SXA Provider CommonFælleskode, der benyttes både af SXA Document Metadata Provider og SXA Document Provider
SXA Document Metadata Provider

Modul til implementation af dokumentsøgning (ITI-18) - dvs "registry-delen" af  SXA Adaptere. Modulet har til ansvar at opbygge dokumentmetadata og reagerer på søgeparametre givet ved forespørgsel på dokumentmetadata dog uden at persistere data. I stedet dannes metadata tilpasset patienten.

SXA Document Metadata Provider WarPakker AO Document Providere som en Wildfly applikation (WAR)
SXA Document Metadata Provider Integration TestIntegrationstests til SXA Document Metadata Provider. Modulet har til ansvar at fremfinde metadatadata.
SXA Document ProviderModul til implementation af dokumenthentning (ITI-43) - dvs "repository-delen" af SXA Adaptere. Modulet har til ansvar at hente dokumenter indeholdende laboratoriesvar fra Svareksponeringsservice backend.
SXA Document Provider WarPakker SXA Document Provider som en Wildfly applikation (WAR)
SXA Document Provider Integration TestIntegrationstests til SXA Document Provider
SXA Document Sharing Integration TestIntegrationstests for SXA Adaptere. Tester fremsøgning af dokumentreferencer (ITI-18) samt afhentning af dokumenter (ITI-43)

Services

Ovenstående modulliste opsumerer kodens struktur.

Tre af modulerne producerer installerbare services (WAR filer).

Det drejer sig om følgende:

Byg af AO XDS Adaptere

Man skal bruge Apache Maven til at bygge NAS, hvilket gøres ved at køre kommandoen

mvn package


Efter byg kan WAR filer findes her:

./appointmentsstub/appointmentsstub/target/appointmentsstub.war

./xdswrappers/documentmetadataprovider/documentmetadataprovider-war/target/ao-documentmetadataprovider.war

./xdswrappers/documentprovider/documentprovider-war/target/ao-documentprovider.war

Disse tre WAR filer svarer til de beskrevne services i forgående afsnit.

Deployering af AO XDS Adaptere

Efter byg kan det være nyttigt at lave en deployering af de genererede services (WAR).

Til udviklingsformål er der udarbejdet en mængde docker-compose setups. Disse ligger i

./compose/development/docker-compose.<conf>.<apd-version>.yml

conf angiver, hviklen konfiguration man ønsker at starte (rn = Region Nord, rm = Region Midt).

apd-version angiver, hvilken version af Medcoms profilering af aftaledokumenter (se), der skal anvendes (v11 = version 1.1, v20 = version 2.0).

Det relevante docker-compose setup startes med følgende kommando:

./compose/development/docker-compose -f docker-compose.<conf>.<apd-version>.yml up --build

Docker-compose setup'et startere både AO XDS Adapter services samt bagvedliggende database service og mock Bookplan service. Når alle services er startet kan WSDL for de deployede AO XDS Adapter services nåes på følgende URL'er:

http://localhost:8060/ao-documentprovider/services?wsdl

http://localhost:8060/ao-documentmetadataprovider/services?wsdl

Test af AO XDS Adaptere

Der er udviklet både unit tests og integrationstests til AO XDS Adaptere. Struktur og afvikling af  disse beskrives i det følgende.

Unit tests

Der er udviklet en række unit tests til de forskellige moduler i AO XDS Adaptere.

Maven sørger for afvikling af unit tests som en del af byg af AO XDS Adaptere.

Unit tests kan også køres efter et byg med kommandoen:

mvn test

Hvis man ønsker at få opsamlet testresultaterne (og beregnede test coverage) i en samlet rapport vha Maven plugin'et jacoco, kan følgende kommando anvendes:

mvn verify

Denne kommando afvikler unit tests og opsamler test coverage rapporten i følgende directory:

./testreport/target/site/jacoco-aggregate/

Rapporten kan med fordel åbnes i en browser, da den er genereret i både xml og html format.

Integrations tests

Der er udviklet en række integrationstests til AO XDS Adapter.

Disse kan være nyttige at afvikle på udviklermaskinen.

Afviklingen forudsætter, at AO XDS Adaptere er bygget og deployeret (ved opstart af relevant docker-compose setup) som beskrevet ovenfor.

TODO