Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Flowet set fra en datakilde, der skal kunne pseudonymisere oplysninger, er relativt simpelt:

<ny på vej>Image Added

Figur 5: Flow services, der skal kunne pseudonymisere oplysninger.

  1. Dataservicen modtager OIOIDWS billetten, afkoder den, og løber igennem listen af data, som skal afleveres til borgervisningssystemet for at kontrollere, om der skulle være medarbejdere med tilknytning til de CVR-numre, der skal sløres for. Hvis der er sådan nogle, skal der beregnes et pseudonym og navnet skal udskiftes med pseudonymet. Til at skabe sikre og tværgående ensrettede pseudonymer, skal dataservicen bruge et ”salt”. Det er også indlejret i billetten.
  2. Med sløringsinformationerne fra billetten, saltet og listen over afdelinger, er det nu muligt at foretage sløring/pseudonymisering.
  3. Det i fornødent omfang pseudonymiserede data returneres til borgerinterfacesystemet.
PlantUML Macro
dropshadowfalse
alignleft
@startuml

skinparam sequence {
LifeLineBackgroundColor #FF4E26
ParticipantBackgroundColor #72BEDB
}

participant Borgervendtapp 
participant STS
participant IDSAS
participant Datakilde

Activate Borgervendtapp
Borgervendtapp-> STS: BST2IDWS
  Activate STS
  group #EAEAEA Skab Identitytoken
		
	'Her henter STS'en borgerspecifikke sløringer
    STS -> IDSAS: getBlurredOrganisations()
	Activate IDSAS
    return [orgId*]

	'Her henter STS'en alle afdelingssløringer
    STS -> IDSAS: listAllBlurredOrgs()
    Activate IDSAS
    return [org-id*]
  end
return IdentityToken

Borgervendtapp -> Datakilde: HentData(IdentityToken)


Activate Datakilde
Datakilde -> Datakilde: Pseudonymisér data
return Pseudonymiseret data
Deactivate Borgervendtapp

@enduml


Typiske skridt hvis du skal tilrette en datakilde til at kunne pseudonymisere

...

For nogle er der måske hjælp at hente ved at bruge SEAL.Java eller SEAL.NET til dette, hvis I arbejder i enten Java eller .NET. Se mere her:

...

  • CVR-numre på de organisationer, der vil have deres medarbejdere pseudonymiseret overfor denne borger
  • SOR og SHAK koder for de afdelinger, der vil have alle registreringer fra disse afdelinger pseudonymiseret (uanset hvilken borger, der er logget ind)
  • Borgerens ID (CPR-nummer)
    Bemærk: hvis brugeren er en befuldmægtiget eller forældre, der ser data for en anden person, skal man bruge ID'et for den, man ser data på (fuldmagtsgiverens eller barnets).
  • For- og efternavne på de sundhedsfaglige, der skal sløres
  • "Salt” "salt” som du skal bruge til at beregne pseudonymer. (Se eksempel mv. "Appendiks 1 – Test af identitestsløring" samt "Appendiks 3 – Test af afdelingssløring")

Pseudonymer skal være UUID type 5. Hvis du koder i Java, kan du finde et godt eksempel her: https://stackoverflow.com/questions/40230276/how-to-make-a-type-5-uuid-in-java

...

  1. UUID type 5 namespacet skal være ns:OID ("6ba7b812-9dad-11d1-80b4-00c04fd430c8”)
  2. Input til UUID generatoren skal være ”FORNAVN(E)+EFTERNAVN(E)+BORGER_ID+SALT” (BORGER_ID er indtil videre CPR)
  3. Alle navne skal være Uppercase og alle mellemrum i fornavn(e) og efternavn(e) skal erstattes med ’+’
  4. Saltet modtages BASE64 encoded fra getCurrentSalt(). Det skal appendes til navnene som tekst inden der konverteres til bytes i selve UUID genereringen (husk ’+’ mellem sidste efternavn og salt).
  5. Alle konverteringer fra strenge til bytes skal være baseret på UTF8
  6. ’plusserne’ (også de med rødt angivne i b) skal ’Plusserne’ (angivet i inputtet i punkt 2) skal også inkluderes i inputtet

Se korrekte også ”Appendiks B 2 – Eksempler på korrekte pseudonymer

I kan også teste jeres kode op mod pseudonymer på dette site: https://www.javainuse.com/uidv5, husk at anvende OID namespacet.

Image RemovedImage Added


Ændringslog

1.0

2023-09-21

Side oprettetSDS
1.12024-01-03Ændret med sekvensdiagram mv.JRI
1.22024-01-29Pseudonymiseringsalgoritme fejl ændretJRI
1.32024-08-28Fjernelse af værgeAnni
1.42024-10-16Fjernet link til ældre udgave af BIP profilAnni