Skip to content

Commit d520195

Browse files
authored
Merge pull request #470 from helsenorge/rubenr/refactor-scoring-and-fhirpath-updater
move calculators to async thunk
2 parents e5f238e + 79e967d commit d520195

16 files changed

+1473
-346
lines changed

CHANGES.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 17.2.2-beta01
2+
3+
- fixed bug by moving the logic for the calculators into a action creator
4+
15
## 17.2.1
26

37
- Fixed a bug with standard table where the headervalue did not represent the correct value from the choice input elements

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@helsenorge/refero",
3-
"version": "17.2.1",
3+
"version": "17.2.2-beta01",
44
"description": "Refero is a library that uses a fhir r4 schema and creates a interactive form using helsenorge packages.",
55
"keywords": [
66
"react",

preview/skjema/q.json

+224-55
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,33 @@
11
{
22
"resourceType": "Questionnaire",
33
"language": "nb-NO",
4-
"id": "4171d6c9-43ee-4f2b-863b-2080beacd382",
5-
"name": "Date_day_unit_tests",
6-
"title": "Tittel",
4+
"id": "3981d77d-f69f-4c9c-85cd-8b07b05d93d2",
5+
"name": "NHN_Test_Scoore_Calculation",
6+
"title": "Test kopi og regning på score",
7+
"version": "0.1",
78
"status": "draft",
89
"publisher": "NHN",
910
"meta": {
1011
"profile": ["http://ehelse.no/fhir/StructureDefinition/sdf-Questionnaire"],
11-
"tag": [
12-
{
13-
"system": "urn:ietf:bcp:47",
14-
"code": "nb-NO",
15-
"display": "Bokmål"
16-
}
17-
],
18-
"security": [
19-
{
20-
"code": "3",
21-
"display": "Helsehjelp (Full)",
22-
"system": "urn:oid:2.16.578.1.12.4.1.1.7618"
23-
}
24-
]
12+
"tag": [{ "system": "urn:ietf:bcp:47", "code": "nb-NO", "display": "Bokmål" }],
13+
"security": [{ "code": "3", "display": "Helsehjelp (Full)", "system": "urn:oid:2.16.578.1.12.4.1.1.7618" }]
2514
},
26-
"contact": [
27-
{
28-
"name": "http://www.nhn.no"
29-
}
30-
],
15+
"contact": [{ "name": "http://www.nhn.no" }],
3116
"subjectType": ["Patient"],
3217
"extension": [
3318
{
3419
"url": "http://helsenorge.no/fhir/StructureDefinition/sdf-sidebar",
35-
"valueCoding": {
36-
"system": "http://helsenorge.no/fhir/ValueSet/sdf-sidebar",
37-
"code": "1"
38-
}
20+
"valueCoding": { "system": "http://helsenorge.no/fhir/ValueSet/sdf-sidebar", "code": "1" }
3921
},
4022
{
4123
"url": "http://helsenorge.no/fhir/StructureDefinition/sdf-information-message",
42-
"valueCoding": {
43-
"system": "http://helsenorge.no/fhir/ValueSet/sdf-information-message",
44-
"code": "1"
45-
}
24+
"valueCoding": { "system": "http://helsenorge.no/fhir/ValueSet/sdf-information-message", "code": "1" }
4625
},
4726
{
4827
"url": "http://helsenorge.no/fhir/StructureDefintion/sdf-itemControl-visibility",
4928
"valueCodeableConcept": {
5029
"coding": [
51-
{
52-
"system": "http://helsenorge.no/fhir/CodeSystem/AttachmentRenderOptions",
53-
"code": "hide-help",
54-
"display": "Hide help texts"
55-
},
30+
{ "system": "http://helsenorge.no/fhir/CodeSystem/AttachmentRenderOptions", "code": "hide-help", "display": "Hide help texts" },
5631
{
5732
"system": "http://helsenorge.no/fhir/CodeSystem/AttachmentRenderOptions",
5833
"code": "hide-sublabel",
@@ -62,37 +37,231 @@
6237
}
6338
}
6439
],
40+
"date": "2025-03-05T00:00:00+01:00",
6541
"item": [
6642
{
67-
"linkId": "71d92d62-cad3-445b-848d-4efd281078d3",
68-
"type": "date",
43+
"linkId": "0701f3cf-73f5-48f7-8317-24c1223264a8",
44+
"type": "group",
45+
"text": "Input scoring and calculation and copying of scoringvalue",
46+
"required": false,
6947
"item": [
7048
{
71-
"linkId": "466b2d0d-ad4f-4ce5-83f5-62b39db28593",
72-
"type": "text",
49+
"linkId": "verdi1",
50+
"type": "choice",
51+
"text": "Verdi 1",
52+
"code": [
53+
{ "system": "http://ehelse.no/Score", "code": "score", "display": "score" },
54+
{ "system": "http://ehelse.no/scoringFormulas", "code": "QS", "display": "Question score" }
55+
],
7356
"required": false,
74-
"repeats": false,
75-
"readOnly": true,
76-
"maxLength": 250,
77-
"_text": {
78-
"extension": [
79-
{
80-
"url": "http://hl7.org/fhir/StructureDefinition/rendering-markdown",
81-
"valueMarkdown": "Help text"
57+
"answerOption": [
58+
{
59+
"valueCoding": {
60+
"id": "96651f43-5ac1-4b87-83b8-49879c32daa6",
61+
"code": "100",
62+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
63+
"display": "Ja",
64+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 100 }]
8265
}
83-
]
84-
},
66+
},
67+
{
68+
"valueCoding": {
69+
"id": "049bb493-4ec3-4df8-855b-12be2307360b",
70+
"code": "200",
71+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
72+
"display": "Nei",
73+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 200 }]
74+
}
75+
}
76+
]
77+
},
78+
{
79+
"linkId": "verdi2",
80+
"type": "choice",
81+
"text": "Verdi 2",
82+
"code": [
83+
{ "system": "http://ehelse.no/Score", "code": "score", "display": "score" },
84+
{ "system": "http://ehelse.no/scoringFormulas", "code": "QS", "display": "Question score" }
85+
],
86+
"required": false,
87+
"answerOption": [
88+
{
89+
"valueCoding": {
90+
"id": "96651f43-5ac1-4b87-83b8-49879c32daa6",
91+
"code": "100",
92+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
93+
"display": "Ja",
94+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 100 }]
95+
}
96+
},
97+
{
98+
"valueCoding": {
99+
"id": "049bb493-4ec3-4df8-855b-12be2307360b",
100+
"code": "200",
101+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
102+
"display": "Nei",
103+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 200 }]
104+
}
105+
}
106+
]
107+
},
108+
{
109+
"linkId": "verdi3",
110+
"type": "choice",
111+
"text": "Verdi 3",
112+
"code": [
113+
{ "system": "http://ehelse.no/Score", "code": "score", "display": "score" },
114+
{ "system": "http://ehelse.no/scoringFormulas", "code": "QS", "display": "Question score" }
115+
],
116+
"required": false,
117+
"answerOption": [
118+
{
119+
"valueCoding": {
120+
"id": "96651f43-5ac1-4b87-83b8-49879c32daa6",
121+
"code": "100",
122+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
123+
"display": "Ja",
124+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 100 }]
125+
}
126+
},
127+
{
128+
"valueCoding": {
129+
"id": "049bb493-4ec3-4df8-855b-12be2307360b",
130+
"code": "200",
131+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
132+
"display": "Nei",
133+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 200 }]
134+
}
135+
}
136+
]
137+
},
138+
{
139+
"linkId": "verdi4",
140+
"type": "choice",
141+
"text": "Verdi 4",
142+
"code": [
143+
{ "system": "http://ehelse.no/Score", "code": "score", "display": "score" },
144+
{ "system": "http://ehelse.no/scoringFormulas", "code": "QS", "display": "Question score" }
145+
],
146+
"required": false,
147+
"answerOption": [
148+
{
149+
"valueCoding": {
150+
"id": "96651f43-5ac1-4b87-83b8-49879c32daa6",
151+
"code": "100",
152+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
153+
"display": "Ja",
154+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 100 }]
155+
}
156+
},
157+
{
158+
"valueCoding": {
159+
"id": "049bb493-4ec3-4df8-855b-12be2307360b",
160+
"code": "200",
161+
"system": "urn:uuid:5ca4194b-32df-409e-81e5-8d4d0c600ee3",
162+
"display": "Nei",
163+
"extension": [{ "url": "http://hl7.org/fhir/StructureDefinition/ordinalValue", "valueDecimal": 200 }]
164+
}
165+
}
166+
]
167+
},
168+
{
169+
"linkId": "Delsum",
170+
"type": "integer",
171+
"text": "Delsum",
172+
"code": [
173+
{ "system": "http://ehelse.no/Score", "code": "score", "display": "score" },
174+
{ "system": "http://ehelse.no/scoringFormulas", "code": "SS", "display": "Section score" }
175+
],
176+
"required": false,
177+
"readOnly": true
178+
},
179+
{
180+
"linkId": "Totalsum",
181+
"type": "integer",
182+
"text": "Totalsum",
183+
"code": [
184+
{ "system": "http://ehelse.no/Score", "code": "score", "display": "score" },
185+
{ "system": "http://ehelse.no/scoringFormulas", "code": "TS", "display": "Total score" }
186+
],
187+
"required": false,
188+
"readOnly": true
189+
},
190+
{
191+
"linkId": "aritmetisk_gjennomsnitt",
192+
"type": "integer",
193+
"text": "Aritmetisk gjennomsnitt basert på totalsum.",
194+
"required": false,
195+
"extension": [
196+
{
197+
"url": "http://ehelse.no/fhir/StructureDefinition/sdf-calculatedExpression",
198+
"valueString": "QuestionnaireResponse.descendants().where(linkId='Totalsum').answer.value / 4"
199+
}
200+
],
201+
"readOnly": true
202+
},
203+
{
204+
"linkId": "kopiert_felt",
205+
"type": "integer",
206+
"text": "Kopi",
207+
"required": false,
85208
"extension": [
86209
{
87210
"url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
88211
"valueCodeableConcept": {
89-
"coding": [
90-
{
91-
"system": "http://hl7.org/fhir/ValueSet/questionnaire-item-control",
92-
"code": "help"
93-
}
94-
]
212+
"coding": [{ "system": "http://hl7.org/fhir/ValueSet/questionnaire-item-control", "code": "data-receiver" }]
95213
}
214+
},
215+
{
216+
"url": "http://hl7.org/fhir/StructureDefinition/cqf-expression",
217+
"valueString": "QuestionnaireResponse.descendants().where(linkId='Totalsum').answer.value"
218+
}
219+
],
220+
"readOnly": true,
221+
"enableWhen": [{ "answerBoolean": true, "question": "Totalsum", "operator": "exists" }]
222+
},
223+
{
224+
"linkId": "aritmetisk_gjennomsnitt_kopi",
225+
"type": "integer",
226+
"text": "Aritmetisk gjennomsnitt basert på kopiert felt",
227+
"required": false,
228+
"extension": [
229+
{
230+
"url": "http://ehelse.no/fhir/StructureDefinition/sdf-calculatedExpression",
231+
"valueString": "QuestionnaireResponse.descendants().where(linkId='kopiert_felt').answer.value / 4"
232+
}
233+
],
234+
"readOnly": true
235+
}
236+
]
237+
},
238+
{
239+
"linkId": "498140b3-7c26-4492-dea5-24c829552347",
240+
"type": "group",
241+
"item": [
242+
{ "linkId": "Tall1", "type": "integer", "text": "Tall 1", "required": false },
243+
{ "linkId": "Tall2", "type": "integer", "text": "Tall 2", "required": false },
244+
{
245+
"linkId": "Sum",
246+
"type": "integer",
247+
"text": "Sum",
248+
"required": false,
249+
"extension": [
250+
{
251+
"url": "http://ehelse.no/fhir/StructureDefinition/sdf-calculatedExpression",
252+
"valueString": "QuestionnaireResponse.descendants().where(linkId='Tall1').answer.value + QuestionnaireResponse.descendants().where(linkId='Tall2').answer.value"
253+
}
254+
]
255+
},
256+
{
257+
"linkId": "Gjennomsnitt",
258+
"type": "integer",
259+
"text": "Gjennomsnitt",
260+
"required": false,
261+
"extension": [
262+
{
263+
"url": "http://ehelse.no/fhir/StructureDefinition/sdf-calculatedExpression",
264+
"valueString": "QuestionnaireResponse.descendants().where(linkId='Sum').answer.value / 2"
96265
}
97266
]
98267
}

0 commit comments

Comments
 (0)