Overblik over servicen

Nedstående diagram viser opbygningen af FGVHR-servicen:


Sikkerhed

Brugertyper

Der findes følgende brugertyper i FGVHR:

De enkelte brugertyper bestemmes udfra modellen, der udstilles i Security API. Disse regler er opsummeret i tabellerne nedenfor.

Brugertypen: BorgerVerifikationMapning til FGVHR ServiceActor
SecurityContextTicketAudienceMatche audience som findes som konfiguration i FGVHR(?)


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUserUserTypeSkal være CitizenBrugertypen: Borger


IdentifierFormatSkal være CPR


IdentifierSkal være satuserPersonIdentifier


GivenNameVerificeres ikke - må gerne være der


SurNameVerificeres ikke - må gerne være der


CredentialsVerificeres ikke - må gerne være der


PersistentUniqueKeyVerificeres ikke - må gerne være der

PrincipalUser
Må ikke være der

Organisation
Må ikke være der

Client
Verificeres ikke - må gerne være der


Brugertypen: AdministrativVerifikationMapning til FGVHR ServiceActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUserUserTypeSkal være HealthcareProfessionalBrugertypen: Administrativ


IdentifierFormatSkal være CPRuserPersonIdentifier


IdentifierSkal være sat


GivenNameVerificeres ikke - må gerne være der


SurNameVerificeres ikke - må gerne være der


Credentials.NationalRoleSkal være der - og skal matche config variable i FGVHR


PersistentUniqueKeyVerificeres 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
Verificeres ikke - må gerne være der



Database model

Datamodel

Datamodellen består af en tabel der hedder 'citizen_consent' og den har følgende kolonner:

kolonneTypebeskrivelse
idINT(11)Tabellens primære nøgle (ikke relevant for scenarierne).
uuid
Unik ID for rækken
replaces_uuid
uuid for rækken den erstatter. Inden for et givent CprNr har alle række udfyldt denne værdi på nær den første række (der ikke erstatter nogen række)
patient_idVARCHAR(64)Patientens cpr nummer
patient_id_sourceVARCHAR(64)Typen af patient_id. Dvs. kun 'CPR' lige nu
created_dateDATETIME(3)Tidspunktet hvor rækken oprettes i databasen. Bemærk at for dette tidstempel er præcisionen millisekunder.
citizen_created_dateDATEDatoen borgeren har angivet på blanketten (tom hvis den ikke kommer fra en blanket)
valid_fromDATEDatoen hvor registreringen er gældende  (= created_date + 7 dage). Bemærk dette felt indeholder ikke noget tidsstemplet, da fravalget er gældende fra denne dato.
statusVARCHAR(20)Nuværende status for borgerens fravalg ('ACTIVE', 'INACTIVE', 'ENTERED-IN-ERROR')
actor_roleVARCHAR(20)Angiver hvem der har foretaget registreringen. Mulige værdier: 'CITIZEN' eller 'ADM' (Borger eller Administrativ medarb. vha. blanket)
actor_idVARCHAR(64)Angiver id for den der har foretaget registreringen. Dvs. enten et cpr nummer eller en SOR kode
actor_id_sourceVARCHAR(64)Typen af actor_id. Dvs. enten 'CPR' eller 'SOR'


Scenarier

I det følgende beskrives en række scenarier og hvordan de tilhørende data ser ud. Rækker bliver aldrig slettet eller rettet - der bliver altid kun tilføjet nye rækker. Så fordelen ved denne løsninger er at historikken bevares.

Der er anvendt forsimplede uuid'er for læsbarhedens skyld.

NrScenarieuuidreplaces_uuidpatient_idpatient_id_sourcecreated_datecitizen_created_datevalid_fromstatusactor_roleactor_idactor_id_source
Registrering
1Borger over 60år opretter selv registreringdab09aa6fecNULL0101611234

'CPR'

09/08/2023 12:00:00.000NULL15/08/2023

'ACTIVE'

'CITIZEN'0101611234'CPR'













2Borger under 60år opretter selv registreringOprettes ikke






















3Adm opretter registrering for borger over 60 årb5636bd8d16cNULL0101611234'CPR'09/08/2023 12:00:00.00001/08/202315/08/2023'ACTIVE''ADM'275421000016009'SOR'













4Borger over 60år opretter selv registrering55e8864cb06dNULL0101611234

'CPR'

09/08/2023 12:00:00.000NULL15/08/2023

'ACTIVE'

'CITIZEN'0101611234'CPR'

Borger sletter registreringenf265453da12455e8864cb06d0101611234

'CPR'

07/09/2023 12:00:00.000NULL07/09/2023

'INACTIVE'

'CITIZEN'0101611234'CPR'
Sletning
5Adm opretter registrering for borger over 60 år03c2aed5b856NULL0101611234'CPR'09/08/2023 12:00:00.00001/08/202315/08/2023'ACTIVE''ADM'275421000016009'SOR'

Adm sletter registreringen8b3eed7ed6c803c2aed5b8560101611234'CPR'07/09/2023 12:00:00.00027/08/202307/09/2023'INACTIVE''ADM'275421000016009'SOR'













6Adm opretter registrering for borger over 60 år12a97d33c361NULL0101611234'CPR'09/08/2023 12:00:00.00001/08/202315/08/2023'ACTIVE''ADM'275421000016009'SOR'

Adm sletter registreringen der markere som fejlregistrering40215a3ef2c912a97d33c3610101611234'CPR'07/09/2023 12:00:00.000
NULL'ENTERED-IN-ERROR''ADM'275421000016009'SOR'













7Adm opretter registrering for borger over 60 årb893fa943e45NULL0101611234'CPR'09/08/2023 12:00:00.00001/08/202315/08/2023'ACTIVE''ADM'275421000016009'SOR'

Adm sletter registreringen17b18c1720beb893fa943e450101611234'CPR'07/09/2023 12:00:00.00027/08/202307/09/2023'INACTIVE''ADM'275421000016009'SOR'

Adm sletter registreringen der markere som fejlregistrering8c20aaef3f0817b18c1720be0101611234'CPR'08/09/2023 12:00:00.000
NULL'ENTERED-IN-ERROR''ADM'275421000016009'SOR'
Opdatering
8Adm opretter registrering for borger over 60 år817db31e97d3NULL0101611234'CPR'09/08/2023 12:00:00.00001/08/202315/08/2023'ACTIVE''ADM'275421000016009'SOR'

Adm sletter registreringen der markere som fejlregistreringba8c620ba79d817db31e97d30101611234'CPR'09/08/2023 13:00:00.000
NULL'ENTERED-IN-ERROR''ADM'275421000016009'SOR'

Adm opretter registrering for borger over 60 årcd2dcc3c1b54ba8c620ba79d0101611234'CPR'09/08/2023 13:05:00.54604/08/202315/08/2023'ACTIVE''ADM'275421000016009'SOR'


Modellen skal læses på følgende måde:

Indenfor et givent CPR nummer er det altid rækken med den seneste 'created_date' der er gældende.

Hvis status er 'ENTERED-IN-ERROR', så er denne og den foregående række ikke gyldige. Dvs. i scenarie nr. 6 har borgeren ikke et aktivt fravalg, mens i scenarie nr. 7 har borgeren et aktivt fravalg.