DDTV Use Cases

A.1: Borger vælger ny tandlæge

@startuml

center header
Usecase A.1 - Borger vælger ny tandlæge

end header


skinparam sequence {
LifeLineBackgroundColor #FF4E26
ParticipantBackgroundColor #72BEDB
}

participant Borger 
participant Sundhed.dk
participant NemLogin
participant NSP
participant NSP_Backoffice
Queue MessageQueue

Note Over Borger 
A.1: Borger logger på Sundhed.dk
og vælger en ny tandlæge, 
hvorefter tandlægen automatisk kontaktes.
end note

Activate Borger
Borger -> Sundhed.dk ++ : Aktiverer Sundhed.dk i Browser

Sundhed.dk -> NemLogin ++ : login

return

Sundhed.dk -> NSP ++ : ddtvCheckStatus(...)
return status info


Sundhed.dk -> Sundhed.dk: vis status og muligheder
return

Borger -> Sundhed.dk ++: (A.1) Vælg ny tandlæge
Sundhed.dk -> NSP ++: ddtvApplyForNewDentist(...)
NSP -> NSP_Backoffice ++ : gem data
return
NSP ->> MessageQueue : Besked til tandlæge om at optage borgeren
NSP ->> MessageQueue : Kvittering til borger

return
return
return  
DeActivate Borger

== Asynkrone jobs på NSP backoffice ==
MessageQueue ->> MessageQueue: Send besked til tandlægen (asynk)

MessageQueue ->> MessageQueue: Send kvittering til borger via Digital Post (asynk)


@enduml


A.2: Borger fortryder et valg

@startuml

center header
Usecase A.2 - Borger fortryder valg af tandlæge

end header


skinparam sequence {
LifeLineBackgroundColor #FF4E26
ParticipantBackgroundColor #72BEDB
QueueBackgroundColor #72BEDB
}

participant Borger 
participant Sundhed.dk
participant NemLogin
participant NSP
participant NSP_Backoffice
Queue MessageQueue

Note Over Borger 
A.2: En borger har valgt en ny tandlæge men fortryder sit valg.

Borgeren er endnu ikke blevet kontaktet af tandlægen.
"Din Digitale Tandlægevælger" sender besked til tandlægen

om at ignorere tidligere modtaget anmodning om optagelse af borgeren.
end note

Activate Borger
Borger -> Sundhed.dk ++ : Aktiverer Sundhed.dk i Browser
Sundhed.dk -> NemLogin++ : login
return
Sundhed.dk -> NSP ++ : ddtvCheckStatus(...)
return status info
Sundhed.dk -> Sundhed.dk: vis status og muligheder
return
Borger -> Sundhed.dk++ : (A.2) Fortryd valg
Sundhed.dk -> NSP++: ddtvDisregardApplicationForNewDentist(...)
NSP -> NSP_Backoffice++: gem data
return
NSP ->> MessageQueue : Besked til tandlæge om at ignorere
NSP ->> MessageQueue : Kvittering til borger
return
return

Borger->? : Evt. videre til nyt valg af tandlæge
Borger->? : Eller 'opt out'
DeActivate Borger

== Asynkrone jobs på NSP backoffice ==
MessageQueue ->> MessageQueue: Send besked til tandlægen (asynk)

MessageQueue ->> MessageQueue: Send Digital Post til Borger (asynk)


@enduml

A.3: Borger ønsker ikke at vælge tandlæge her (‘opt out’)

@startuml

center header
Usecase A.3 - Borger ønsker ikke at deltage

end header


skinparam sequence {
LifeLineBackgroundColor #FF4E26
ParticipantBackgroundColor #72BEDB
QueueBackgroundColor #72BEDB
}

participant Borger 
participant Sundhed.dk
participant NemLogin
participant NSP
participant NSP_Backoffice
Queue MessageQueue

Note Over Borger 
A.3: En borger har fået digital post med anmodning om
at vælge ny tandlæge. Borgeren ønsker dog ikke at være en 
del af denne løsning, f.eks. fordi borgeren selv ønsker 
at kontakte ny tandlæge eller lignende.
end note

Activate Borger
Borger -> Sundhed.dk ++ : Aktiverer Sundhed.dk i Browser
Sundhed.dk -> NemLogin++ : login
return
Sundhed.dk -> NSP ++ : ddtvCheckStatus(...)
return status info
Sundhed.dk -> Sundhed.dk: vis status og muligheder
return
Borger -> Sundhed.dk++ : (A.3) Ønsker ikke at deltage
Sundhed.dk -> NSP++: ddtvOptOut(...)
NSP -> NSP_Backoffice++: gem data
return
NSP ->> MessageQueue : Kvittering til borger
opt Hvis Borgeren allerede har valgt ny tandlæge
NSP ->> MessageQueue : Besked til tandlæge om at ignorere
end
return
return
DeActivate Borger

== Asynkrone jobs på NSP backoffice ==
MessageQueue ->> MessageQueue: Send Digital Post til Borger (asynk)
opt Hvis Borgeren allerede har valgt ny tandlæge
MessageQueue ->> MessageQueue: Send besked til tandlægen (asynk)
end

@enduml


A.4: Borger ønsker ikke (flere) påmindelser


A.5: Borger angiver aktuel tandlæge, men ønsker ikke flytteanmodning

@startuml

center header
Usecase A.5 - Borger angiver aktuel tandlæge

end header

skinparam sequence {
LifeLineBackgroundColor #FF4E26
ParticipantBackgroundColor #72BEDB
}

participant Borger 
participant Sundhed.dk
participant NemLogin
participant NSP
participant NSP_Backoffice
Queue MessageQueue

Note Over Borger 
Borger logger på Sundhed.dk
og angiver en tandlæge, 
som borgeren allerede er i 
kontakt med. Borgeren ønsker ikke,
at tandlægen kontaktes automatisk
end note

Activate Borger
Borger -> Sundhed.dk ++ : Aktiverer Sundhed.dk i Browser
Sundhed.dk -> NemLogin++ : login
return
Sundhed.dk -> NSP ++ : ddtvCheckStatus(...)
return status info
Sundhed.dk -> Sundhed.dk: vis status og muligheder
return
Borger -> Sundhed.dk ++ : (A.5) Borger angiver aktuel tandlæge
Sundhed.dk -> NSP ++ : ddtvNewDentistFullStop(...)
NSP -> NSP_Backoffice ++: gem data
return
NSP ->> MessageQueue: Kvittering til borger
Note Right of NSP 
Bemærk: Der sendes ingen 
besked til tandlægen.
end note
return
return
DeActivate Borger

== Asynkrone jobs på NSP backoffice ==

MessageQueue ->> MessageQueue: evt. Send Digital Post kvittering til Borger (asynk)

@enduml



A.6: Befuldmægtiget træffer valg for borger


A.7: Forældremyndig træffer valg for barn (<15 år)


A.8: Borger kontrollerer status for tandlægeflytning