Nedstående diagram viser opbygningen af FGVHR-servicen:
![]()
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: Borger | Verifikation | Mapning til FGVHR ServiceActor | ||
| SecurityContext | Ticket | Audience | Matche audience som findes som konfiguration i FGVHR(?) | |
| Validity | Er valid | |||
| Message | Verificeres ikke - må gerne være der | |||
| ActingUser | UserType | Skal være Citizen | Brugertypen: Borger | |
| IdentifierFormat | Skal være CPR | |||
| Identifier | Skal være sat | userPersonIdentifier | ||
| GivenName | Verificeres ikke - må gerne være der | |||
| SurName | Verificeres ikke - må gerne være der | |||
| Credentials | Verificeres ikke - må gerne være der | |||
| PersistentUniqueKey | Verificeres 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: Administrativ | Verifikation | Mapning til FGVHR ServiceActor | ||
| SecurityContext | Ticket | Audience | Verificeres ikke - må gerne være der | |
| Validity | Er valid | |||
| Message | Verificeres ikke - må gerne være der | |||
| ActingUser | UserType | Skal være HealthcareProfessional | Brugertypen: Administrativ | |
| IdentifierFormat | Skal være CPR | userPersonIdentifier | ||
| Identifier | Skal være sat | |||
| GivenName | Verificeres ikke - må gerne være der | |||
| SurName | Verificeres ikke - må gerne være der | |||
| Credentials.NationalRole | Skal være der - og skal matche config variable i FGVHR | |||
| PersistentUniqueKey | Verificeres ikke - må gerne være der | |||
| PrincipalUser | Må ikke være der | |||
| Organisation | Identifier | Skal være der | organisationIdentifier | |
| identifierFormat | Skal være der og skal være CVR | |||
| Client | Verificeres ikke - må gerne være der | |||
| kolonne | beskrivelse |
|---|---|
| patient_id | Patientens cpr nummer. |
| patient_id_source | Typen af patient_id. Dvs. kun 'CPR' lige nu. |
| created_date | Tidspunktet hvor rækken oprettes i databasen. |
| citizen_created_date | Datoen borgeren har angivet på blanketten (tom hvis den ikke kommer fra en blanket) |
| valid_from | Tidspunktet hvor registreringen er ACTIVE (= created_date + 7 dage) |
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 historiken bevares.
| Nr | Scenarie | patient_id | patient_id_source | created_date | citizen_created_date | valid_from | status | actor_role | actor_id | actor_id_source |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Borger over 60år opretter selv registrering | 0101611234 | 'CPR' | 09/08/2023 12:00:00 | NULL | 15/08/2023 12:00:00 | 'ACTIVE' | 'CITIZEN' | 0101611234 | 'CPR' |
| 2 | Borger under 60år opretter selv registrering | ? | ||||||||
| 3 | Adm opretter registrering for borger over 60 år | 0101611234 | 'CPR' | 09/08/2023 12:00:00 | 01/08/2023 | 15/08/2023 12:00:00 | 'ACTIVE' | 'ADM' | 275421000016009 | 'SOR' |
| 4 | Borger over 60år opretter selv registrering | 0101611234 | 'CPR' | 09/08/2023 12:00:00 | NULL | 15/08/2023 12:00:00 | 'ACTIVE' | 'CITIZEN' | 0101611234 | 'CPR' |
| Borger sletter registreringen | 0101611234 | 'CPR' | 07/09/2023 12:00:00 | NULL | NULL | 'INACTIVE' | 'CITIZEN' | 0101611234 | 'CPR' | |
| Sletning | ||||||||||
| 5 | Adm opretter registrering for borger over 60 år | 0101611234 | 'CPR' | 09/08/2023 12:00:00 | 01/08/2023 | 15/08/2023 12:00:00 | 'ACTIVE' | 'ADM' | 275421000016009 | 'SOR' |
| Adm sletter registreringen | 0101611234 | 'CPR' | 07/09/2023 12:00:00 | 27/08/2023 | NULL | 'INACTIVE' | 'ADM' | 275421000016009 | 'SOR' | |
| 6 | Adm opretter registrering for borger over 60 år | 0101611234 | 'CPR' | 09/08/2023 12:00:00 | 01/08/2023 | 15/08/2023 12:00:00 | 'ACTIVE' | 'ADM' | 275421000016009 | 'SOR' |
| Adm sletter registreringen der markere som fejlregistrering | 0101611234 | 'CPR' | 07/09/2023 12:00:00 | NULL | 'ENTERED-IN-ERROR' | 'ADM' | 275421000016009 | 'SOR' | ||
| 7 | Adm opretter registrering for borger over 60 år | 0101611234 | 'CPR' | 09/08/2023 12:00:00 | 01/08/2023 | 15/08/2023 12:00:00 | 'ACTIVE' | 'ADM' | 275421000016009 | 'SOR' |
| Adm sletter registreringen | 0101611234 | 'CPR' | 07/09/2023 12:00:00 | 27/08/2023 | NULL | 'INACTIVE' | 'ADM' | 275421000016009 | 'SOR' | |
| Adm sletter registreringen der markere som fejlregistrering | 0101611234 | 'CPR' | 08/09/2023 12:00:00 | NULL | 'ENTERED-IN-ERROR' | 'ADM' | 275421000016009 | 'SOR' | ||
| Opdatering | ||||||||||
| 8 | Adm opretter registrering for borger over 60 år | 0101611234 | 'CPR' | 09/08/2023 12:00:00 | 01/08/2023 | 15/08/2023 12:00:00 | 'ACTIVE' | 'ADM' | 275421000016009 | 'SOR' |
| Adm sletter registreringen der markere som fejlregistrering | 0101611234 | 'CPR' | 09/08/2023 13:00:00 | NULL | 'ENTERED-IN-ERROR' | 'ADM' | 275421000016009 | 'SOR' | ||
| Adm opretter registrering for borger over 60 år | 0101611234 | 'CPR' | 09/08/2023 13:05:00 | 04/08/2023 | NULL | '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, men den i scenarie nr. 7 har borgeren et aktivt fravalg.