INDHOLD

Beskrivelse

MinLog har til formål at registrere, opbevare og udstille registreringer af sundhedspersoners adgang til personfølsomme data. MinLog udstilles til borgere for at kunne give dem et indblik i, hvornår deres sundhedsdata tilgås af personale fra sundhedssektoren. Ligeledes er det muligt for en læge, der benytter uddelegering til en medhjælper, at se hvilke handlinger, medhjælpen har udført som lægens uddelegerede.Min-log på NSP registrerer og opbevarer registreringer af adgang til borgeres data. De opsamlede informationer udgør et minimumssæt af, hvad der er nødvendigt for at kunne give borgeren en forståelse af, hvem der har tilgået data i en given sammenhæng, samt tekniske detaljer der kan assistere i en eventuel afdækning af et forløb, f.eks. hvis en borger stiller spørgsmålstegn ved berettigelsen af en dataindhentning.
Minlog udstilles til borgerne via Minlog udtræk webservice, hvor anvendere af denne service er "sundhed.dk/" og "fmk-online.dk"

Minlog registrerings servicen er tilgængelig på alle NSP’er (cNSP+dNSP) samt på backend og kaldes fra NSP services samt externt fra Lægepraksis systemer.
Minlog udtræks servicen er tilgængelig på alle NSP'er (cNSP +dNSP).

Support ansvarlig: Arosii
NSP: MinLog - Leverancebeskrivelse
samt opfølgning: https://www.nspop.dk/pages/viewpage.action?spaceKey=NSPP&title=Minlog+Transfer (lukket side)

Forretningsanvendelse

^^Tilbage til toppen^^



Relaterede registre og services

Applikationsbeskrivelse

^^Tilbage til toppen^^

Både registrerings- og udtræk servicen benytter whitelist: whitelist_config i BRS databasen "register_notifications"

WSDL:
Registration: https://wsdl.nspop.dk/minlog-registration/service?wsdl
WebService: https://wsdl.nspop.dk/minlog/minlog.wsdl

Minlog registrering
--------------------
Min-log på NSP registrerer og opbevarer registreringer af adgang til borgeres data
Der er to operationer:
++ LogDataAdd – der tager en log entry bestående af et antal parametre, formaterer disse til en enkelt streng og skriver denne til en log fil.
++ LogDataAddBulk – som alternativ til LogDataAdd tilføjelse af enkelt registrering, kan bulk-versionen anvendes. Her muliggøres tilføjelse af flere registreringer i et kald.
Den modificerede version af Minlog Registrering skriver stadig til Minlog filen som samles op af Splunk, men skriver nu også til Minlog Transfer filer som eksplicit ikke skal samles op af Splunk. Hver gang en Minlog Transfer fil er sendt til Receiveren på backoffice slettes den lokale kopi

Minlog udtræk
--------------------
Minlog udtræk webservicens opgave er at søge i logninger, ud fra et givet cpr-nummer, og evt. et dato-interval. Alle logninger der opfylder de angivne kriterier returneres. Webservicen udstiller denne funktionalitet via en SOAP-webservice, beskyttet med DGWS og whitelist filtrering på CVR-nummer.
Under forberedelsen af webservicens respons, tilføjes fuldt navn for hhv. bruger og ansvarlig i hver log, der indgår. Til opslag på cpr-nummer hertil benyttes et tilpasset og højeffektivt (read-only og indekseret) database-view på stamdata-databasens person-tabel. Kan et cpr-nummer ikke findes deri, returneres en beskrivende tekst som fuldt navn.
Når Min-log udtræksservicen anvendes, fremsøges følgende på baggrund af bruger og ansvarlig:
- brugerFuldeNavn: Det fulde navn på den person, der udfører handlingen, der ligger til grund for registreringen
- ansvarligFuldeNavn: Det fulde navn for den person, der har ansvaret for handlingen, der ligger til grund for registreringen (dvs. den person, der handles på vegne af).

Der er to operationer:
++ ListLogStatements – En borger kan udtrække log-registreringer, der indeholder detaljer omhandlende sundhedspersoners indhentning af data om borgeren
++ ListLogStatementsOnBehalfOf – En sundhedsperson kan udtrække log-registreringer, hvor andre sundhedspersoner har anført at arbejde på vegne af sundhedspersonen. Resultatet kan indeholde log-registreringer, der spænder over forskellige borgere og forskellige sundhedspersoner, der som brugere har indhentet data om borgerne.

Minlog Transfer og Receiver
------------------------------
Minlog Transfer, er lavet for midlertidigt at løse problemet med manglende data i Minlog databasen, grundet en fejl i Minlog Export komponenten.
Kort fortalt består løsnignen af en custom Log4J appender som injectes ind i Minlog Registrering (minlog-registration.ear) og en tekst-baseret web service som modtager Minlog entries fra alle NSP'erne.
Den modificerede version af Minlog Registrering skriver stadig til Minlog filen som samles op af Splunk, men skriver nu også til Minlog Transfer filer som eksplicit ikke skal samles op af Splunk. Hver gang en Minlog Transfer fil er sendt til Receiveren på backoffice slettes den lokale kopi.
Receiveren kaldes fra Senderen via endpointet http://backoffice.host:8080/minlog-receive/
Databasen som Receiveren skriver til er allerede etableret ud fra det eksisterende Minlog skema

Oprydning
------------
Oprydningsjobbet kigger i databasen med et konfigurerbart interval og sletter alle logs, der er ældre end 2 år.

Datastruktur, Sundhedsdataregister: Minlog

^^Tilbage til toppen^^

Register properties:

Minlog sundhedsdata registeret understøtter Minlog registrerings servicen, der håndterer logning af tilgang eller forsøg på tilgang af borgers data.
Udstilles på sundhed.dk gennem minlog web servicen.

Entitetsbeskrivelser

LogEntry

^^Tilbage til toppen^^

Logentry for hændelsen med angivelse af borger, bruger og evt. ansvarlig, organisation og system samt anvender session og tidspunkt.

Objektet indeholder følgende information:
---------------------------------------------
id
regKode -- Unique enforced af constraint
cprNrBorger -- CPR-nummer for den borger, hvis data der er forsøgt tilgået.
bruger -- CPR for person som har tilgået eller forsøgt at tilgå borgerens data. CPR 0000000000 kan benyttes efter aftale med NSI, hvor registrator så har ansvaret for at kunne fremfinde personens identitet.
ansvarlig -- CPR på sundhedsperson eller borger, der er handlet på vegne af ifbm. tilgang til eller forsøg på tilgang til borgerens data. CPR 0000000000 kan benyttes efter aftale med NSI, hvor registrator så har ansvaret for at kunne fremfinde personens identitet. Kan være tom.
orgUsingID -- Identifikation af tilknyttet organisation ved hjælp af SOR-kode, SHAK-kode, ydernummer, p-nummer, cvr-nummer eller kommunekode samt angivelse af hvilken af disse typer, der anvendes som identifikation. Anvendes kun, når bruger er sundhedsperson. Når registreringen omhandler sundhedspersons adgang til borgers data er elementet krævet, medmindre andet er aftalt i den serviceaftale, som anvender af servicen har indgået med den dataansvarlige myndighed (NSI).
orgUsingName_id -- relation til OrganisationName
systemName -- Identifikation eller navn på kildesystem hvorfra forsøg på tilgang til borgers data er sket.
handling -- Tekstuel beskrivelse af den handling, bruger har udført i forbindelse med forsøg på tilgang til borgers data.
sessionId -- Et teknisk sessions id, der i kontekst af anvendersystemet unikt identificerer den session, som bruger var i, da handlingen blev gennemført.
tidspunkt -- Tidspunktet for tilgang eller forsøg på tilgang til borgers data. Dato og tid skal anføres i Zulu-tid og med millisekunder.

OrganisationName

^^Tilbage til toppen^^

Indeholder organisations navnet som brugeren tilhører

Objektet indeholder følgende information:
---------------------------------------------
name -- Navn på sundhedspersonens organisation. Når registreringen (LogDataEntry) omhandler sundhedspersons adgang til borgers data er elementet krævet. Bemærk, at navnet skal være meningsfyldt for en borger.
digest -- relation fra LogEntry

Status

^^Tilbage til toppen^^

Benyttes til at optimere oprydningen af Minlog data.

Objektet indeholder følgende information:
---------------------------------------------
`id` --
`lastUpdated` --

Whitelist config (BRS)

^^Tilbage til toppen^^

Objektet indeholder de CVR som er whitelisted til brug på test/prod for BRS servicen

Objektet indeholder informationen:
---------------------------------------
service_key
-- BRS behandlingsrelationsservice:
+ dk.nsi.auth.query.type.cvr.list - BRS
+ dk.nsi.auth.create.type.cvr.list - BRS
+ dk.nsi.auth.brs.cvr.list - NO_TYPE
-- Min Log:
+ dk.nsi.minlog.registration (registration service)
+ minlogws (opslags service)

service_type
-- NO_TYPE
-- BRS
-- CPRSUBSCRIPTION
cvr -- CVR nummer
comment -- Her anføres NSP Jira nummer som relaterer den enkelte whitelisting

Tabelbeskrivelser

Tabel: LogEntry

^^Tilbage til toppen^^

CREATE TABLE LogEntry (
id bigint NOT NULL AUTO_INCREMENT,
regKode varchar(36) NOT NULL,
cprNrBorger varchar(10) NOT NULL,
bruger varchar(20),
ansvarlig varchar(20),
orgUsingID varchar(25),
orgUsingName_id int,
systemName varchar(25),
handling varchar(75),
sessionId varchar(46),
tidspunkt datetime NOT NULL,
PRIMARY KEY (id),
CONSTRAINT unique_constraint_regKode UNIQUE (regKode),
INDEX log_cpr_and_timestamp_index (cprNrBorger, tidspunkt))
ENGINE=InnoDB DEFAULT CHARSET=latin1 DEFAULT COLLATE=latin1_swedish_ci;

Tabel: OrganisationName

^^Tilbage til toppen^^

CREATE TABLE OrganisationName (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(256) NOT NULL,
digest bigint NOT NULL,
PRIMARY KEY (id),
INDEX organisation_name_digest_idx (digest))
ENGINE=InnoDB DEFAULT CHARSET=latin1 DEFAULT COLLATE=latin1_swedish_ci;

Tabel: status

^^Tilbage til toppen^^

CREATE TABLE `status` (
`id` int NOT NULL,
`lastUpdated` datetime not null,
PRIMARY KEY (`id`)
);

Fil: Minlog.log

^^Tilbage til toppen^^

Entries sendt til MinLogRegistrationService formatteres og gemmes i en logfil.

Fil: MinlogTransfer.log

^^Tilbage til toppen^^

Entries sendt til MinLogRegistrationService formatteres og gemmes i en logfil.
Sendes fra dNSP/cNSP til Backend via Minlog Transfer

Tabel: whitelist_config (BRS)

^^Tilbage til toppen^^

CREATE TABLE whitelist_config (
service_key VARCHAR(50) NOT NULL,
service_type VARCHAR(20) NOT NULL,
cvr CHAR(8) NOT NULL,
comment VARCHAR(100) NULL,
PRIMARY KEY (service_key, service_type, cvr)
); -- ENGINE=InnoDB COLLATE=utf8_bin;

Teknologibeskrivelse

^^Tilbage til toppen^^

Refereres fra

^^Tilbage til toppen^^





  • No labels