Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootSamtykkeservicen - Leverancebeskrivelse
includeroottrue


Table of Contents

Introduktion

Formål

Dette dokument er rettet mod systemadministratorer og driftspersoner, som skal kunne håndtere driftsmæssige aspekter af servicen.

Driftsvejledningen indeholder information om Min Spærring Samtykkeservicen komponenterne med hensyn til eksterne afhængigheder, standardplacering af logfiler og konfigurationsfiler, og evt. krav til genstart af applikationer hvis komponenten ikke er responsiv.

I afsnit 2 er beskrevet hvilke komponenter der indgår i Min Spærring services Samtykkeservicen og deres forventede placering med hensyn til platform.

Afsnit 4 beskriver aktuelle konfigurationsparametre for Min Spærring servicesSamtykkeservicen, samt eksempler på konfigurationsparameterfiler.

Afsnit 5.1, 5.2 og 5.3 beskriver hvorledes Min Spærring komponenterne Samtykkeservicen overvåges.

I afsnit 5.4 er Min Spærring service Samtykkeservicen relaterede logfiler beskrevet, så disse evt. kan overvåges, og tillige danne baggrund for fejlsøgning.

...

Specielle krav til backup er beskrevet i afsnit 7, ligesom procedure ved reetablering af komponenten ud fra backup beskrives.

Læsevejledning

Læseren forventes at have kendskab til Sundhedsdatastyrelsens platform NSP, samt generelt kendskab til WildFly applikation server, Docker, Docker Compose samt Ubuntu Linux operativ system

Dokumenthistorik

VersionDatoAnsvarligBeskrivelse

1.0

29.06.2012

Systematic

Initiel udgave

1.1

18.09.2012

Systematic

Http statuscheck opdateret

1.2

11.09.2014

Systematic

URL for service-check rettet.

1.3

20.11.2014

Systematic

Konfiguration af organisationsnavn tilføjet

1.4

14.03.2016

Systematic

ServiceChecker konfiguration opdateret

Opgradering til WildFly

Beskrivelse af legacy properties

1.5

02.09.2016

Systematic

XA-transaktioner fjernet fra afsnit 4.3.3.

Beskrivelse af DCC Konfigurations Service (DKS) tilføjet.

1.6

17.12.2016

Systematic

Versionsnummer kan nu hentes som beskrevet i afsnit 4.2.5.

Udpegning af id-kort properties som ikke længere benyttes i afsnit 4.1.1.

Generel servicecheck komponent erstattet af Samtykke-specifik servicecheck (afsnit 4 og 5)

Navn på SLA properties ændret.

Ny timeout property tilføjet i afsnit 4.1.1.

1.7

04.04.2017

Systematic

Status-snitflade tilføjet som beskrevet i afsnit 2, 4 og 5.

Ubrugte certifikatproperties fjernet fra afsnit 4.1 og 4.2.

1.8

13.06.2018

Systematic

Migreret til NSPOP SVN


22.10.2018KITDokument flyttet fra Word til Confluence. Original dokument navn var: OHB0002 Driftsvejledning Samtykke Services.docx

19.03.2020KITOpdateret i forhold til docker.

22.06.2020KITOpdateret i forbindelse med etablering af IDWS i administrationssnitfladen. 

22.10.2020KITSDS-3875 A new version of the interface has been added. This interface matches the underlying validations.

09.11.2020KITSDS-3685: Min Spærring skal anvende SORES til SOR-SHAK opslag

06.05.2021KITSDS-2416: Samtykkeservicen skal ændres til at kalde minlog2

26.11.2021KITTilføjet property.

Definitioner og referencer

DefinitionBeskrivelse

DCC

Dekoblingskomponenten på NSP

DKS

DCC Konfigurations Service

NSI

National Sundheds-IT

NSP

Den nationale service platform (inden for sundheds-IT)

SHAK

Sygehusafdelingsklassifikation

SOR

Sundhedsvæsenets organisationsregister

STS

Security Token Service

AliasBeskrivelse

DKS-beskrivelse

https://www.nspop.dk/display/web/DKS+--+DCC+Konfiguration+Service, hentet 02.09.2016.

Komponenter

Dette dokument dækker følgende komponenter på NSP:

...

Consent-administration komponenten anvender desuden Min-log-registreringsservicen, som skal være tilgængelig på DoDi’en.

Daglig drift

Dette afsnit beskriver den daglige drift af systemet.

Synkronisering af consent database fra

...

Samtykkeservicen administrationsservice til NSP

Min Spærring Samtykkeservicen administration er en central service, der opbevarer borgeres registrerede samtykker/spærringer i consent databasen.

Der skal sikres at borgernes opdateringer af registrerede samtykker/spærringer i den centrale consent database replikeres til den enkelte NSP.

Konfiguration

...

Samtykkeservicen administration

Servicekonfiguration

Grundlæggende konfiguration foregår ved redigering i filen ConsentAdministration.properties, der placeres i følgende WildFly modul:

...

Code Block
idcard.version = 1.0.1
sts.test.mode = false

log.config.file=consentadministration.log4j.properties

client.minlog.properties = ConsentAdministration.properties
registration.wsdl.location = http://localhost:8080/minlog-registration/service?wsdl
registration.invoker.timeout = 30000
registration.log.organisation_name=(organisationsnavn blev ikke udfyldt på registreringstidspunktet)

databasecheck.statement.consent=SELECT * FROM consent.consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM consent.whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM consent.whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist.whitelist_config LIMIT 1;

servicestatuscheck.database.failurethreshold = 1

idcard.subject.id.type = medcom:cvrnumber
idcard.subject.id = 46837428
idcard.subject.name = NETS DANID A/S - TU VOCES gyldig
idcard.level = 3
idcard.system.name = Samtykkeservicen sts.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService
sts.keystore = Statens_Serum_Institut_VOCES.jks
sts.keystore.password = Test1234

# Kafka
kafka.producer.bootstrap.servers=kafka:9092
kafka.producer.client.id=MinSpaerringMinLog2-producer
kafka.producer.key.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.producer.value.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.topic=MIT_TOPIC

# Ikke digitale
dk.nsp.minspaerring.administration.national.rolle=urn:dk:healthcare:national-federation-role:code:41001:value:SundAssistR1
dk.nsp.minspaerring.administration.rediger.minlog.tekst=Sundhedsperson har redigeret spærringer for en borger
dk.nsp.minspaerring.administration.tilfoj.minlog.tekst=Sundhedsperson har tilføjet spærringer for en borger
dk.nsp.minspaerring.administration.ophaev.minlog.tekst=Sundhedsperson har ophævet spærringer for en borger
dk.nsp.minspaerring.administration.hent.minlog.tekst=Sundhedsperson har indhentet oplysninger om spærringer for en borger

log4j konfiguration

Log4j konfiguration findes i (hvis ovenstående format anvendes) consentadministration.log4j.properties filen.

Se yderligere opsætning i installationsvejledningen.

SLA-log konfiguration

Konfiguration af SLA-log findes i filen nspslalog-consentadministration.properties.

DKS konfiguration

Indholdet, der returneres ved kald af DCC Konfiguration Service-snitfladen (DKS), indlæses af DDS Registry fra filen:

...

Filen skal overholde DKS XML-skemaet og beskriver de webservice-operationer Min Spærring Samtykkeservicen administrationsservicen udstiller jf. [DKS-beskrivelse].

Test af DKS

Efter konfiguration og deployering af Min Spærring Samtykkeservicen administrationsservicen, kan DKS-snitfladen testes med:

...

Succesfuldt svar giver indholdet svarende til dksConfiguration.xml nævnt ovenfor.

Test af versionsnummer

Efter konfiguration og deploy af Min Spærring Samtykkeservicen administrationsservicen kan versionsnummeret hentes via en HTTP-snitflade.

...

I eksemplet kørte servicen på en local maskine konfigureret til port 9090.

...

Samtykkeservicen verifikation

Service konfiguration

Grundlæggende konfiguration foregår ved redigering i filen ConsentVerification.properties, der placeres i følgende WildFly modul:

...

Code Block
idcard.version = 1.0.1
sts.test.mode = false

log.config.file=consentverification.log4j.properties

databasecheck.statement.consent=SELECT * FROM consent.consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM consent.whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM consent.whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist.whitelist_config LIMIT 1;

servicestatuscheck.database.failurethreshold = 1

Log4j konfiguration

Log4j konfiguration findes i (hvis ovenstående format anvendes) consentverification.log4j.properties filen.

Se yderligere opsætning i installationsvejledningen.

SLA-log konfiguration

Konfiguration af SLA-log findes i filen nspslalog-consentverification.properties.

DKS konfiguration

Indholdet, der returneres ved kald af DCC Konfiguration Service-snitfladen (DKS), indlæses af Min Spærring Samtykkeservicen verifikationsservicen fra filen:

...

Filen skal overholde DKS XML-skemaet og beskriver de webservice-operationer Min Spærring Samtykkeservicen verifikationsservicen udstiller jf. [DKS-beskrivelse].

Test af DKS

Efter konfiguration og deployering af Min Spærring verifikationsservicenSamtykkeservicen verifikationsservicen, kan DKS-snitfladen testes med:

...

Succesfuldt svar giver indholdet svarende til dksConfiguration.xml nævnt ovenfor.

Test af versionsnummer

Efter konfiguration og deploy af Min Spærring Samtykkeservicen verifikationsservicen kan versionsnummeret hentes via en HTTP-snitflade:

...

I eksemplet kørte servicen på en lokal maskine konfigureret til port 9090.

Monitoreringssnitflader på

...

Samtykkeservicen 

Til monitorering af Min Spærring services findes Samtykkeservicen findes en servicespecifik status-sniflade. Med servicespecifik menes, at der findes en udgave for hhv. administration- og verification-servicen. Snitfladen beskrives i det følgende.

Status-snitfladen

Status-snitfladen kaldes under opstart af servicen, kontrollerer tilgængelighed (og i et vist omfang indhold) af property-filer og afprøver aktivt forbindelsen til databaser. Snitfladen laver endvidere passiv opsamling af resultater ved kald af database. Status-snitfladen opsamler data på hvor mange kald til database, der er fejlet, og melder fejl hvis det overstiger de threshold-værdier, der er defineret i property-filen for hhv. Min Spærring Samtykkeservicen administrationsservicen og Min Spærring Samtykkeservicen verifikationsservicen.

Konfiguration af databasemonitorering

Databasemonitoreringen fungerer ved at lave en simpel query mod Min Spærring Samtykkeservicen databasens tabeller. Der laves en query mod hver tabel. Disse queries er justerbare og kan ændres i hhv. ConsentAdministration.properties og ConsentVerification.properties.

Code Block
databasecheck.statement.consent=SELECT * FROM consent.consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM consent.whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM consent.whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist.whitelist_config LIMIT 1;

Test af monitorering af status

Efter konfiguration og deploy af Min Spærring Samtykkeservicen services, kan den testes med:

...

Resultatet af de udførte tjek bliver også skrevet til  en af filerne consentadministration-status.log og consentverification-status.log. Såfremt der ikke er nogle fejlbeskeder i loggen bør property-filen undersøges som det første, da det er herigennem logindstillingerne bestemmes.

Overvågning

Min Spærring Samtykkeservicen verifikations- og administrationsservices overvåges af en servicespecifik statussnitflade. Disse snitfladers url’er kan aflæses i afsnit 2.

Placering af HTML overvågningsside

Under listen af komponenter først i dette dokument, er der henvisninger til overvågningssiderne.

Fortolkning af HTML overvågningsside

Alle overvågningssider returnerer enten status 200 hvis de i øjeblikket kører fint, status 404 hvis service ikke er deployed og status 500, hvis der er opstået en fejl, og komponenten derfor ikke virker korrekt.

Overvågningstype

Simpel webside deployeret på serveren. Som udgangspunkt overvåges følgende:

  1. Tilstedeværelse og indhold af propertyfil

  2. Forbindelse til datasources via JNDI opslag

Logfiler og fortolkning af disse

Alle logfiler er at finde i log/ under WildFly. Herunder findes en liste over alle logfiler med en beskrivelse af hvilke komponenter der skriver til dem.

...

For alle webservices er der en tilhørende SLA-log, der sørger for at logge udvalgte elementer fra requests til webservicen. For Min Spærring Samtykkeservicen Services logges alle kald til ConsentAdministrationBean og ConsentVerificationBean til hver deres log. Loggen indeholder informationer om de kald der er lavet til webservicen, herunder hvilken serviceoperation der er kaldt og behandlingstid for kaldet.

SLA-logpunkter for indkommende kald til Min Spærring Samtykkeservicen administration:

  • ConsentRegistrationsGet

  • ConsentAdd

  • ConsentModify

  • ConsentRevoke

...

SLA-logpunkter for indkommende kald til Min Spærring Samtykkeservicen verificering:

  • ConsentForUserCheck

  • ConsentForDataCheck

  • ConsentForForeignersCheck

Auditlogning is done using the official NSP Audit Log modul.

De forskellige håndtag logges på følgende måde.

...

Samtykkeservicen verificering Audit data

KomponentKontekstTypeNøgleInformation
consent






ConsentForUserCheckPersonligevirksomhed-idIdentifikation af brugerens organisation
virksomhed-id-typeTypen på identifikationen af brugerens organisation
Ikke personligeCVRCVR på brugerens organisation
FlowIdIdentifikation af aktuelt flow
Følsommepatient-cpr

CPR nummer på patient om hvem samtykke unsersøges

bruger-cpr

CPR nummer på brugeren der kalder services

on-behalf-of-cpr

CPR nummer på sundhedsfaglig servicen kaldes på vegne af

samtykke-indikator

Værdien af samtykke check; POSITIVE, NEGATIVE eller DATA_SPECIFIC_CONSENT

ConsentForDataCheck





Personligevirksomhed-idIdentifikation af brugerens organisation
virksomhed-id-typeTypen på identifikationen af brugerens organisation
Ikke personlige

queryDataRegistration.[0..n].id

Data hvor der skal checkes for data specifikt samtykke. Der kan forespørges på flere data typer ad gangem, så nøglen har en fortløbende værdi indlejret.

queryDataRegistration.[0..n].virksomhed-id
queryDataRegistration.[0..n].virksomhed-id-type
queryDataRegistration.[0..n].oprettet-dato-tid
CVRCVR på brugerens organisation
FlowIdIdentifikation af aktuelt flow
Følsommepatient-cprCPR nummer på patient om hvem samtykke unsersøges
bruger-cprCPR nummer på brugeren der kalder services
on-behalf-of-cprCPR nummer på sundhedsfaglig servicen kaldes på vegne af
positiv-samtykke-id-listeEn liste af identer på data typer, som har positivt samtykke.
ConsentForForeignersCheckPersonlige

Ikke personligeCVRCVR på brugerens organisation
FlowIdIdentifikation af aktuelt flow
Følsommepatient-cprCPR nummer på patient om hvem samtykke unsersøges
bruger-cprCPR nummer på brugeren der kalder services
samtykke-til-udenlandsk-sundhedspersonVærdien af check for samtykke til udenlandsk sundhedsperson; POSITIVE eller NEGATIVE

Type mapning mellem ovenstående tabel og faktisk data i fil: Personlig = RegularPersonalInformation/RPI, Ikke personlig = NonPersonalInformation/NPI og Følsomme = SensitivePersonalInformation/SPI

Standard fejlsøgning

  • Ved problemer med indlæsning af servicens konfigurationsfil (ConsentVerification.properties eller ConsentAdministration.properties) bør man verificere at filen ligger korrekt i modul folderen. Vær opmærksom på at filen ikke læses, hvis den ikke er til stede ved opstart af WildFly serveren.

  • Ved manglende logning hvor der forventes fejlbeskeder bør konfigurationsfiler (ConsentVerification.properties, ConsentAdministration.properties) checkes, da logindstillingerne sættes herigennem.

  • Servicen kan genstartes ved at genstarte den docker container som servicen kører i. 

Krav til backup m.m.

Databasen til Min Spærring Samtykkeservicen administration skal sikres med backup.

Derudover anbefales sikring af aktuelle konfigurationsfiler til Min Spærring Samtykkeservicen services.