Indhold

Komponenter

Dette dokument dækker FGVHR-servicen. Der udstilles et enkelt komponent af typen SOAP Webservice og en af typen REST-service.

  • Type: SOAP Webservice

  • Filnavn: fgvhr.war

  • Url: <serverurl>/fgvhr

  • Status-url: <serverurl>/fgvhr/status

  • DKS-config: <serverurl>/fgvhr/20230601/dksconfig

  • Type: Webservlet
  • Filnavn: fgvhr-operations.war
  • Url: <serverurl>/fgvhr-operations
  • Status-url: <serverurl>/fgvhr-operations/status

  • Version-url: <serverurl>/fgvhr-operations/version

Konfiguration

Servicekonfiguration

Grundlæggende konfiguration foregår ved redigering i filen fgvhr.properties. Den skal placeres i WildFly modul:

/pack/wildfly8/modules/dk/nsp/fgvhr/main/

Moduldefinitionen findes i kildekoden under:

/fgvhr-war/etc/modules/dk/nsp/fgvhr/configuration/main/module.xml

I fgvhr.properties kan følgende properties defineres:

Property

Beskrivelse

Påkrævet

Default værdi

dk.nsp.fgvhr.national.rolleNational rolle bruger skal have når der kaldes på admin-service.
Ja
dk.nsp.fgvhr.whitelisted.clientkeySerialnumber fra det certifikat der benyttes ved kald til FSK snitflade.Ja
dk.nsp.fgvhr.datasource.jndiNavn på jboss datasource (defineret i fgvhr-ds.xml)Ja
dk.nsp.fgvhr.validfrom.period.daysHvornår er registrering af fravalg gyldig fra (antal dage)Nej7
dk.nsp.fgvhr.minimum.ageMinimumssalderen (år) for hvornår man kan registrere fravalg Nej60
dk.nsp.fgvhr.httpclient.pooling.totalconnectionsTotale antal HttpClients forbindelser der kan åbnesJa200
dk.nsp.fgvhr.httpclient.pooling.maxconnections.pr.routeAntal HttpClients forbindelser der kan åbnes pr. ruteJa20
personinformation.urlURL til PersonInformation servicenJa
personinformation.errorcount.duration

Specificering af hvor lang tid tilbage der skal tælles fejl fra PersonInformation servicen (ifm. /status endpointet). Angives som duration i ISO-8601 formattet.

Nej

PT10M (10 minutter)

personinformation.error.tolerance

Antal fejl der tolereres fra PersonInformation servicen før /status endpointet angiver servicen som ikke tilgængelig.

Nej

0

dcc.endpoint.citizenAngiver det endpoint, som DCC'en skal kalde for at ramme citizen-service. Dette kommer til at fremgå af den XML, der returneres i /dksconfig.Ja
minlog.get-activity-textTekst i Minlog ved læsning af fravalgJaLæsning af Fravalg af genoplivning ved hjertestop register
minlog.register-activity-textTekst i Minlog ved oprettelse af fravalgJaOprettelse af Fravalg af genoplivning ved hjertestop register
minlog.delete-activity-textTekst i Minlog ved sletning af fravalgJaSletning af Fravalg af genoplivning ved hjertestop register
minlog.update-activity-textTekst i Minlog ved opdatering af fravalgJaOpdatering af Fravalg af genoplivning ved hjertestop register
fgvhr.nas.notification.job.max.durationDen tilladte varighed af jobbet. Angives som duration i ISO-8601 formattet; dog bør kun sekunder angives.Nej
PT15S
fgvhr.nas.notification.job.nas.bundle.sizeAntallet af adviseringer der sendes til NAS af gangen per SOAP request.
Nej
50
fgvhr.nas.notification.job.batch.sizeAntallet af adviseringer der hentes fra tabellen af gangen.
Nej
500
nas.sts.endpointEndpointet, hvor NAS-integrationen skal trække et idkort på baggrund af sts.keystoreJa
nas.sts.keystoreKeystore der indeholder funktionscertifikatet
Ja
nas.sts.keystore.passwordPassword til at åbne keystore
Ja
nas.endpointEndpointet hvor NAS skal kaldesJa
nas.idcard.subject.nameSubject name på idkortetJa
nas.idcard.subject.idSubject Id på idkortet
Ja
nas.idcard.system.nameSystemnavn på idkortet
Ja
nas.topicDet topic der skrives til på NAS
Ja

minlogclient.properties

FGVHR anvender MinLogProvider til at registrere logninger i MinLog, og i den forbindelse skal Kafka properties for MinLog konfigureres. 

PropertyBeskrivelseDefault værdi
kafka.producer.bootstrap.serversUrl til Kafka bootstrap-server.kafka:9092
kafka.producer.client.idId der anvendes af Kafka producere i løsningen.FGVHRMinLog2-producer
kafka.producer.key.serializerSerializer key for Kafka producerorg.apache.kafka.common.serialization.StringSerializer
kafka.producer.value.serializerSerializer value for Kafka producerorg.apache.kafka.common.serialization.StringSerializer
kafka.topicNavn på Kafka topicFGVHR_TOPIC

log4j konfiguration

Log4j konfiguration for begge services findes i samme wildfly modul som servicekonfigurationen

Se yderligere opsætning i installationsvejledningen.

Overvågning

Der udstilles statussider, som kan tilgås fra adresserne i afsnittet Komponenter

Fortolkning af statussider

Statussiderne returnerer enten:

  • HTTP 200, hvis servicen i øjeblikket kører fint.
  • HTTP 503, hvis der er opstået en fejl der kræver indgriben.

Audit-logning

Hvert servicekald medfører en ny indgang i auditloggen, som kan være udfyldt med følgende komponenter, afhængig af konteksten:

Komponent

Kontekst

Type

Nøgle

Information

FGVHRregisterConsentPersonligpatient-idBorgerens id
FGVHRregisterConsentPersonligpatient-id-sourceId'ens kilde, fx "CPR"
FGVHRregisterConsentIkke personligactor-roleAktørens rolle
FGVHRregisterConsentIkke personligactor-idAktørens id. Vil i praksis være det samme some patient-id.
FGVHRregisterConsentIkke personligactor-id-sourceId'ens kilde, fx "CPR"
FGVHRregisterConsentFølsomconsent-statusStatus på samtykke. Kan være "ACTIVE", "INACTIVE" eller "ENTERED-IN-ERROR".
FGVHRregisterConsentPersonligvalid-fromAntal dage til hvornår samtykke træder i kraft
FGVHRregisterConsentPersonligcitizen-created-dateHvornår borgeren har underskrevet blanketten, hvis registreringen kommer fra blanket.
FGVHRdeleteConsentPersonligpatient-idBorgerens id
FGVHRdeleteConsentPersonligpatient-id-sourceId'ens kilde, fx "CPR"
FGVHRdeleteConsentIkke personligactor-roleAktørens rolle
FGVHRdeleteConsentIkke personligactor-idAktørens id. Vil i praksis være det samme some patient-id.
FGVHRdeleteConsentIkke personligactor-id-sourceId'ens kilde, fx "CPR"
FGVHRdeleteConsentFølsomconsent-statusStatus på samtykke. Kan være "ACTIVE", "INACTIVE" eller "ENTERED-IN-ERROR".
FGVHRgetConsentPersonligpatient-idBorgerens id
FGVHRgetConsentPersonligpatient-id-sourceId'ens kilde, fx "CPR"
FGVHRupdateConsentPersonligpatient-idBorgerens id
FGVHRupdateConsentPersonligpatient-id-sourceId'ens kilde, fx "CPR"
FGVHRupdateConsentIkke personligactor-roleAktørens rolle
FGVHRupdateConsentIkke personligactor-idAktørens id. Vil i praksis være det samme some patient-id.
FGVHRupdateConsentIkke personligactor-id-sourceId'ens kilde, fx "CPR"
FGVHRupdateConsentFølsomconsent-statusStatus på samtykke. Kan være "ACTIVE", "INACTIVE" eller "ENTERED-IN-ERROR".
FGVHRupdateConsentPersonligvalid-fromAntal dage til hvornår samtykke træder i kraft


GetConsent eksempel
{
    "time": "2023-09-07T07:32:59.492Z",
    "category": "dk.sds.nsp.audit.log.fgvhr",
    "audit": {
        "timestamp": "2023-09-07T09:32:59.429+02:00",
        "components": [
            {
                "component": "FGVHR",
                "contexts": [
                    {
                        "context": "getConsent",
                        "information": [
                            {
                                "key": "patient-id",
                                "type": "RPI",
                                "value": "0108501234"
                            },
                            {
                                "key": "patient-id-source",
                                "type": "RPI",
                                "value": "CPR"
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "access": {
        "code": 200,
        "duration": 17,
        "httpHeaders": {
            "Content-Type": "text/xml;charset=UTF-8",
            "SOAPAction": "GetConsent"
        },
        "httpHost": "localhost",
        "idCardAttributes": {
            "X509Subject": "CN=NSP Test Service Consumer,SERIALNUMBER=UI:DK-O:G:8d3fa047-c77e-47e4-bdd2-e91488610ce6,O=Sundhedsdatastyrelsen,2.5.4.97=NTRDK-33257872,C=DK",
            "dk:gov:saml:attribute:AssuranceLevel": "3",
            "dk:gov:saml:attribute:CprNumberIdentifier": "0511804817",
            "dk:gov:saml:attribute:SpecVer": "DK-SAML-2.0"
        },
        "method": "POST",
        "path": "/fgvhr/20230601/service",
        "query": "",
        "port": 8080,
        "protocol": "http",
        "reqSize": 12257,
        "resSize": 642,
        "soapHeaders": {
            "Audience": "https://fsk",
            "Issuer": "TEST1-NSP-STS",
            "NameID": "dk:gov:saml:attribute:CprNumberIdentifier:0511804817",
            "w3Action": "GetConsent",
            "w3MessageID": "a0952bbd-40c2-46e4-835f-614843f48dbd"
        },
        "threadId": "default task-1",
        "time": "2023-09-07T09:32:59.429+02:00",
        "stats": {
            "handlerDuration": 44,
            "RequestContentDuration": 0,
            "ResponseContentDuration": 0,
            "SecurityProtocolRequestDuration": 8,
            "SecurityProtocolResponseDuration": 34,
            "bufferAllocated": false,
            "usedBuffers": 2,
            "activeBuffersInPool": 2,
            "idleBuffersInPool": 0
        }
    }
}

Baggrundsjobs

NAS adviseringsjob

Baggrundsjobbet har til formål at sende alle ikke-afsendte NAS-adviseringer, der er oprettet på baggrund af ændring i borgeres fravalg. Adviseringer lagres i tabellen "unsent_notifications".

Baggrundsjobbet startes med et HTTP GET kald til

<serverurl>/fgvhr-operations/nas-notification-job

Jobbet konfigureres med parametrene beskrevet i afsnittet "Servicekonfiguration".

Jobbets seneste status kan aflæses på komponentens statusside. Detaljer om de enkelte kørsler (antal rækker behandlet mm.) skrives direkte til komponentens log-fil. 




  • No labels