Versions Compared

Key

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

...

SFSK er en service til at gøre det muligt at fremsøge og hente Fælles Stamkort via snitflader, som de kendes fra Dokumentdelingsservice Registry og Repository (se DDS - Design- og Arkitekturbeskrivelse (Registry) og DDS - Design- og Arkitekturbeskrivelse (Repository)).

I modsætning til DDS, så er Tidligere var SFSK målrettet systembrugere og dækker det behov, der kan være for synkronisering af Fælles Stamkort i anvendernes fagsystemer, modsat DDS'en, men i de seneste versioner er der indført borgerkald og medarbejderkald via IDWS. Hensigten er at afkoble Fælles Stamkort fra DDS'en.

I de følgende afsnit kigger vi på SFSK og dens afhængigheder til andre NSP services og i form af tredjepartsbiblioteker.

...

  • Sikkerhedsvalidere kald fra anvendersystemer
  • Hente data i de bagvedliggende registre FSK Registry og FSK
  • Foretage auditlogning
  • SEAS kaldes når der bliver kald som en "Sundhedsfaglig på vegne af", hvor autorisationskoden valideres
  • Minlog skrive til ve fremsøgning af dokumenthetningkaldes ved fremsøgning- og dokument-hentning
  • BRS når en sunhedsfaglig sundhedsfaglig kalder servicen. 

SFSK indgår i samspil med de øvrige NSP services på følgende måde:

Gliffy Diagram
macroIdff0c9e61-57c6-4227-bb47-3e6b7a18d713
displayNameSFSK på NSP
nameSFSK på NSP
pagePin1112

Relevante tredjepartsbiblioteker

...

Sikkerhedshåndtering i SFSK

 BrugertyperBrugertyper

SFSK anvender det på platformen udstillede security-api til at validere de indkommende requests. Alle kald til SFKS skal være lovlige DGWS eller IDWS-kald. SFSK understøtter følgende brugertyper:

...

ID

...

Som en...

...

ønsker jeg at..

...

så jeg...

...

Sundhedsfaglig med national rolle

...

de brugertyper, der er beskrevet i SFSK - Brugerhistorier.

Uddybende beskrivelse af de enkelte brugertyper samt skema der identificere en brugertype ud fra Security API.

Bestemmelse og mapning til actor

Borger

Borgerkald sker fra sundhed.dk via system-id-kort udstedt af sundhed.dk

For IDWS-kald anvendes HsuidHeader ikke og forventes ikke medsendt. Brugertypen identificeres i stedet alene via Security API’et. Ved mapning af actoren ved IDWS er der kun brugertypen Borger.

Sundhed.dk anvender i dag et systemopslag til at hente Fælles Stamkort, da DDS ikke understøttede borgeropslag via IDWS. Sundhed.dk er dermed trustet til at lave borgeropslag på vegne af borgeren.

For alle borgerkald laves der registreringer i minlog, men der kontrolleres ikke for behandlingsrelation

Brugertypen IDWS: BorgerVerifikationMapning til SfskActor
SecurityContextTicketAudienceSkal være der og  skal være "https://fsk"
 audience


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUser
Skal være der


IdentifierFormatSkal være der og skal være CPRactorIdType


IdentifierSkal være deractorId

PrincipalUser
Verificeres ikke - må gerne være der

Organisation
Verificeres ikke - må gerne være der

Borger på vegne af anden borger

Fuldmagtsbaseret borgeropslag fra sundhed.dk via system-id-kort udstedt af sundhed.dkSundhed.dk er trustet til at lave fuldmagtsopslag fra en borger på vegne af en anden borger.

Der medsendes også en HsuidHeader og indholdet af den afgør om det er en borger der kalder på vegne af en anden borger - eller om det er en systembruger. Oplysningerne på billetten fra Security API'er er identisk med oplysningerne for en systembruger.

Når der kaldes på vegne af en anden borger, laves der en minlog registrering, men der kontrolleres ikke for behandlingsrelation.

Brugertypen DGWS: Borger på vegne af anden borger

Uddybende beskrivelse af de enkelte brugertyper samt skema der identificere en brugertype ud fra Security API.

 Bestemmelse og mapning til actor

Borger

Borgerkald sker fra sundhed.dk via system-id-kort udstedt af sundhed.dk.

Der medsendes også en HsuidHeader og indholdet af den afgør om det er et borgerkald eller en systembruger. Oplysningerne på billetten fra Security API'er er identisk med oplysningerne for en systembruger.

Sundhed.dk anvender i dag et systemopslag til at hente Fælles Stamkort, da DDS ikke understøttede borgeropslag via IDWS. Sundhed.dk er dermed trustet til at lave borgeropslag på vegne af borgeren.

For borgerkald laves der ikke registreringer i minlog og der kontrolleres ikke for behandlingsrelation.

Brugertypen: Borger
VerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUser
Må ikke være der

PrincipalUser
Må ikke være der

OrganisationIdentifierSkal være der

actorId



IdentifierFormatSkal være der og skal være CVRactorIdType

Borger på vegne af anden borger


Sundhedsfaglig med autorisation

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseretFuldmagtsbaseret borgeropslag fra sundhed.dk via system-id-kort udstedt af sundhed.dkSundhed.dk er trustet til at lave fuldmagtsopslag fra en borger på vegne af en anden borger.

Der medsendes også en HsuidHeader og indholdet af den afgør om det er en borger der kalder på vegne af en anden borger - eller om det er en systembruger. Oplysningerne på billetten fra Security API'er er identisk med oplysningerne for en systembruger.

...

(niveau 4). Sundhedsfaglige med autorisation, kan lave opslag på borgerens Fælles stamkort via Sundhedsjournalen

Der laves minlog registrering og der kontrolleres for behandlingsrelation.

Brugertypen: Borger på vegne af anden borger
Brugertypen DGWS: Sundhedsfaglig med autorisation
VerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUser
Må ikke være derPrincipalUserMå ikke være derOrganisation
UserTypeSkal være HealthcareProfessionalactorType


IdentifierFormatSkal være CPRactorIdType


IdentifierSkal være
der
satactorId
IdentifierFormatSkal være der og skal være CVRactorIdType

Sundhedsfaglig med autorisation

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseret-id-kort (niveau 4). Sundhedsfaglige med autorisation, kan lave opslag på borgerens Fælles stamkort via Sundhedsjournalen

Der laves minlog registrering og der kontrolleres for behandlingsrelation.

Credentials.NationalRole


GivenNameVerificeres ikke - må gerne være der


SurNameVerificeres ikke - må gerne være der


Credentials.AuthorizationCodeSkal være sat


Credentials.NationalRoleVerificeres ikke - må gerne være der

PrincipalUser
Må ikke være der

OrganisationIdentifierSkal være derorganisationIdentifier


IdentifierFormatSkal være der og skal være CVR

Client
Brugertypen: Sundhedsfaglig med autorisationVerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 
ValidityEr validMessageVerificeres ikke - må gerne være derActingUserUserTypeSkal være HealthcareProfessionalactorTypeIdentifierFormatSkal være CPRactorIdTypeIdentifierSkal være satactorIdGivenNameVerificeres ikke - må gerne være derSurNameVerificeres ikke - må gerne være derCredentials.AuthorizationCodeSkal være sat


Ikke-autoriseret sundhedsfaglig

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseret-id-kort (niveau 4) hvor national rolle er tilknyttet (nspSundAssistR1 og nspSundAssistR2 giver adgang til Fælles Stamkort)

Der laves minlog registering og der kontrolleres for behandlingsrelation

Brugertypen DGWS: Sundhedsfaglig med national rolleVerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der
PrincipalUserMå ikke
 


ValidityEr valid

Message
Verificeres ikke - må gerne være der
Organisation


ActingUser
Identifier
UserTypeSkal være
der
HealthcareProfessionalactorType


IdentifierFormatSkal være
der og skal være CVRClient
CPRactorIdType


IdentifierSkal være satactorId


GivenNameVerificeres ikke - må gerne være der


SurName

Ikke-autoriseret sundhedsfaglig

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseret-id-kort (niveau 4) hvor national rolle er tilknyttet (nspSundAssistR1 og nspSundAssistR2 giver adgang til Fælles Stamkort)

Der laves minlog registering og der kontrolleres for behandlingsrelation

Verificeres ikke - må gerne være der


Credentials.AuthorizationCodeMå ikke være der


Credentials.NationalRoleSkal være der - og skal matche national rolle der er opsat i properties i SFSK

PrincipalUser
Må ikke være der

OrganisationIdentifierSkal være derorganisationIdentifier


IdentifierFormatSkal være der og skal være CVR

Client
Brugertypen: Sundhedsfaglig med national rolleVerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 
ValidityEr validMessageVerificeres ikke - må gerne være derActingUserUserTypeSkal være HealthcareProfessionalactorTypeIdentifierFormatSkal være CPRactorIdTypeIdentifierSkal være satactorIdGivenNameVerificeres ikke - må gerne være derSurNameVerificeres ikke - må gerne være der
Credentials.AuthorizationCodeMå ikke være derCredentials.NationalRoleSkal være der - og skal matche national rolle der er opsat i properties i SFSKPrincipalUserMå ikke være derOrganisationIdentifierSkal være derIdentifierFormatSkal være der og skal være CVRClientVerificeres ikke - må gerne være der

Sundhedsfaglig på vegne af anden sundhedsfaglig

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseret-id-kort (niveau 4) 

Der medsendes også en HsuidHeader og indholdet af den afgør om det er en sundhedsfaglig der kalder på vegne af en anden sundhedsfaglig. Oplysningerne på billetten fra Security API'er er identisk med oplysningerne for en medarbejder.

Der laves minlog registering for begge sundhedsfaglige og der kontrolleres for behandlingsrelation



Sundhedsfaglig på vegne af anden sundhedsfaglig

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseret-id-kort (niveau 4) 

Der medsendes også en HsuidHeader og indholdet af den afgør om det er en sundhedsfaglig der kalder på vegne af en anden sundhedsfaglig. Oplysningerne på billetten fra Security API'er er identisk med oplysningerne for en medarbejder.

Der laves minlog registering for begge sundhedsfaglige og der kontrolleres for behandlingsrelation

Brugertypen DGWS: Sundhedsfaglig på vegne af anden sundhedsfagligVerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUserUserTypeSkal være HealthcareProfessional
Brugertypen: Sundhedsfaglig på vegne af anden sundhedsfagligVerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 
ValidityEr validMessageVerificeres ikke - må gerne være derActingUserUserTypeSkal være HealthcareProfessionalactorType


IdentifierFormatSkal være CPRactorIdType


IdentifierSkal være satactorId


GivenNameVerificeres ikke - må gerne være der


SurNameVerificeres ikke - må gerne være der


Credentials.AuthorizationCodeMå ikke være der


Credentials.NationalRoleSkal være der - og skal matche national rolle der er opsat i properties i SFSK

PrincipalUser
Må ikke være der

OrganisationIdentifierSkal være derorganisationIdentifier


IdentifierFormatSkal være der og skal være CVR

Client
Verificeres ikke - må gerne være der

...

Der laves ikke minlog registrering (Det er fagsystemets ansvar at gøre dette) og der kontrolleres ikke for behandlingsrelation (Det er fagsystemets ansvar at gøre dette).fagsystemets ansvar at gøre dette) og der kontrolleres ikke for behandlingsrelation (Det er fagsystemets ansvar at gøre dette).


Brugertypen DGWS: SystembrugerVerifikationMapning til SfskActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUser
Må ikke være der

PrincipalUser
Må ikke være der

OrganisationIdentifierSkal være der

actorId /

organisationIdentifier



IdentifierFormatSkal være der og skal være CVRactorIdType


 Transformation af brugertyper

Ved kald til SFSK kan en systembruger i virkeligheden være et kald fra en anden brugertype. Det er informationer på HsuidHeaderen der afgør om den skal transformeres til en anden brugertype. Der findes følgende tranformationer:


Gliffy Diagram
displayNamesfsk-brugertyper-transformationer
namesfsk-brugertyper-transformationer
pagePin4


System >>

Brugertypen Borger

Verifikation

Mapning til SFSK ServiceActor

HSUID Header

userType

Skal være der og skal være CITIZEN

Brugertypen: Borger



actingUserCivilRegistrationNumber


Skal være der


ActingUserCpr


responsibleUserRegistrationNumber


Må ikke være der



orgUsingIDType


Verificeres ikke - må gerne være der



orgUsingIDName


Verificeres ikke - må gerne være der



systemName


Verificeres ikke - må gerne være der



systemVersion


Verificeres ikke - må gerne være der



userAuthorizationCode


Verificeres ikke - må gerne være der



citizenCivilRegistrationNumber


Skal være der og ens med actingUserCivilRegistrationNumber



System >>

Brugertypen Borger på vegne af 

VerifikationMapning til SFSK ServiceActor

HSUID Header

userType
Skal være der og skal være CITIZEN

Brugertypen: Borger på vegne af



actingUserCivilRegistrationNumber


Skal være der

(valideres indirekte ved at relation med responsibleUser skal være tilstede)

ActingUserCpr


responsibleUserRegistrationNumber


Skal være sat 

Skal være forskellige fra actingUserCivilRegistrationNumber

ResponsibleUserCpr


relation


Skal være sat og en af følgende skal returnere true:

isRelationChildCustodyHolder

isRelationProxyHolder

relation


orgUsingIDType

Brugertypen: SystembrugerVerifikationMapning til SfskActorSecurityContextTicketAudience


Verificeres ikke - må gerne være der

 ValidityEr validMessage


orgUsingIDName


Verificeres ikke - må gerne

være derActingUserMå ikke være derPrincipalUserMå ikke være derOrganisationIdentifierSkal være deractorIdIdentifierFormatSkal

være der

og skal være CVR

actorIdType

 Transformation af brugertyper

Ved kald til SFSK kan en systembruger i virkeligheden være et kald fra en anden brugertype. Det er informationer på HsuidHeaderen der afgør om den skal transformeres til en anden brugertype. Der findes følgende tranformationer:

...



systemName


Verificeres ikke - må gerne være der



systemVersion


Verificeres ikke - må gerne være der



userAuthorizationCode


Verificeres ikke - må gerne være der



citizenCivilRegistrationNumber


Skal være der

...



BorgerSkal og skal være CITIZENSkal ActingUserCpr

System >>

Brugertypen

System

VerifikationMapning til SFSK ServiceActor

HSUID Header

userType
Må ikke være der

Brugertypen: BorgerSystem



actingUserCivilRegistrationNumber


Må ikke være der



responsibleUserRegistrationNumber


Må ikke være der



orgUsingIDType


Verificeres ikke - må gerne være der



orgUsingIDName


Verificeres ikke - må gerne være der



systemName


Verificeres ikke - må gerne være der



systemVersion


Verificeres ikke - må gerne være der



userAuthorizationCode


Verificeres ikke - må gerne være der



citizenCivilRegistrationNumber


Verificeres ikke - må gerne være der



relationVerificeres ikke - må gerne System

Medarbejder System >>

Brugertypen Borger på vegne af Sundhedsfaglig på vegne af anden sundhedsfaglig

VerifikationMapning til SFSK ServiceActor

HSUID Header

userType
Skal være der og skal være CITIZENHEALTHCAREPROFESSIONAL

Brugertypen: Borger Sundhedsfaglig på vegne af anden sundhedsfaglig



actingUserCivilRegistrationNumber


Skal være der

(valideres indirekte ved at relation med responsibleUser skal være tilstede)

ActingUserCpr


responsibleUserRegistrationNumber


Skal være sat 

Skal være forskellige fra actingUserCivilRegistrationNumber

ResponsibleUserCpr

relation

Skal være sat og en af følgende skal returnere true:

isRelationChildCustodyHolder

isRelationProxyHolder


orgUsingIDType


Verificeres ikke - må gerne være der



orgUsingIDName


Verificeres ikke - må gerne være der



systemName


Verificeres ikke - må gerne være der



systemVersion


Verificeres ikke - må gerne være der



userAuthorizationCode


Skal være sat og valideres med responsibleUser

AuthorizationCode


citizenCivilRegistrationNumber


Skal være der


Borger IDWS >>

Brugertypen

System

Borger på vegne af 

VerifikationMapning til SFSK ServiceActor

HSUID Header

userTypeMå ikke være der

Brugertypen: System

actingUserCivilRegistrationNumber

Må ikke være der

responsibleUserRegistrationNumber

Må ikke være der

orgUsingIDType
SecurityContextActorActorTypeSkal være der og være BORGER




ActingUserUserTypeSkal være der og være Citizen


IdentifierFormat

Verificeres ikke - må gerne være der

orgUsingIDName

(Den er verificeres i mapning af actoren)




IdentifierSkal være der

actorId, hvis cprFraPayload ikke er der ellers actorId = cprFraPayload



GivenNameVerificeres ikke - må gerne være der
systemName



SurNameVerificeres ikke - må gerne være der
systemVersion



CredentialsVerificeres ikke - må gerne være der

userAuthorizationCode




Age

Skal

Verificeres ikke - må gerne

være der

Medarbejder >>

Brugertypen Sundhedsfaglig på vegne af anden sundhedsfaglig

VerifikationMapning til SFSK ServiceActor

HSUID Header

userTypeSkal være der og skal være HEALTHCAREPROFESSIONAL

Brugertypen: Sundhedsfaglig på vegne af anden sundhedsfaglig

actingUserCivilRegistrationNumber

Skal være der

(valideres indirekte ved at relation med responsibleUser skal være tilstede)

ActingUserCpr

hvis Relation er ChildCustodyHolder




Relation

Skal være der og enten være ProxyHolder, Guardian eller ChildCustodyHolder.

Hvis ChildCustodyHolder skal Age være større end 15 (Age < 15)

Relation


Credentials.PowerOfAttorneyPrivileges

Hvis Relation ikke er til stede, kontrolleres det, om PowerOfAttorneyPrivileges er til stede og matcher værdien af egenskaben "sfsk.idws.citizen.powerofattorney.privileges". 

Relation

PrincipalUser
Skal være der, hvis det er det er Iti43 kald. For at bestemme responsibleUser ved "Borger på vegne af".

Organisation

responsibleUserRegistrationNumber

Skal være sat 

Skal være forskellige fra actingUserCivilRegistrationNumber

ResponsibleUserCpr

orgUsingIDType

Verificeres ikke - må gerne være der

orgUsingIDName

Verificeres ikke - må gerne være der

systemName

Verificeres ikke - må gerne være der
systemVersion


Client
Verificeres ikke - må gerne være der

userAuthorizationCode

Skal være sat og valideres med responsibleUser

AuthorizationCode

2   Kald til Behandlingsrelationsservice (BRS)

Der tjekkes for behandlingsrelation, når SFSK bliver kaldt af en sunhedsfarligsundhedsfaglig.

Tjek for behandlingsrelationFremsøg stamkortHent stamkort
BorgerDer kontrolleres ikke for behandlingsrelationDer kontrolleres ikke for behandlingsrelation
Borger på vegne afDer kontrolleres ikke for behandlingsrelationDer kontrolleres ikke for behandlingsrelation
Sundhedsfaglig m. autorisationDer kontrolleres for behandlingsrelationDer kontrolleres for behandlingsrelation
Sundhedsfaglig m. national rolleDer kontrolleres for behandlingsrelationDer kontrolleres for behandlingsrelation
Sundhedsfaglig på vegne af sundhedsfagligDer kontrolleres for behandlingsrelationDer kontrolleres for behandlingsrelation
SystembrugerDer kontrolleres ikke for behandlingsrelationDer kontrolleres ikke for behandlingsrelation

...

Felt i TreatmentRelationRequestHvor stammer oplysningen fra i kald mod DDS?
PatientCprBorgerens CPR nummer (som opslaget drejer sig om)
HealthcareProfessionalCpr

Opslaget stammer fra en sundhedsprofessionelle bruger, derfor anvendes der CPR nummer af af den sundhedsprofessionelle (som angivet i HSUID headeren nsi:ActingUserCivilRegistrationNumber). 

AuthorisationIdentiferHvis kaldet indeholder en autorisationskode (som angivet i HSUID headeren nsi:ResponsibleUserAuthorizationCode), så medsendes denne
OrganisationIdentifierOrganisationen (som angivet i HSUID headeren nsi:OrgUsingID)
ExternalReferenceId

Udfyldes med defaultværdi for SFSK (som angivet i konfigurationsparameteren treatment.relation.external.reference.id)

Nuværende værdi: tom

QueryableCvr

Udfyldes med defaultværdi for SFSK (som angivet i konfigurationsparameteren sfsk.dgws.cvr)

Nuværende værdi: 30808460

AcceptableRelations

Udfyldes med defaultværdi for SFSK (som angivet i konfigurationsparameteren treatment.relation.acceptable.relations)

  • nuværende værdi: A,B,C
FollowupRelations

Udfyldes med defaultværdi for SFSK (som angivet i konfigurationsparameteren treatment.relation.followup.relations)

  • nuværende værdi: All
RelationLookupTimeInterval

Fradato sættes til tidspunktet for opslaget + et offset i antal dage (som angivet i konfigurationsparameteren for SFSK treatment.relation.lookup.timeinterval.start.offset)

Nuværende værdi: -1

Tildato sættes til tidspunktet for opslaget + et offset i antal dage (angivet i konfigurationsparameteren for SFSK treatment.relation.lookup.timeinterval.end.offset)

Nuværende værdi: 1

TimeLimit

Sættes til konfigurationsparameteren for SFSK treatment.relation.lookup.timeinterval.timelimit.offset)

Nuværende værdi: 90

ServiceProvider

Udfyldes med defaultværdi for SFSK (som angivet i konfigurationsparameteren sfsk.app.name)

Nuværende værdi: Sfsksfsk

Vendor sættes til konfigurationsparameteren for SFSK treatment.relation.serviceprovider.vendor

Nuværende værdi: vender

Version sættes til konfigurationparameteren for SFSK treatment.relation.serviceprovider.version

Nuværende værdi: TODOversion

Kald til Stamdata autorisation enkeltopslagsservice (SAES)

...

Sekvensdiagrammerne nedenfor beskriver flowet i forbindelse med "søg dokumenter". Flowet minder om det tilsvarende flow i Dokumentdelingsservicen, men er simplere, da der ikke tjekkes for spærringer mod enkeltpersoner ligesom kaldet til Behandlingsrelationservice udeladesDet er kun når sundhedsfaglige søger dokumenter der laves kontrol for behandlingsrelation. Minlog registreringer laves når sundhedsfaglige og borgere søger dokumenter.

Gliffy Diagram
size600
displayNameSFSK Søg Dokument
nameSFSK Søg Dokument
pagePin56

Flow i forbindelse med "Hent dokumenter" i SFSK

...

Sekvensdiagrammerne nedenfor beskriver flowet i forbindelse med "hent dokumenter". Det er kun når sundhedsfaglige henter dokumenter der laves kontrol for behandlingsrelation.

Gliffy Diagram
size600
displayNameSFSK Hent Dokument
nameSFSK Hent Dokument
pagePin3

Afklaringer

...

4