Page History
| Navitabs | ||||
|---|---|---|---|---|
| ||||
Indhold
| Table of Contents |
|---|
Komponenter
Dette dokument dækker følgende komponenter på NSP, som sammen med Domibus NSP, EMH, som er en del af afEHMI MeddelelsesRegistrering(EMR)
...
Konfiguration
I folderen "compose/configuration" findes følgende relevante konfigurationsfiler, som indlæses når docker compose startes op:
| adapter.properties | Properties til EMH. |
| log4j2.properties | Opsætning af logning i MSH Adapter |
| msh-adapter-ds.xml | DataSource |
Properties i "adapter.properties"
Bemærk, nogle af default-værdierne herunder er forløbige indtil tingene falder mere på plads.
Properties til adapteren selv og Domibus-integrationen
Property | Beskrivelse | Default værdi |
|---|---|---|
| dk.nsp.msh.adapter.domibus.url.domibus.wsplugin | URL til Domibus WS plugin | http://domibus-nsp:8080/domibus/services/wsplugin |
| dk.nsp.msh.adapter.domibus.username | Brugernavn til Domibus | admin |
| dk.nsp.msh.adapter.domibus.password | Password til Domibus | 123456 |
| dk.nsp.msh.adapter.domibus.mpc | Domibus MPC (Message Partition Channel) | http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/defaultMPC |
| dk.nsp.msh.adapter.domibus.connectTimeout | HTTP connect timeout til Domibus (ms) | 60000 |
dk.nsp.msh.adapter.domibus.readTimeout | HTTP read timeout til Domibus (ms) | 60000 |
| dk.nsp.msh.adapter.domibus.chunkSize | Chunk-størrelse ved filoverførsel | 8192 |
| dk.nsp.msh.adapter.domibus.profile.serviceType | ebMS Service type; bruges i PMode-match | tc1 |
| dk.nsp.msh.adapter.domibus.profile.serviceValue | ebMS Service navn; bruges i PMode-match | bdx:noprocess |
| dk.nsp.msh.adapter.domibus.profile.action | ebMS Action; identificerer message-flow i PMode | TC1Leg1 |
| dk.nsp.msh.adapter.domibus.profile.fromRole | Rolle for afsender (From) i ebMS header | http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator |
| dk.nsp.msh.adapter.domibus.profile.toRole | Rolle for modtager (To) i ebMS header | http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder |
| dk.nsp.msh.adapter.domibus.profile.partyIdType | Identifier-scheme for PartyId | urn:oasis:names:tc:ebcore:partyid-type:unregistered |
| dk.nsp.msh.adapter.domibus.profile.originalSender | Business afsender (C1) i four-corner routing | urn:oasis:names:tc:ebcore:partyid-type:unregistered:C1 |
| dk.nsp.msh.adapter.domibus.profile.finalRecipient | Business modtager (C4) i four-corner routing | urn:oasis:names:tc:ebcore:partyid-type:unregistered:C4 |
| dk.nsp.msh.adapter.datasource.jndi | JNDI-navn på applikationens datasource | java:jboss/datasources/emr |
Properties til DROS-integrationen
Property | Beskrivelse | Default værdi |
|---|---|---|
| dk.nsp.msh.adapter.dros.client.endpoint | DROS ITI-41 endpoint | https://test2-cnsp.ekstern-test.nspop.dk:8443/dros_emr/iti41 |
| dk.nsp.msh.adapter.dros.sts.endpoint | STS endpoint til token | https://test2-cnsp.ekstern-test.nspop.dk:8443/sts/services/NewSecurityTokenService |
| dk.nsp.msh.adapter.dros.sts.organizationName | Organisation navn i STS | Sundhedsdatastyrelsen |
| dk.nsp.msh.adapter.dros.sts.organizationCode | Organisation CVR | 33257872 |
| dk.nsp.msh.adapter.dros.sts.keystorePath | Keystore til STS autentificering | NSP_Test_Service_Consumer_sds.p12 |
| dk.nsp.msh.adapter.dros.sts.keystorePassword | Password til STS keystore | Test1234 |
| dk.nsp.msh.adapter.dros.sts.systemName | Systemnavn i STS | EMR DROS Client |
| dk.nsp.msh.adapter.dros.homeCommunityId | DROS XDS homeCommunityId | urn:oid:1.2.208.176.43210.8.20 |
| dk.nsp.msh.adapter.dros.httpclient.maxTotalConnections | DROS Max samlede HTTP connections | 200 |
| dk.nsp.msh.adapter.dros.httpclient.defaultMaxConnectionsPerRoute | DROS Max connections pr. route | 20 |
| dk.nsp.msh.adapter.dros.httpclient.connectionTimeoutMs | DROS HTTP connect timeout (ms) | 2000 |
| dk.nsp.msh.adapter.dros.httpclient.socketTimeoutMs | DROS HTTP socket timeout (ms) | 5000 |
Properties til EDS-integrationen
Property | Beskrivelse | Default værdi |
|---|---|---|
| dk.nsp.msh.adapter.eds.authUrl | EDS Keycloak token endpoint | https://keycloak-test.nspop.dk/auth/realms/ehmi/protocol/openid-connect/token |
| dk.nsp.msh.adapter.eds.clientId | EDS Keycloak client id | 6c6969e9-1962-4e4b-804d-60ab60129ff7 |
| dk.nsp.msh.adapter.eds.keystoreFile | Keystore til EDS klient | NSP_Test_Service_Consumer_sds.p12 (bør hele kæden ikke være med i certifikatet til EDS?) |
| dk.nsp.msh.adapter.eds.keystorePassword | Password til EDS keystore | Test1234 |
| dk.nsp.msh.adapter.eds.endpoint | EDS FHIR endpoint | https://dk-ehmi-eds-service.t0.hosting.kitkube.dk/fhir |
| dk.nsp.msh.adapter.eds.apinfo.apId | Access Point ID | EMR-MSH-test-TEST2 |
| dk.nsp.msh.adapter.eds.apinfo.apIdentifier | Access Point identifier | EMR-MSH-test-TEST2 |
| dk.nsp.msh.adapter.eds.apinfo.apManufacturer | Producent af AP | Sundhedsdatastyrelsen |
| dk.nsp.msh.adapter.eds.apinfo.apDeviceName | Navn på AP device | EMR-MSH-test-TEST2 |
| dk.nsp.msh.adapter.eds.httpclient.maxTotalConnections | EDS max HTTP connections | 200 |
| dk.nsp.msh.adapter.eds.httpclient.defaultMaxConnectionsPerRoute | EDS max connections pr. route | 20 |
| dk.nsp.msh.adapter.eds.httpclient.connectionTimeoutMs | EDS HTTP connect timeout (ms) | 2000 |
| dk.nsp.msh.adapter.eds.httpclient.socketTimeoutMs | EDS HTTP socket timeout (ms) | 5000 |
Properties til de enkelte baggrundsjobs
| dk.nsp.msh.job.fetchjob.batchsize | Antal beskeder pr. fetch batch | 50 |
| dk.nsp.msh.job.fetchjob.desired.execution.duration | Ønsket køretid pr. fetch job | PT20S |
| dk.nsp.msh.job.savejob.batchsize | Antal beskeder pr. save batch | 50 |
| dk.nsp.msh.job.savejob.retryBatchSize | Batch størrelse ved retry | 500 |
| dk.nsp.msh.job.savejob.desired.execution.duration | Ønsket køretid pr. save job | PT20S |
| dk.nsp.msh.job.savejob.max.retries | Max antal retries | 3 |
| dk.nsp.msh.job.savejob.retry.backoff.delay | Delay mellem retries | PT5M |
| dk.nsp.msh.job.sendjob.batchsize | Antal beskeder pr. send batch | 50 |
| dk.nsp.msh.job.sendjob.retryBatchSize | Batch størrelse ved retry | 500 |
| dk.nsp.msh.job.sendjob.max.retries | Max antal retries | 3 |
| dk.nsp.msh.job.sendjob.retry.backoff.delay | Delay mellem retries | PT5M |
| dk.nsp.msh.job.sendjob.desired.execution.duration | Ønsket køretid pr. send job | PT20S |
| dk.nsp.msh.job.sendjob.domibus.nspPartyId | Domibus partyId ved afsendelse af kvitteringer | 0088:5790002515798 |
| dk.nsp.msh.job.cleanupjob.batchsize | Antal poster pr. cleanup batch | 500 |
| dk.nsp.msh.job.cleanupjob.desired.execution.duration | Ønsket køretid pr. cleanup job | PT20S |
| dk.nsp.msh.job.cleanupjob.retentionPeriod | Hvor længe EHMI beskeder gemmes. Der kan angives en periode i ISO-8601 Period-formatet Eksempler: | P1Y |
Baggrundsjobs
MSH Adapter består i praksis af en håndfuld baggrundsjobs, som tilsammen tager beskeder fra Domibus'en og gemmer dem i en DROS. Undervejs kaldes EDS med "forsendelsestatus" på de enkelte beskeder.
...
| Navn | Start-endpoint | Beskrivelse |
|---|---|---|
| Hent beskeder | <serverurl>/msh-adapter/fetch-job/start | Henter beskeder fra den konfigurerede Domibus, gemmer dem lokalt i en database, og markerer dem herefter som "downloaded" i Domibus. Undervejs gemmes der status-beskeder som skal afsendes til EDS. |
| Gem beskeder | <serverurl>/msh-adapter/save-job/start | Gennemgår beskeder, der er hentet, validerer dem og gemmer dem i DROS. Undervejs gemmes der status-beskeder som skal afsendes til EDS. Beskeder, der er fejlet pga. interne fejl, vil blive forsøgt igen senere, indtil "retry" er overskredet. Herefter vil de overgå til "manuel behandling". |
| Send beskeder | <serverurl>/msh-adapter/send-job/start | Sender kvitteringer tilbage til Domibus for de beskeder, som er afleveret i DROS. Kvitteringerne oprettes under "Gem beskeder". |
| Cleanup Job | <serverurl>/msh-adapter/cleanup-job/start | Sletter gamle beskeder som er færdigbehandlede. |
| EDS opdatering | <serverurl>/msh-adapter/eds-update-job/start | Afvikler køen af beskeder der skal sendes til EDS. Bemærk, bør kaldes med højest 10 sekunders mellemrum, da beskederne skal afspejle status med minimal forsinkelse (real-time). |
Overvågning
Der findes status- og alarm-endpoints hvor man kan overvåge baggrundsjobbene.
| Type | Endpoint |
|---|---|
| Alarm | <serverurl>/msh-adapter/<job-navn>/alarm |
| Status | <serverurl>/msh-adapter/<job-navn>/status |
Request/response-logning mod EDS
Message Handleren EMR kalder to eksterne EDS-endpoints som en del af track-and-trace-flowet:
...
For hvert af disse kald findes en dedikeret logger-kategori, som kan slås til og fra uafhængigt af den øvrige logning. Begge er slået fra per default og skal kun aktiveres midlertidigt ved fejlsøgning. Konfigurationen ligger i log4j2.properties.
Sådan slås en kategori til
I log4j2.properties ændres level for den relevante logger fra off til det ønskede niveau.
...
Begge loggere er sat op med additivity = false og skriver til samme rullende logfil som den øvrige adapter-logning, men dette kan selvfølgelig også ændres.
Personfølsomme data
Begge kategorier logger fulde request-/response-bodies. Det betyder:
- FHIR-logningen kan indeholde indholdet af
AuditEvent-ressourcen, herunder potentielt personfølsomme oplysninger. - JWT-logningen logger bl.a. det udstedte
access_token.
Derfor bør de to logninger kun slås til midlertidigt ifm. fejlsøgning.
...