Skip to content

Commit d19e905

Browse files
committed
missing commented plantuml-files
1 parent 71cf9a5 commit d19e905

7 files changed

+381
-2
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
@startuml
2+
3+
skinparam roundcorner 20
4+
skinparam maxmessagesize 128
5+
skinparam defaultFontName Arial
6+
7+
actor Patient as p
8+
control "Huisarts" as CPS <<CPS>>
9+
boundary "OLVG" as Z2 <<CPC>>
10+
boundary "Geboortezorg" as Z3 <<CPC>>
11+
boundary "Fysio" as Z4 <<CPC>>
12+
13+
group Add "OLVG" to CareTeam
14+
15+
CPS -> Z2: Task
16+
Z2 -> Z2: accept
17+
Z2 --> CPS: notify
18+
CPS -> p: ask for consent
19+
p --> CPS: give consent
20+
CPS -> CPS: add "OLVG" to CareTeam
21+
CPS -> Z2: notify
22+
Z2 -> CPS: fetch Patient details
23+
end
24+
25+
group Add "Geboortezorg" to CareTeam
26+
Z2 -> Z3: Task
27+
Z3 -> Z3: accept
28+
Z3 -> Z2: notify
29+
Z2 -> CPS: notify
30+
CPS -> p: ask for consent
31+
p --> CPS: give consent
32+
CPS -> CPS: add "Geboortezorg" to CareTeam
33+
CPS -> Z2: notify
34+
CPS -> Z3: notify
35+
Z3 -> CPS: fetch Patient details
36+
opt existing data
37+
Z3 -> p: ask for consent
38+
p --> Z3: give consent
39+
end
40+
end
41+
42+
group The patient goed to the "Fysio" and names the Hospital
43+
Z4 -> Z2: Task
44+
Z2 -> Z2: accept and add CareTeam as basedOn
45+
Z2 -> CPS: notify
46+
CPS -> p: ask for consent
47+
p --> CPS: give consent
48+
CPS -> CPS: add "Fysio" to CareTeam
49+
CPS -> Z2: notify
50+
CPS -> Z3: notify
51+
CPS -> Z4: notify
52+
Z4 -> CPS: fetch Patient details
53+
Z4 -> Z2: get data
54+
Z2 -> Z2: check CareTeam
55+
Z2 --> Z4: data
56+
57+
end
58+
59+
@enduml
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@startuml overview-careplan-careteam-management
2+
'https://plantuml.com/activity-diagram-beta
3+
start
4+
:Loop through all Tasks for CarePlan &
5+
evaluate CareTeam membership(-period)
6+
of Task.owner;
7+
:Update CarePlan.activities;
8+
:Update CareTeam;
9+
:Notify CareTeam members
10+
(current and removed members);
11+
stop
12+
@enduml
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
@startuml overview-getting-data-from-careteam-members
2+
3+
skinparam roundcorner 20
4+
skinparam defaultFontName Arial
5+
autonumber
6+
!pragma teoz true
7+
8+
box Care Provider 2 #acd1e9
9+
actor "Practitioner" as Practitioner2
10+
participant "Care Plan Contributor" as CPC2 #LightGray
11+
end box
12+
box Care Provider 1 #e8d0a9
13+
participant "<font color=white>Care Plan Service" as CPS #Gray
14+
participant "Care Plan Contributor" as CPC1 #LightGray
15+
end box
16+
17+
box Care Provider 3 #c1dad6
18+
participant "Care Plan Contributor" as CPC3 #LightGray
19+
end box
20+
21+
22+
23+
24+
Practitioner2 -> CPC2 : show me\n (condition-related)\n data of patient
25+
26+
& note over CPC3 #WhiteSmoke
27+
<color #DarkSlateGray>Actions in gray
28+
<color #DarkSlateGray>are optional
29+
end note
30+
31+
CPC2 -> CPC2 : lookup url\n of CarePlan\n in (local) Task
32+
CPC2 -> CPS : request <color #DarkSlateGray>CarePlan, \nCareTeam<color #DarkSlateGray>, Tasks
33+
CPS --> CPC2 : return <color #DarkSlateGray>CarePlan, \nCareTeam<color #DarkSlateGray>, Tasks
34+
CPC2 -> CPC1 : request health data of patient
35+
CPC1 -> CPS : request <color #DarkSlateGray>CarePlan, \nCareTeam<color #DarkSlateGray>, Tasks
36+
CPS --> CPC1 : return <color #DarkSlateGray>CarePlan, \nCareTeam<color #DarkSlateGray>, Tasks
37+
CPC1 --> CPC1 : check\nauthorization
38+
CPC1 --> CPC2 : health data of patient
39+
CPC2 -> CPC3 : request health data of patient
40+
CPC3 -> CPS : request <color #DarkSlateGray>CarePlan, \nCareTeam<color #DarkSlateGray>, Tasks
41+
CPS --> CPC3 : return <color #DarkSlateGray>CarePlan, \nCareTeam<color #DarkSlateGray>, Tasks
42+
CPC3 --> CPC3 : check\nauthorization
43+
CPC3 --> CPC2 : health data of patient
44+
CPC2 -> Practitioner2 : present Patient data
45+
46+
@enduml
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
@startuml overview-task-negotiation-1-2-3
2+
3+
skinparam roundcorner 20
4+
skinparam defaultFontName Arial
5+
autonumber
6+
!pragma teoz true
7+
8+
box Care Provider 2 #acd1e9
9+
actor "Practitioner" as Practitioner1
10+
participant "Care Plan Contributor" as CPC1 #LightGray
11+
end box
12+
box Care Provider 1 #e8d0a9
13+
participant "<font color=white>Care Plan Service" as CPS #Gray
14+
end box
15+
16+
box Care Provider 3 #c1dad6
17+
participant "Care Plan Contributor" as CPC2 #LightGray
18+
participant "Task manager" as EHR2
19+
actor "Practitioner" as Practitioner2
20+
end box
21+
22+
23+
activate Practitioner1
24+
Practitioner1 -> CPC1 : Start Request\nreferral
25+
& CPC1 -> CPS : Find/select CarePlan
26+
CPC1 -> CPS : Create Task\n referring Request,\n Condition and CarePlan\n (if any)
27+
& CPS -> CPS : Update CareTeam, CarePlan\n and Subscriptions
28+
CPS -> CPC2 : Notify Task created
29+
& CPC2 -> EHR2 : Notify Task created
30+
& note right EHR2 #WhiteSmoke
31+
<color #DarkSlateGray>Actions in gray
32+
<color #DarkSlateGray>are optional
33+
end note
34+
35+
autonumber 10 "<font color=DarkSlateGray>0"
36+
EHR2 -[#DarkSlateGray]> EHR2 : <color #DarkSlateGray>evaluate Task:\n <color #DarkSlateGray>(required data,\n <color #DarkSlateGray>capacity, etc)
37+
& EHR2 -[#DarkSlateGray]> CPC2 : <color #DarkSlateGray>Need more information
38+
& CPC2 -[#DarkSlateGray]> CPS : <color #DarkSlateGray>Create (sub-)Task2: do \n <color #DarkSlateGray> Questionnaire 'required data'
39+
& CPS -[#DarkSlateGray]> CPC1 : <color #DarkSlateGray>Notify Task2 created
40+
& CPC1 -[#DarkSlateGray]> Practitioner1 : <color #DarkSlateGray>Present Questionnaire\n<color #DarkSlateGray>(prefill data from EHR)
41+
42+
Practitioner1 -[#DarkSlateGray]> CPC1 : <color #DarkSlateGray>Complete\n <color #DarkSlateGray>QuestionnaireResponse
43+
& CPC1 -[#DarkSlateGray]> CPS : <color #DarkSlateGray>Update Task2: Add\n <color #DarkSlateGray>QuestionnaireResponse
44+
& CPS -[#DarkSlateGray]> CPC2 : <color #DarkSlateGray>Notify Task2 update
45+
& CPC2 -[#DarkSlateGray]> EHR2 : <color #DarkSlateGray>Notify Task2 update
46+
47+
autonumber 20
48+
EHR2 -> EHR2 : evaluate Task:\n status 'received'
49+
& EHR2 -> CPC2 : Notify Task update
50+
& CPC2 -> CPS : Update Task: \n status 'received'
51+
& CPS -> CPC1 : Notify Task update
52+
& CPC1 -> Practitioner1 : Your order has been received
53+
54+
55+
EHR2 -> Practitioner2 : put Task in \nworkitem-list
56+
57+
deactivate Practitioner1
58+
59+
== waiting for Practitioner to accept ==
60+
autonumber 30
61+
Practitioner2 -> EHR2 : Task accepted
62+
activate Practitioner2
63+
& EHR2 -> CPC2 : Task accepted
64+
& CPC2 -> CPS : Update Task: status accepted
65+
CPS -> CPS : Update CareTeam, CarePlan
66+
& CPS -> CPC1 : Notify Task update
67+
& CPC1 -[#DarkSlateGray]> Practitioner1 : <color #DarkSlateGray>Notify Practitioner
68+
69+
' autonumber 40 "<font color=DarkSlateGray>0"
70+
' Practitioner2 -[#DarkSlateGray]> EHR2 : <color #DarkSlateGray>Need patient\n <color #DarkSlateGray>contact details
71+
72+
' & EHR2 -[#DarkSlateGray]> CPC2 : <color #DarkSlateGray>Get patient contact details
73+
' & CPC2 -[#DarkSlateGray]> CPS : <color #DarkSlateGray>Get CareTeam for\n <color #DarkSlateGray>url Care Provider 2
74+
' CPC2 -[#DarkSlateGray]> CPC1 : <color #DarkSlateGray>Get Patient details
75+
' CPC1 -[#DarkSlateGray]-> CPC2 : <color #DarkSlateGray>Patient details
76+
77+
' & CPC2 -[#DarkSlateGray]-> EHR2 : <color #DarkSlateGray>Patient details
78+
79+
' & EHR2 -[#DarkSlateGray]-> Practitioner2 : <color #DarkSlateGray>present Patient details
80+
== waiting for Practitioner to start ==
81+
autonumber 50
82+
Practitioner2 -> EHR2 : starting Task
83+
& EHR2 -> CPC2 : Task in-progress
84+
& CPC2 -> CPS : Update Task: status in-progress
85+
& CPS -> CPC1 : Notify Task update
86+
& CPC1 -[#DarkSlateGray]> Practitioner1 : <color #DarkSlateGray>Notify Practitioner
87+
== waiting for Practitioner to finish ==
88+
autonumber 60
89+
Practitioner2 -> EHR2 : completing Task
90+
& EHR2 -> CPC2 : Task is done
91+
& CPC2 -> CPS : Update Task: status complete
92+
& CPS -> CPC1 : Notify Task update
93+
& CPC1 -[#DarkSlateGray]> Practitioner1 : <color #DarkSlateGray>Notify Practitioner
94+
deactivate Practitioner2
95+
@enduml
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
@startuml overview-task-negotiation-1-2
2+
3+
skinparam roundcorner 20
4+
skinparam defaultFontName Arial
5+
6+
7+
!pragma teoz true
8+
9+
box Care Provider 1 #e8d0a9
10+
actor "Practitioner" as Practitioner1
11+
participant "Care Plan Contributor" as CPC1 #LightGray
12+
participant "<font color=white>Care Plan Service" as CPS #Gray
13+
end box
14+
box Care Provider 2 #acd1e9
15+
participant "Care Plan Contributor" as CPC2 #LightGray
16+
participant "Task manager" as EHR2
17+
actor "Practitioner" as Practitioner2
18+
end box
19+
20+
activate Practitioner1
21+
autonumber
22+
Practitioner1 -> CPC1 : Start Request\nreferral
23+
& CPC1 -> CPS : Find/select CarePlan
24+
25+
CPC1 -> CPS : Create Task\n referring Request,\n Condition and CarePlan\n (if any)
26+
& CPS -> CPS : Update CareTeam, CarePlan\n and Subscriptions
27+
CPS o-> CPC1 : Notify CareTeam update,\n CarePlan update
28+
& CPS o-> CPC2 : Notify Task created
29+
& CPC2 -> EHR2 : Notify Task created
30+
& note right EHR2 #WhiteSmoke
31+
<color #DarkSlateGray>Actions in gray
32+
<color #DarkSlateGray>are optional
33+
end note
34+
35+
autonumber 10 "<font color=DarkSlateGray>0"
36+
EHR2 -[#DarkSlateGray]> EHR2 : <color #DarkSlateGray>evaluate Task\n <color #DarkSlateGray>(required data,\n <color #DarkSlateGray>capacity, etc)
37+
&EHR2 -[#DarkSlateGray]> CPC2 : <color #DarkSlateGray>Need more information
38+
& CPC2 -[#DarkSlateGray]> CPS : <color #DarkSlateGray>Create (sub-)Task2: do\n <color #DarkSlateGray> Questionnaire 'required data'
39+
& CPS -[#DarkSlateGray]> CPC1 : <color #DarkSlateGray>Notify Task2 created
40+
& CPC1 -[#DarkSlateGray]> Practitioner1 : <color #DarkSlateGray>Present Questionnaire\n<color #DarkSlateGray>(prefill data from EHR)
41+
42+
Practitioner1 -[#DarkSlateGray]> CPC1 : <color #DarkSlateGray>Complete\n <color #DarkSlateGray>QuestionnaireResponse
43+
& CPC1 -[#DarkSlateGray]> CPS : <color #DarkSlateGray>Update Task2: Add\n <color #DarkSlateGray>QuestionnaireResponse
44+
& CPS -[#DarkSlateGray]> CPC2 : <color #DarkSlateGray>Notify Task2 update
45+
& CPC2 -[#DarkSlateGray]> EHR2 : <color #DarkSlateGray>Notify Task2 update
46+
47+
' autonumber 20 "<font color=DarkSlateGray>0"
48+
' EHR2 -[#DarkSlateGray]> EHR2 : <color #DarkSlateGray>evaluate Task\n <color #DarkSlateGray>(required data,\n <color #DarkSlateGray>capacity, etc)
49+
' & EHR2 -[#DarkSlateGray]> CPC2 : <color #DarkSlateGray>need patient\n <color #DarkSlateGray>contact details
50+
' & CPC2 -[#DarkSlateGray]> CPS : <color #DarkSlateGray>Create (sub-)Task3: \n <color #DarkSlateGray>status 'ready',\n <color #DarkSlateGray> Questionnaire patient\n <color #DarkSlateGray>contact details in Task3.input
51+
' & CPS -[#DarkSlateGray]> CPC1 :<color #DarkSlateGray>Notify Task3 created
52+
' & CPC1 -[#DarkSlateGray]> Practitioner1 : <color #DarkSlateGray>Present Questionnaire\n<color #DarkSlateGray>(prefill data from EHR)
53+
54+
' Practitioner1 -[#DarkSlateGray]> CPC1 : <color #DarkSlateGray>Complete\n <color #DarkSlateGray>QuestionnaireResponse
55+
' & CPC1 -[#DarkSlateGray]> CPS : <color #DarkSlateGray>Update Task3: \n <color #DarkSlateGray>status 'completed', Add\n <color #DarkSlateGray>QuestionnaireResponse\n <color #DarkSlateGray>to Task3.output
56+
' & CPS -[#DarkSlateGray]> CPC2 : <color #DarkSlateGray>Notify Task3 update
57+
' & CPC2 -[#DarkSlateGray]> EHR2 : <color #DarkSlateGray>Notify Task3 update
58+
59+
autonumber 30
60+
EHR2 -> EHR2 : evaluate Task:\n status 'accepted'
61+
& EHR2 -> CPC2 : Notify Task update
62+
& CPC2 -> CPS : Update Task: \n status 'accepted'
63+
CPS -> CPS : Update CareTeam, CarePlan
64+
CPS o-> CPC1 :Notify Task accepted\n CareTeam updated\n CarePlan updated
65+
& CPS o-> CPC2 :Notify CareTeam updated\n CarePlan updated
66+
& CPC1 -> Practitioner1 : Your order \nis accepted
67+
deactivate Practitioner1
68+
69+
== waiting for Task to start ==
70+
activate Practitioner2
71+
Practitioner2 -> EHR2 : starting with Task
72+
& EHR2 -> CPC2 : Task in-progress
73+
& CPC2 -> CPS : Update Task: status in-progress
74+
& CPS -> CPC1 : Notify Task update
75+
76+
== waiting for Task to finish ==
77+
Practitioner2 -> EHR2 : Task done
78+
& EHR2 -> CPC2 : Task is done
79+
& CPC2 -> CPS : Update Task: status complete
80+
& CPS -> CPC1 : Notify Task update
81+
deactivate Practitioner2
82+
@enduml
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
@startuml workflow-base-f
2+
3+
skinparam roundcorner 20
4+
skinparam defaultFontName Arial
5+
6+
7+
!pragma teoz true
8+
9+
box Care Provider 1 #e8d0a9
10+
actor "Practitioner 1" as P1
11+
participant "EHR1" as C1 #LightGray
12+
end box
13+
box Care Provider 2 #acd1e9
14+
participant "EHR2" as C2 #LightGray
15+
actor "Practitioner 2" as P2
16+
end box
17+
18+
hide footbox
19+
20+
activate P1
21+
autonumber
22+
P1 -[#Gray]> C1 : <color #Gray>Create/Select Request*
23+
P1 -[#Gray]> C1 : <color #Gray>Create/Select CarePlan*
24+
' & C1 -> C1 : Find/select CarePlan
25+
26+
P1 -> C1 : Create Task
27+
' \nand CarePlan (if any)
28+
& C1 -> C1 : Create/Select\n Subscriptions
29+
' \nand CareTeam, CarePlan
30+
' C1 o-> C1 : Notify CareTeam update,\n CarePlan update
31+
C1 -> C2 : Notify
32+
C2 -> C1 : Get Task and\n related resources
33+
34+
35+
' autonumber 10 "<font color=Gray>0"
36+
' E2 -[#Gray]> E2 : <color #Gray>evaluate Task\n <color #Gray>(required data,\n <color #Gray>capacity, etc)
37+
' &E2 -[#Gray]> C2 : <color #Gray>Need more information
38+
' & C2 -[#Gray]> C1 : <color #Gray>Create (sub-)Task2: do\n <color #Gray> Questionnaire 'required data'
39+
' & C1 -[#Gray]> C1 : <color #Gray>Notify Task2 created
40+
' & C1 -[#Gray]> P1 : <color #Gray>Present Questionnaire\n<color #Gray>(prefill data from EHR)
41+
42+
' P1 -[#Gray]> C1 : <color #Gray>Complete\n <color #Gray>QuestionnaireResponse
43+
' & C1 -[#Gray]> C1 : <color #Gray>Update Task2: Add\n <color #Gray>QuestionnaireResponse
44+
' & C1 -[#Gray]> C2 : <color #Gray>Notify Task2 update
45+
' & C2 -[#Gray]> E2 : <color #Gray>Notify Task2 update
46+
47+
C2 -> C2 : evaluate Task
48+
& note over P2 #WhiteSmoke
49+
<color #Gray>Evaluating a Task may
50+
<color #Gray> involve checking on
51+
<color #Gray> required data and capacity.
52+
<color #Gray>It may result in a new Task
53+
<color #Gray> for Care Provider 1 to fill
54+
<color #Gray> in a Questionnaire
55+
end note
56+
57+
' C2 o-> P2 : Update Task
58+
C2 -> C1 : Update Task
59+
&C2 o-> P2 : Notify
60+
' C1 -> C1 : Update CareTeam, CarePlan
61+
62+
' \n CareTeam updated\n CarePlan updated
63+
' & C1 o-> C2 :Notify CareTeam updated\n CarePlan updated
64+
C1 -> P1 : 'Your task is now in state \n received/rejected/accepted'
65+
66+
deactivate P1
67+
group Act on Task
68+
activate P2
69+
P2 -> C2 : Act accordingly\n (may involve creating Events)
70+
71+
& note right P2 #WhiteSmoke
72+
<color #Gray>May involve multiple
73+
<color #Gray> updates to the Task
74+
<color #Gray> changing status or output
75+
end note
76+
77+
C2 -> C2 : Update Task
78+
&C2 -> C1 : Update Task
79+
&C1 -> P1 : Notify
80+
deactivate P2
81+
end
82+
P1 -[#Gray]> C1 : <color #Gray>If Task status completed/failed\n<color #Gray>Update Request completed*
83+
84+
85+
@enduml

input/pagecontent/workflow.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ More [advanced FHIR workflow patterns](https://hl7.org/fhir/R4/workflow-manageme
3030
<!--
3131
In Shared Care Planning, an advanced FHIR workflow pattern is used to cover all requirements for a generic workflow process between organizations. The process is based on [FHIR workflow pattern G](https://hl7.org/fhir/R4/workflow-management.html#optiong), but SCP nodes can also use pattern [F](https://hl7.org/fhir/R4/workflow-management.html#optionf) or [H](https://hl7.org/fhir/R4/workflow-management.html#optionh) depending on the capabilities of their healthcare systems. The main difference between these 3 patterns (F, G and H) is the location of the Task; it can be stored at the requester, performer or at a third party (broker). For example; if you'd want to create a Task at the performer, but their EHR does not support it, you may choose to create a Task at your own EHR and notify the performer (and thus following pattern [F](https://hl7.org/fhir/R4/workflow-management.html#optionf) in stead of [G](https://hl7.org/fhir/R4/workflow-management.html#optiong)). SCP uses [notifications](./notification.md) in between nodes to provide quick feedback/updates in initial phase of a Task (creation to acceptance/rejectance).
3232
33-
#### Task workflow Option G: Creation of Task on performer's system
33+
#### Task workflow Option F: Creation of Task on performer's system
3434
<div>
35-
{% include workflow-base-g.svg %}
35+
{% include workflow-base-f.svg %}
3636
</div>
3737
3838
#### Notification of stakeholders

0 commit comments

Comments
 (0)