Page History
Datamodellen består af 2 relativt simple tabeller:
- DentistChoice indeholder en kæde af igangværende og afsluttede tandlægevalg. Der er Kæden fører historik på status-ændringer (bemærk: en ny reminder er ikke en statusændring), dvs. når status ændrer sig oprettes en kopi af elementet med ny status, der kædes sammen med den tidligere 'DentistChoice'. Kun ændringer til 'status' giver anledning til nyt element i kæden.
- Reminders indeholde tidspunkter og type på alle reminders til borgere, der er sendt ifm. et givet tandlægevalg.
...
@startuml
hide empty description
state "DentistChoice 1" as c1
c1 : dentisChoiceID = 0123789
c1 : previous = nil
c1 : next = 01356783
c1 : personID = 1009331234
c1 : dentistID = nil
c1 : __status__ = 0 (noDentist)
c1 : __requestID__ = nil
state "DentistChoice 2" as c2
c2 : dentisChoiceID = 01356783
c2 : previous = 0123789
c2 : next = 1242883
c2 : personID = 1009331234
c2 : dentistID = 12341234
c2 : __status__ = 1 (dentistChosen)
c2 : __requestID__ = nil
state "DentistChoice 3" as c3
c3 : dentisChoiceID = 1242883
c3 : previous = 01356783
c3 : next = 3495870
c3 : personID = 1009331234
c3 : dentistID = 12341234
c3 : __status__ = 2 (dentistContacted)
c3 : __requestID__ = 1AD3478FC266...
state "DentistChoice 4" as c4
c4 : dentisChoiceID = 3495870
c4 : previous = 1242883
c4 : next = 0123789
c4 : personID = 1009331234
c4 : dentistID = 12341234
c4 : __status__ = 3 (dentistRejected)
c4 : __requestID__ = 1AD3478FC266...
state "DentistChoice 5" as c5
c5 : dentisChoiceID = 0123789
c5 : previous = 3495870
c5 : next = 2493574
c5 : personID = 1009331234
c5 : dentistID = nil
c5 : __status__ = 0 (noDentist)
c5 : __requestID__ = nil
state "DentistChoice 6" as c6
c6 : dentisChoiceID = 2493574
c6 : previous = 0123789
c6 : next = 4737388
c6 : personID = 1009331234
c6 : dentistID = 67896789
c6 : __status__ = 1 (dentistChosen)
c6 : __requestID__ = nil
state "DentistChoice 7" as c7
c7 : dentisChoiceID = 4737388
c7 : previous = 2493574
c7 : next = 34850034
c7 : personID = 1009331234
c7 : dentistID = 67896789
c7 : __status__ = 1 (dentistContacted)
c7 : __requestID__ = 3DF67AD337DE99...
state "DentistChoice 8" as c8
c8 : dentisChoiceID = 34850034
c8 : previous = 4737388
c8 : next = nil
c8 : personID = 1009331234
c8 : dentistID = 67896789
c8 : __status__ = 3 (dentistOK)
c8 : __requestID__ = 3DF67AD337DE99...
Eksempel 1 - Simpelt tandlægevalg
Her ses et eksempel på en simpel kæde for en ung borger, der oprettes automatisk og umiddelbart derefter vælger en ny tandlæge:
Eksempel 2 - Tandlæge afviser
Her ses et eksempel på en ung borger, der blev oprettet i databasen lige inden vedkommende blev 22 år, der efter et par reminders vælger en ny tandlæge. Denne tandlæge har desværre ikke plads, og borgeren må prøve igen, hvorefter det lykkes.
Eksempel 3 - Fejl i SOR => kommunikationsfejl
Her ses et eksempel på en ung borger, der blev oprettet i databasen lige inden vedkommende blev 22 år. Ved henvendelse til tandlægen (via EDI-portalen) opstod der en fejl (f.eks. fordi den pågældende tandlæge ikke eksisterer længere, men det er ikke opdateret i SOR). Derfor sendes en fejlbesked til borgeren via digital post, hvor borgeren opfordres til at vælge en ny tandlæge.
Eksempel 4 - Tandlæge tager for lang tid om at svare (timeout)
Her ses et eksempel på en ung borger, der blev oprettet i databasen lige inden vedkommende blev 22 år, men hvor tandlægen ikke reagerer i tide og henvendelsen "timer ud".
Eksempel 5 - Borger fortryder valg efter tandlægen er kontaktet
Her ses et eksempel på en ung borger, der blev oprettet i databasen lige inden vedkommende blev 22 år. Efter det initielle valg, og inden den første tandlæge har nået at svare, fortryder borgeren og vælger en ny tandlæge.
Eksempel 6 - Borger fortryder valg inden tandlægen er kontaktet
Her ses et eksempel på en ung borger, der blev oprettet i databasen lige inden vedkommende blev 22 år. Efter det initielle valg, og inden den første tandlæge er blevet kontaktet, fortryder borgeren og vælger en ny tandlæge.
[*]->c1
c1->c2
c2-l->c1
c2->c3
c3-l->c2
c3->c4
c4-l->c3
c4->c5
c5-l->c4
c5->c6
c6-l->c5
c6->c7
c7-l->c6
c8-l->c7
c7->c8
c8->[*]
state "Reminder" as r1
state "Reminder" as r2
state "Reminder" as r3
state "Reminder" as r4
r1-u->c1
r2-u->c1
r3-u->c1
r4-u->c4
...






