Skip to content

Commit 97f1ba5

Browse files
committed
Initial commit for structurizr dsl C4 model
1 parent ead190c commit 97f1ba5

File tree

6 files changed

+878
-0
lines changed

6 files changed

+878
-0
lines changed

docs/diagrams/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
*.bkp
22
*.dtmp
3+
4+
/structurizr/.structurizr/
5+
/structurizr/current/.structurizr/
6+
/structurizr/pilot/.structurizr/
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
## Introduction
2+
3+
Just a README file ...
4+
5+
## Repository Structure
6+
7+
- `/structurizr/current`: Contains DSL for current (as-is) Lung Cancer Health Check state
8+
- `/structurizr/pilot`: Contains DSL for Pilot (interim to-be) Lung Cancer Health Check state
9+
10+
## Getting Started
11+
12+
### 1. Lung Health Check Models (Structurizr)
13+
14+
To work with the models, you'll need to run Structurizr Lite locally. This requires Docker installation.
15+
16+
#### Prerequisites
17+
18+
- Docker installed from [https://www.docker.com/get-started/](https://www.docker.com/get-started/)
19+
20+
#### Running Structurizr
21+
22+
First, pull the latest Structurizr lite image:
23+
24+
```bash
25+
docker pull structurizr/lite
26+
```
27+
28+
Then run the container (commands vary by operating system):
29+
30+
##### MacOS and Linux
31+
32+
```bash
33+
cd structurizr/pilot
34+
docker run -it --rm -p 8080:8080 -v ./:/usr/local/structurizr structurizr/lite
35+
```
36+
37+
Note: For MacOS Sequoia 15.2 and later, use this command instead to avoid sigterm exceptions:
38+
39+
```bash
40+
cd pilot
41+
docker run --rm -e JAVA_TOOL_OPTIONS="-XX:UseSVE=0" -p 8080:8080 -v ./:/usr/local/structurizr structurizr/lite
42+
```
43+
44+
##### Windows
45+
46+
```bash
47+
cd pilot
48+
docker run -it --rm -p 8080:8080 -v %cd%:/usr/local/structurizr structurizr/lite
49+
```
50+
51+
Once running, access the live view at http://localhost:8080
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
workspace {
2+
3+
model {
4+
// People
5+
participant = person "Participant User" "A member of the public who is eligible for lung cancer risk check" "Participant"
6+
st = person "Lung Cancer Screening Provider Staff users" "Internal staff users including clinical and administrative staff" "Lung Cancer Screening Provider Staff"
7+
8+
// Dummy "neutral" system to use as diagram scope
9+
overview = softwareSystem "LCRC Overview" {
10+
description "Logical overview to include all relevant systems"
11+
}
12+
13+
// Real systems
14+
gpSystem = softwareSystem "GP System" "Holds primary care data for patients" "External System"
15+
16+
localCohortingSystem = softwareSystem "Local Cohorting System" "Extracts primary care data from GP systems and identifies initial eligible cohort" "External System"
17+
18+
localPreAssessmentSystem = softwareSystem "Local LCRC Preassessment System" "Processes data from GP system to identify at-risk individuals, manage invitations, support lung cancer risk check, CT appointment booking & referral" "External System"
19+
20+
localNotificationSystem = softwareSystem "Local Notification System" "Delivers communications (letters only) to participants" "External System"
21+
22+
// Real relationships
23+
gpSystem -> localCohortingSystem "Provides GP patient record data to"
24+
localCohortingSystem -> localPreAssessmentSystem "Provides lung screening initial eligible cohort data (LUNGDF100) to"
25+
localPreAssessmentSystem -> localNotificationSystem "Sends communications using"
26+
localNotificationSystem -> participant "Sends communications to"
27+
selection = localPreAssessmentSystem -> participant "Selects for invitation based on risk"
28+
rawGpData = gpSystem -> localPreAssessmentSystem "Provides raw data to"
29+
st -> localPreAssessmentSystem "Uses to manage telephone lung cancer risk check, CT appointment booking & referral process"
30+
st -> participant "Runs telephone lung risk check journey with (questions answered, risk rating provided, CT scan appointment booked)"
31+
}
32+
33+
views {
34+
systemContext localPreAssessmentSystem {
35+
include *
36+
exclude selection
37+
exclude rawGpData
38+
//autolayout lr
39+
title "Local Lung Cancer Risk Check System Context – Full View (current state)"
40+
description "All systems and user interactions involved in Lung Cancer Risk Check stage of Lung Cancer Screening"
41+
}
42+
43+
styles {
44+
element "Person" {
45+
color #ffffff
46+
fontSize 22
47+
shape Person
48+
}
49+
element "Participant" {
50+
background #686868
51+
}
52+
element "Lung Cancer Screening Provider Staff" {
53+
background #08427B
54+
}
55+
element "Software System" {
56+
background #1168bd
57+
color #ffffff
58+
}
59+
element "External System" {
60+
background #686868
61+
}
62+
element "Existing System" {
63+
background #999999
64+
color #ffffff
65+
}
66+
element "Container" {
67+
background #438dd5
68+
color #ffffff
69+
}
70+
element "Web Browser" {
71+
shape WebBrowser
72+
}
73+
element "Mobile App" {
74+
shape MobileDeviceLandscape
75+
}
76+
element "Database" {
77+
shape Cylinder
78+
}
79+
element "Queue" {
80+
shape "Pipe"
81+
}
82+
element "Component" {
83+
background #85bbf0
84+
color #000000
85+
}
86+
}
87+
}
88+
}
Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
{
2+
"configuration" : { },
3+
"description" : "Description",
4+
"documentation" : { },
5+
"id" : 1,
6+
"lastModifiedAgent" : "structurizr-ui",
7+
"lastModifiedDate" : "2025-09-10T19:42:46Z",
8+
"model" : {
9+
"people" : [ {
10+
"description" : "A member of the public who is eligible for lung cancer risk check",
11+
"id" : "1",
12+
"location" : "Unspecified",
13+
"name" : "Participant User",
14+
"properties" : {
15+
"structurizr.dsl.identifier" : "participant"
16+
},
17+
"tags" : "Element,Person,Participant"
18+
}, {
19+
"description" : "Internal staff users including clinical and administrative staff",
20+
"id" : "2",
21+
"location" : "Unspecified",
22+
"name" : "Lung Cancer Screening Provider Staff users",
23+
"properties" : {
24+
"structurizr.dsl.identifier" : "st"
25+
},
26+
"relationships" : [ {
27+
"description" : "Uses to manage telephone lung cancer risk check, CT appointment booking & referral process",
28+
"destinationId" : "6",
29+
"id" : "14",
30+
"sourceId" : "2",
31+
"tags" : "Relationship"
32+
}, {
33+
"description" : "Runs telephone lung risk check journey with (questions answered, risk rating provided, CT scan appointment booked)",
34+
"destinationId" : "1",
35+
"id" : "15",
36+
"sourceId" : "2",
37+
"tags" : "Relationship"
38+
} ],
39+
"tags" : "Element,Person,Lung Cancer Screening Provider Staff"
40+
} ],
41+
"softwareSystems" : [ {
42+
"description" : "Logical overview to include all relevant systems",
43+
"documentation" : { },
44+
"id" : "3",
45+
"location" : "Unspecified",
46+
"name" : "LCRC Overview",
47+
"properties" : {
48+
"structurizr.dsl.identifier" : "overview"
49+
},
50+
"tags" : "Element,Software System"
51+
}, {
52+
"description" : "Holds primary care data for patients",
53+
"documentation" : { },
54+
"id" : "4",
55+
"location" : "Unspecified",
56+
"name" : "GP System",
57+
"properties" : {
58+
"structurizr.dsl.identifier" : "gpsystem"
59+
},
60+
"relationships" : [ {
61+
"description" : "Provides GP patient record data to",
62+
"destinationId" : "5",
63+
"id" : "8",
64+
"sourceId" : "4",
65+
"tags" : "Relationship"
66+
}, {
67+
"description" : "Provides raw data to",
68+
"destinationId" : "6",
69+
"id" : "13",
70+
"properties" : {
71+
"structurizr.dsl.identifier" : "rawgpdata"
72+
},
73+
"sourceId" : "4",
74+
"tags" : "Relationship"
75+
} ],
76+
"tags" : "Element,Software System,External System"
77+
}, {
78+
"description" : "Extracts primary care data from GP systems and identifies initial eligible cohort",
79+
"documentation" : { },
80+
"id" : "5",
81+
"location" : "Unspecified",
82+
"name" : "Local Cohorting System",
83+
"properties" : {
84+
"structurizr.dsl.identifier" : "localcohortingsystem"
85+
},
86+
"relationships" : [ {
87+
"description" : "Provides lung screening initial eligible cohort data (LUNGDF100) to",
88+
"destinationId" : "6",
89+
"id" : "9",
90+
"sourceId" : "5",
91+
"tags" : "Relationship"
92+
} ],
93+
"tags" : "Element,Software System,External System"
94+
}, {
95+
"description" : "Processes data from GP system to identify at-risk individuals, manage invitations, support lung cancer risk check, CT appointment booking & referral",
96+
"documentation" : { },
97+
"id" : "6",
98+
"location" : "Unspecified",
99+
"name" : "Local LCRC Preassessment System",
100+
"properties" : {
101+
"structurizr.dsl.identifier" : "localpreassessmentsystem"
102+
},
103+
"relationships" : [ {
104+
"description" : "Sends communications using",
105+
"destinationId" : "7",
106+
"id" : "10",
107+
"sourceId" : "6",
108+
"tags" : "Relationship"
109+
}, {
110+
"description" : "Selects for invitation based on risk",
111+
"destinationId" : "1",
112+
"id" : "12",
113+
"properties" : {
114+
"structurizr.dsl.identifier" : "selection"
115+
},
116+
"sourceId" : "6",
117+
"tags" : "Relationship"
118+
} ],
119+
"tags" : "Element,Software System,External System"
120+
}, {
121+
"description" : "Delivers communications (letters only) to participants",
122+
"documentation" : { },
123+
"id" : "7",
124+
"location" : "Unspecified",
125+
"name" : "Local Notification System",
126+
"properties" : {
127+
"structurizr.dsl.identifier" : "localnotificationsystem"
128+
},
129+
"relationships" : [ {
130+
"description" : "Sends communications to",
131+
"destinationId" : "1",
132+
"id" : "11",
133+
"sourceId" : "7",
134+
"tags" : "Relationship"
135+
} ],
136+
"tags" : "Element,Software System,External System"
137+
} ]
138+
},
139+
"name" : "Name",
140+
"properties" : {
141+
"structurizr.dsl" : "d29ya3NwYWNlIHsKCiAgICBtb2RlbCB7CiAgICAgICAgLy8gUGVvcGxlCiAgICAgICAgcGFydGljaXBhbnQgPSBwZXJzb24gIlBhcnRpY2lwYW50IFVzZXIiICJBIG1lbWJlciBvZiB0aGUgcHVibGljIHdobyBpcyBlbGlnaWJsZSBmb3IgbHVuZyBjYW5jZXIgcmlzayBjaGVjayIgIlBhcnRpY2lwYW50IgogICAgICAgIHN0ID0gcGVyc29uICJMdW5nIENhbmNlciBTY3JlZW5pbmcgUHJvdmlkZXIgU3RhZmYgdXNlcnMiICJJbnRlcm5hbCBzdGFmZiB1c2VycyBpbmNsdWRpbmcgY2xpbmljYWwgYW5kIGFkbWluaXN0cmF0aXZlIHN0YWZmIiAiTHVuZyBDYW5jZXIgU2NyZWVuaW5nIFByb3ZpZGVyIFN0YWZmIgoKICAgICAgICAvLyBEdW1teSAibmV1dHJhbCIgc3lzdGVtIHRvIHVzZSBhcyBkaWFncmFtIHNjb3BlCiAgICAgICAgb3ZlcnZpZXcgPSBzb2Z0d2FyZVN5c3RlbSAiTENSQyBPdmVydmlldyIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTG9naWNhbCBvdmVydmlldyB0byBpbmNsdWRlIGFsbCByZWxldmFudCBzeXN0ZW1zIgogICAgICAgIH0KCiAgICAgICAgLy8gUmVhbCBzeXN0ZW1zCiAgICAgICAgZ3BTeXN0ZW0gPSBzb2Z0d2FyZVN5c3RlbSAiR1AgU3lzdGVtIiAiSG9sZHMgcHJpbWFyeSBjYXJlIGRhdGEgZm9yIHBhdGllbnRzIiAiRXh0ZXJuYWwgU3lzdGVtIgoKICAgICAgICBsb2NhbENvaG9ydGluZ1N5c3RlbSA9IHNvZnR3YXJlU3lzdGVtICJMb2NhbCBDb2hvcnRpbmcgU3lzdGVtIiAiRXh0cmFjdHMgcHJpbWFyeSBjYXJlIGRhdGEgZnJvbSBHUCBzeXN0ZW1zIGFuZCBpZGVudGlmaWVzIGluaXRpYWwgZWxpZ2libGUgY29ob3J0IiAiRXh0ZXJuYWwgU3lzdGVtIgoKICAgICAgICBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gPSBzb2Z0d2FyZVN5c3RlbSAiTG9jYWwgTENSQyBQcmVhc3Nlc3NtZW50IFN5c3RlbSIgIlByb2Nlc3NlcyBkYXRhIGZyb20gR1Agc3lzdGVtIHRvIGlkZW50aWZ5IGF0LXJpc2sgaW5kaXZpZHVhbHMsIG1hbmFnZSBpbnZpdGF0aW9ucywgc3VwcG9ydCBsdW5nIGNhbmNlciByaXNrIGNoZWNrLCBDVCBhcHBvaW50bWVudCBib29raW5nICYgcmVmZXJyYWwiICJFeHRlcm5hbCBTeXN0ZW0iCgogICAgICAgIGxvY2FsTm90aWZpY2F0aW9uU3lzdGVtID0gc29mdHdhcmVTeXN0ZW0gIkxvY2FsIE5vdGlmaWNhdGlvbiBTeXN0ZW0iICJEZWxpdmVycyBjb21tdW5pY2F0aW9ucyAobGV0dGVycyBvbmx5KSB0byBwYXJ0aWNpcGFudHMiICJFeHRlcm5hbCBTeXN0ZW0iCgogICAgICAgIC8vIFJlYWwgcmVsYXRpb25zaGlwcwogICAgICAgIGdwU3lzdGVtIC0+IGxvY2FsQ29ob3J0aW5nU3lzdGVtICJQcm92aWRlcyBHUCBwYXRpZW50IHJlY29yZCBkYXRhIHRvIgogICAgICAgIGxvY2FsQ29ob3J0aW5nU3lzdGVtIC0+IGxvY2FsUHJlQXNzZXNzbWVudFN5c3RlbSAiUHJvdmlkZXMgbHVuZyBzY3JlZW5pbmcgaW5pdGlhbCBlbGlnaWJsZSBjb2hvcnQgZGF0YSAoTFVOR0RGMTAwKSB0byIKICAgICAgICBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gLT4gbG9jYWxOb3RpZmljYXRpb25TeXN0ZW0gIlNlbmRzIGNvbW11bmljYXRpb25zIHVzaW5nIgogICAgICAgIGxvY2FsTm90aWZpY2F0aW9uU3lzdGVtIC0+IHBhcnRpY2lwYW50ICJTZW5kcyBjb21tdW5pY2F0aW9ucyB0byIKICAgICAgICBzZWxlY3Rpb24gPSBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gLT4gcGFydGljaXBhbnQgIlNlbGVjdHMgZm9yIGludml0YXRpb24gYmFzZWQgb24gcmlzayIKICAgICAgICByYXdHcERhdGEgPSBncFN5c3RlbSAtPiBsb2NhbFByZUFzc2Vzc21lbnRTeXN0ZW0gIlByb3ZpZGVzIHJhdyBkYXRhIHRvIgogICAgICAgIHN0IC0+IGxvY2FsUHJlQXNzZXNzbWVudFN5c3RlbSAiVXNlcyB0byBtYW5hZ2UgdGVsZXBob25lIGx1bmcgY2FuY2VyIHJpc2sgY2hlY2ssIENUIGFwcG9pbnRtZW50IGJvb2tpbmcgJiByZWZlcnJhbCBwcm9jZXNzIgogICAgICAgIHN0IC0+IHBhcnRpY2lwYW50ICJSdW5zIHRlbGVwaG9uZSBsdW5nIHJpc2sgY2hlY2sgam91cm5leSB3aXRoIChxdWVzdGlvbnMgYW5zd2VyZWQsIHJpc2sgcmF0aW5nIHByb3ZpZGVkLCBDVCBzY2FuIGFwcG9pbnRtZW50IGJvb2tlZCkiCiAgICB9CgogICAgdmlld3MgewogICAgICAgIHN5c3RlbUNvbnRleHQgbG9jYWxQcmVBc3Nlc3NtZW50U3lzdGVtIHsKICAgICAgICAgICAgaW5jbHVkZSAqCiAgICAgICAgICAgIGV4Y2x1ZGUgc2VsZWN0aW9uCiAgICAgICAgICAgIGV4Y2x1ZGUgcmF3R3BEYXRhCiAgICAgICAgICAgIC8vYXV0b2xheW91dCBscgogICAgICAgICAgICB0aXRsZSAiTG9jYWwgTHVuZyBDYW5jZXIgUmlzayBDaGVjayBTeXN0ZW0gQ29udGV4dCDigJMgRnVsbCBWaWV3IChjdXJyZW50IHN0YXRlKSIKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFsbCBzeXN0ZW1zIGFuZCB1c2VyIGludGVyYWN0aW9ucyBpbnZvbHZlZCBpbiBMdW5nIENhbmNlciBSaXNrIENoZWNrIHN0YWdlIG9mIEx1bmcgQ2FuY2VyIFNjcmVlbmluZyIKICAgICAgICB9CgogICAgICAgIHN0eWxlcyB7CiAgICAgICAgICAgIGVsZW1lbnQgIlBlcnNvbiIgewogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICAgICAgZm9udFNpemUgMjIKICAgICAgICAgICAgICAgIHNoYXBlIFBlcnNvbgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIlBhcnRpY2lwYW50IiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICM2ODY4NjgKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJMdW5nIENhbmNlciBTY3JlZW5pbmcgUHJvdmlkZXIgU3RhZmYiIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzA4NDI3QgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIlNvZnR3YXJlIFN5c3RlbSIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjMTE2OGJkCiAgICAgICAgICAgICAgICBjb2xvciAjZmZmZmZmCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiRXh0ZXJuYWwgU3lzdGVtIiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICM2ODY4NjgKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJFeGlzdGluZyBTeXN0ZW0iIHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQgIzk5OTk5OQogICAgICAgICAgICAgICAgY29sb3IgI2ZmZmZmZgogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsZW1lbnQgIkNvbnRhaW5lciIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZCAjNDM4ZGQ1CiAgICAgICAgICAgICAgICBjb2xvciAjZmZmZmZmCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiV2ViIEJyb3dzZXIiIHsKICAgICAgICAgICAgICAgIHNoYXBlIFdlYkJyb3dzZXIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJNb2JpbGUgQXBwIiB7CiAgICAgICAgICAgICAgICBzaGFwZSBNb2JpbGVEZXZpY2VMYW5kc2NhcGUKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJEYXRhYmFzZSIgewogICAgICAgICAgICAgICAgc2hhcGUgQ3lsaW5kZXIKICAgICAgICAgICAgfQogICAgICAgICAgICBlbGVtZW50ICJRdWV1ZSIgewogICAgICAgICAgICAgICAgc2hhcGUgIlBpcGUiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxlbWVudCAiQ29tcG9uZW50IiB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kICM4NWJiZjAKICAgICAgICAgICAgICAgIGNvbG9yICMwMDAwMDAKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgfQp9"
142+
},
143+
"views" : {
144+
"configuration" : {
145+
"branding" : { },
146+
"lastSavedView" : "SystemContext-001",
147+
"metadataSymbols" : "SquareBrackets",
148+
"styles" : {
149+
"elements" : [ {
150+
"color" : "#ffffff",
151+
"fontSize" : 22,
152+
"shape" : "Person",
153+
"tag" : "Person"
154+
}, {
155+
"background" : "#686868",
156+
"tag" : "Participant"
157+
}, {
158+
"background" : "#08427b",
159+
"tag" : "Lung Cancer Screening Provider Staff"
160+
}, {
161+
"background" : "#1168bd",
162+
"color" : "#ffffff",
163+
"tag" : "Software System"
164+
}, {
165+
"background" : "#686868",
166+
"tag" : "External System"
167+
}, {
168+
"background" : "#999999",
169+
"color" : "#ffffff",
170+
"tag" : "Existing System"
171+
}, {
172+
"background" : "#438dd5",
173+
"color" : "#ffffff",
174+
"tag" : "Container"
175+
}, {
176+
"shape" : "WebBrowser",
177+
"tag" : "Web Browser"
178+
}, {
179+
"shape" : "MobileDeviceLandscape",
180+
"tag" : "Mobile App"
181+
}, {
182+
"shape" : "Cylinder",
183+
"tag" : "Database"
184+
}, {
185+
"shape" : "Pipe",
186+
"tag" : "Queue"
187+
}, {
188+
"background" : "#85bbf0",
189+
"color" : "#000000",
190+
"tag" : "Component"
191+
} ]
192+
},
193+
"terminology" : { }
194+
},
195+
"systemContextViews" : [ {
196+
"description" : "All systems and user interactions involved in Lung Cancer Risk Check stage of Lung Cancer Screening",
197+
"dimensions" : {
198+
"height" : 1400,
199+
"width" : 3800
200+
},
201+
"elements" : [ {
202+
"id" : "1",
203+
"x" : 2965,
204+
"y" : 165
205+
}, {
206+
"id" : "2",
207+
"x" : 974,
208+
"y" : 151
209+
}, {
210+
"id" : "4",
211+
"x" : 199,
212+
"y" : 851
213+
}, {
214+
"id" : "5",
215+
"x" : 949,
216+
"y" : 851
217+
}, {
218+
"id" : "6",
219+
"x" : 1699,
220+
"y" : 805
221+
}, {
222+
"id" : "7",
223+
"x" : 2449,
224+
"y" : 805
225+
} ],
226+
"enterpriseBoundaryVisible" : true,
227+
"generatedKey" : true,
228+
"key" : "SystemContext-001",
229+
"order" : 1,
230+
"relationships" : [ {
231+
"id" : "10"
232+
}, {
233+
"id" : "11"
234+
}, {
235+
"id" : "14"
236+
}, {
237+
"id" : "15"
238+
}, {
239+
"id" : "8"
240+
}, {
241+
"id" : "9"
242+
} ],
243+
"softwareSystemId" : "6",
244+
"title" : "Local Lung Cancer Risk Check System Context – Full View (current state)"
245+
} ]
246+
}
247+
}

0 commit comments

Comments
 (0)