@aehrc/smart-forms-renderer 0.38.2 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/main.ts +8 -3
- package/CHANGELOG.md +33 -39
- package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +6 -4
- package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js +10 -8
- package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +5 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +7 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +6 -5
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +11 -8
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +8 -6
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +10 -7
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +11 -9
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +6 -4
- package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +5 -3
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js +14 -6
- package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +6 -2
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js +6 -4
- package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +7 -5
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +8 -7
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +7 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +10 -9
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +9 -8
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +9 -8
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +7 -6
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/QuantityItem/QuantityItem.js +13 -10
- package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +3 -3
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/AddItemButton.d.ts +2 -2
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js +4 -2
- package/lib/components/FormComponents/RepeatItem/AddItemButton.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +14 -21
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/SliderItem/SliderItem.js +3 -1
- package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
- package/lib/components/FormComponents/StringItem/StringItem.js +6 -4
- package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTable.d.ts +2 -2
- package/lib/components/FormComponents/Tables/GroupTable.js +2 -2
- package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableBody.d.ts +2 -2
- package/lib/components/FormComponents/Tables/GroupTableBody.js +3 -3
- package/lib/components/FormComponents/Tables/GroupTableBody.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +3 -2
- package/lib/components/FormComponents/Tables/GroupTableRow.js +16 -5
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableView.d.ts +2 -2
- package/lib/components/FormComponents/Tables/GroupTableView.js +10 -10
- package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
- package/lib/components/FormComponents/TextItem/TextItem.js +6 -4
- package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
- package/lib/components/FormComponents/TimeItem/TimeItem.js +4 -2
- package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
- package/lib/components/FormComponents/UrlItem/UrlItem.js +4 -2
- package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
- package/lib/components/Renderer/FormTopLevelItem.js +6 -0
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
- package/lib/hooks/useBooleanCalculatedExpression.js +3 -2
- package/lib/hooks/useBooleanCalculatedExpression.js.map +1 -1
- package/lib/hooks/useCodingCalculatedExpression.js +4 -3
- package/lib/hooks/useCodingCalculatedExpression.js.map +1 -1
- package/lib/hooks/useDecimalCalculatedExpression.js +3 -2
- package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
- package/lib/hooks/useInitialiseRepeatAnswers.d.ts +2 -3
- package/lib/hooks/useInitialiseRepeatAnswers.js +7 -15
- package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
- package/lib/hooks/useIntegerCalculatedExpression.js +3 -2
- package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
- package/lib/hooks/useQuantityCalculatedExpression.js +5 -3
- package/lib/hooks/useQuantityCalculatedExpression.js.map +1 -1
- package/lib/hooks/useStringCalculatedExpression.js +3 -2
- package/lib/hooks/useStringCalculatedExpression.js.map +1 -1
- package/lib/tests/test-data/initialValueSample.d.ts +2 -0
- package/lib/tests/test-data/initialValueSample.js +802 -0
- package/lib/tests/test-data/initialValueSample.js.map +1 -0
- package/lib/tests/test-data/observationSample.d.ts +4 -0
- package/lib/tests/test-data/observationSample.js +193 -0
- package/lib/tests/test-data/observationSample.js.map +1 -0
- package/lib/utils/answerExpression.d.ts +18 -0
- package/lib/utils/answerExpression.js +133 -0
- package/lib/utils/answerExpression.js.map +1 -0
- package/lib/utils/calculatedExpression.js +1 -1
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/choice.d.ts +1 -1
- package/lib/utils/choice.js +5 -3
- package/lib/utils/choice.js.map +1 -1
- package/lib/utils/dynamicValueSet.d.ts +5 -0
- package/lib/utils/dynamicValueSet.js +96 -0
- package/lib/utils/dynamicValueSet.js.map +1 -0
- package/lib/utils/extractObservation.d.ts +9 -0
- package/lib/utils/extractObservation.js +91 -0
- package/lib/utils/extractObservation.js.map +1 -0
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +14 -0
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +639 -0
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +1 -0
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +3 -0
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +41 -0
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +1 -0
- package/lib/utils/genericRecursive.d.ts +17 -0
- package/lib/utils/genericRecursive.js +82 -0
- package/lib/utils/genericRecursive.js.map +1 -0
- package/lib/utils/initialise.js +47 -57
- package/lib/utils/initialise.js.map +1 -1
- package/lib/utils/openChoice.d.ts +1 -1
- package/lib/utils/openChoice.js +6 -4
- package/lib/utils/openChoice.js.map +1 -1
- package/lib/utils/qrItem.d.ts +2 -2
- package/lib/utils/qrItem.js +7 -3
- package/lib/utils/qrItem.js.map +1 -1
- package/lib/utils/quantity.d.ts +1 -1
- package/lib/utils/quantity.js +3 -1
- package/lib/utils/quantity.js.map +1 -1
- package/lib/utils/repopulateIntoResponse.js +1 -1
- package/lib/utils/repopulateIntoResponse.js.map +1 -1
- package/package.json +12 -11
- package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +8 -6
- package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +11 -9
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +6 -4
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +5 -3
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +5 -3
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +11 -6
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +6 -4
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +10 -5
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +11 -7
- package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +8 -7
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +6 -5
- package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +15 -7
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +16 -0
- package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +7 -6
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +9 -8
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +7 -4
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx +7 -4
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +12 -8
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx +12 -8
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +7 -6
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +6 -4
- package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +31 -10
- package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +3 -3
- package/src/components/FormComponents/RepeatItem/AddItemButton.tsx +7 -3
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +18 -28
- package/src/components/FormComponents/SliderItem/SliderItem.tsx +3 -2
- package/src/components/FormComponents/StringItem/StringItem.tsx +7 -5
- package/src/components/FormComponents/Tables/GroupTable.tsx +4 -0
- package/src/components/FormComponents/Tables/GroupTableBody.tsx +6 -2
- package/src/components/FormComponents/Tables/GroupTableRow.tsx +98 -46
- package/src/components/FormComponents/Tables/GroupTableView.tsx +30 -26
- package/src/components/FormComponents/TextItem/TextItem.tsx +7 -5
- package/src/components/FormComponents/TimeItem/TimeItem.tsx +3 -2
- package/src/components/FormComponents/UrlItem/UrlItem.tsx +4 -2
- package/src/components/Renderer/FormTopLevelItem.tsx +17 -0
- package/src/hooks/useBooleanCalculatedExpression.ts +3 -2
- package/src/hooks/useCodingCalculatedExpression.ts +4 -3
- package/src/hooks/useDecimalCalculatedExpression.ts +3 -2
- package/src/hooks/useInitialiseRepeatAnswers.ts +14 -26
- package/src/hooks/useIntegerCalculatedExpression.ts +3 -2
- package/src/hooks/useQuantityCalculatedExpression.ts +6 -3
- package/src/hooks/useStringCalculatedExpression.ts +3 -2
- package/src/stories/assets/questionnaires/QItemControlGroup.ts +229 -5
- package/src/stories/sdc/ItemControlGroup.stories.tsx +10 -3
- package/src/tests/initial.test.ts +34 -0
- package/src/tests/test-data/initialValueSample.ts +826 -0
- package/src/utils/calculatedExpression.ts +1 -1
- package/src/utils/choice.ts +8 -3
- package/src/utils/{updateQr.ts → genericRecursive.ts} +47 -2
- package/src/utils/initialise.ts +67 -73
- package/src/utils/openChoice.ts +7 -4
- package/src/utils/qrItem.ts +12 -3
- package/src/utils/quantity.ts +4 -1
- package/src/utils/repopulateIntoResponse.ts +1 -1
- package/src/hooks/useRepeatAnswers.ts +0 -45
- package/src/interfaces/repeatItem.interface.ts +0 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialValueSample.js","sourceRoot":"","sources":["../../../src/tests/test-data/initialValueSample.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
export const qObservationSample = {
|
|
2
|
+
resourceType: 'Questionnaire',
|
|
3
|
+
id: 'phq-2-questionnaire',
|
|
4
|
+
meta: {
|
|
5
|
+
versionId: '1',
|
|
6
|
+
lastUpdated: '2024-08-29T12:00:00Z'
|
|
7
|
+
},
|
|
8
|
+
title: 'PHQ-2 Depression Screening',
|
|
9
|
+
status: 'active',
|
|
10
|
+
date: '2024-08-29T12:00:00Z',
|
|
11
|
+
publisher: 'Konsulin',
|
|
12
|
+
description: 'Patient Health Questionnaire-2 (PHQ-2) for depression screening.',
|
|
13
|
+
subjectType: ['Patient'],
|
|
14
|
+
item: [
|
|
15
|
+
{
|
|
16
|
+
linkId: 'phq2-1',
|
|
17
|
+
text: 'Over the last 2 weeks, how often have you been bothered by little interest or pleasure in doing things?',
|
|
18
|
+
type: 'choice',
|
|
19
|
+
code: [
|
|
20
|
+
{
|
|
21
|
+
system: 'http://snomed.info/sct',
|
|
22
|
+
code: '28669007',
|
|
23
|
+
display: 'Anhedonia'
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
answerOption: [
|
|
27
|
+
{
|
|
28
|
+
valueCoding: {
|
|
29
|
+
code: '0',
|
|
30
|
+
display: 'Not at all'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
valueCoding: {
|
|
35
|
+
code: '1',
|
|
36
|
+
display: 'Several days'
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
valueCoding: {
|
|
41
|
+
code: '2',
|
|
42
|
+
display: 'More than half the days'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
valueCoding: {
|
|
47
|
+
code: '3',
|
|
48
|
+
display: 'Nearly every day'
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
linkId: 'phq2-2',
|
|
55
|
+
text: 'Over the last 2 weeks, how often have you been bothered by feeling down, depressed, or hopeless?',
|
|
56
|
+
type: 'choice',
|
|
57
|
+
code: [
|
|
58
|
+
{
|
|
59
|
+
system: 'http://snomed.info/sct',
|
|
60
|
+
code: '307077003',
|
|
61
|
+
display: 'Feeling hopeless'
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
answerOption: [
|
|
65
|
+
{
|
|
66
|
+
valueCoding: {
|
|
67
|
+
code: '0',
|
|
68
|
+
display: 'Not at all'
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
valueCoding: {
|
|
73
|
+
code: '1',
|
|
74
|
+
display: 'Several days'
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
valueCoding: {
|
|
79
|
+
code: '2',
|
|
80
|
+
display: 'More than half the days'
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
valueCoding: {
|
|
85
|
+
code: '3',
|
|
86
|
+
display: 'Nearly every day'
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
};
|
|
93
|
+
export const qrObservationSample = {
|
|
94
|
+
resourceType: 'QuestionnaireResponse',
|
|
95
|
+
id: 'phq2-response',
|
|
96
|
+
questionnaire: 'https://fhir.konsulin.care/fhir/Questionnaire/phq-2-questionnaire',
|
|
97
|
+
status: 'completed',
|
|
98
|
+
subject: {
|
|
99
|
+
reference: 'Patient/123'
|
|
100
|
+
},
|
|
101
|
+
authored: '2024-08-29T12:00:00Z',
|
|
102
|
+
item: [
|
|
103
|
+
{
|
|
104
|
+
linkId: 'phq2-1',
|
|
105
|
+
text: 'Over the last 2 weeks, how often have you been bothered by little interest or pleasure in doing things?',
|
|
106
|
+
answer: [
|
|
107
|
+
{
|
|
108
|
+
valueCoding: {
|
|
109
|
+
code: '2',
|
|
110
|
+
display: 'More than half the days'
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
linkId: 'phq2-2',
|
|
117
|
+
text: 'Over the last 2 weeks, how often have you been bothered by feeling down, depressed, or hopeless?',
|
|
118
|
+
answer: [
|
|
119
|
+
{
|
|
120
|
+
valueCoding: {
|
|
121
|
+
code: '1',
|
|
122
|
+
display: 'Several days'
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
};
|
|
129
|
+
export const observationResults = [
|
|
130
|
+
{
|
|
131
|
+
resourceType: 'Observation',
|
|
132
|
+
id: 'obs-phq2-1',
|
|
133
|
+
status: 'final',
|
|
134
|
+
code: {
|
|
135
|
+
coding: [
|
|
136
|
+
{
|
|
137
|
+
system: 'http://snomed.info/sct',
|
|
138
|
+
code: '28669007',
|
|
139
|
+
display: 'Anhedonia'
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
subject: {
|
|
144
|
+
reference: 'Patient/123'
|
|
145
|
+
},
|
|
146
|
+
derivedFrom: [
|
|
147
|
+
{
|
|
148
|
+
reference: 'QuestionnaireResponse/phq2-response'
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
effectiveDateTime: '2024-08-29T12:00:00Z',
|
|
152
|
+
valueCodeableConcept: {
|
|
153
|
+
coding: [
|
|
154
|
+
{
|
|
155
|
+
code: '2',
|
|
156
|
+
display: 'More than half the days'
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
resourceType: 'Observation',
|
|
163
|
+
id: 'obs-phq2-2',
|
|
164
|
+
status: 'final',
|
|
165
|
+
code: {
|
|
166
|
+
coding: [
|
|
167
|
+
{
|
|
168
|
+
system: 'http://snomed.info/sct',
|
|
169
|
+
code: '307077003',
|
|
170
|
+
display: 'Feeling hopeless'
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
subject: {
|
|
175
|
+
reference: 'Patient/123'
|
|
176
|
+
},
|
|
177
|
+
derivedFrom: [
|
|
178
|
+
{
|
|
179
|
+
reference: 'QuestionnaireResponse/phq2-response'
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
effectiveDateTime: '2024-08-29T12:00:00Z',
|
|
183
|
+
valueCodeableConcept: {
|
|
184
|
+
coding: [
|
|
185
|
+
{
|
|
186
|
+
code: '1',
|
|
187
|
+
display: 'Several days'
|
|
188
|
+
}
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
];
|
|
193
|
+
//# sourceMappingURL=observationSample.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observationSample.js","sourceRoot":"","sources":["../../../src/tests/test-data/observationSample.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AnswerExpression } from '../interfaces/answerExpression.interface';
|
|
2
|
+
import { type Expression, type QuestionnaireResponse, type QuestionnaireResponseItem } from 'fhir/r4';
|
|
3
|
+
interface EvaluateInitialAnswerExpressionsParams {
|
|
4
|
+
initialResponse: QuestionnaireResponse;
|
|
5
|
+
initialResponseItemMap: Record<string, QuestionnaireResponseItem[]>;
|
|
6
|
+
answerExpressions: Record<string, AnswerExpression>;
|
|
7
|
+
variablesFhirPath: Record<string, Expression[]>;
|
|
8
|
+
existingFhirPathContext: Record<string, any>;
|
|
9
|
+
}
|
|
10
|
+
export declare function evaluateInitialAnswerExpressions(params: EvaluateInitialAnswerExpressionsParams): Promise<{
|
|
11
|
+
initialAnswerExpressions: Record<string, AnswerExpression>;
|
|
12
|
+
updatedFhirPathContext: Record<string, any>;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function evaluateAnswerExpressions(fhirPathContext: Record<string, any>, answerExpressions: Record<string, AnswerExpression>): {
|
|
15
|
+
answerExpsIsUpdated: boolean;
|
|
16
|
+
updatedAnswerExpressions: Record<string, AnswerExpression>;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
import fhirpath from 'fhirpath';
|
|
27
|
+
import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
|
|
28
|
+
import _isEqual from 'lodash/isEqual';
|
|
29
|
+
import cloneDeep from 'lodash.clonedeep';
|
|
30
|
+
import { emptyResponse } from './emptyResource';
|
|
31
|
+
import { createFhirPathContext, evaluateTerminologyLinkIdVariables } from './fhirpath';
|
|
32
|
+
export function evaluateInitialAnswerExpressions(params) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const { initialResponse, initialResponseItemMap, answerExpressions, variablesFhirPath, existingFhirPathContext } = params;
|
|
35
|
+
// Return early if initialResponse is empty or there are no answer expressions to evaluate
|
|
36
|
+
if (_isEqual(initialResponse, cloneDeep(emptyResponse)) ||
|
|
37
|
+
Object.keys(answerExpressions).length === 0) {
|
|
38
|
+
return {
|
|
39
|
+
initialAnswerExpressions: answerExpressions,
|
|
40
|
+
updatedFhirPathContext: existingFhirPathContext
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const initialAnswerExpressions = Object.assign({}, answerExpressions);
|
|
44
|
+
let updatedFhirPathContext = yield createFhirPathContext(initialResponse, initialResponseItemMap, variablesFhirPath, existingFhirPathContext);
|
|
45
|
+
// Perform initial evaluation of terminology variables
|
|
46
|
+
for (const linkId in variablesFhirPath) {
|
|
47
|
+
updatedFhirPathContext = yield evaluateTerminologyLinkIdVariables(linkId, variablesFhirPath, updatedFhirPathContext);
|
|
48
|
+
}
|
|
49
|
+
for (const linkId in initialAnswerExpressions) {
|
|
50
|
+
const answerExpression = initialAnswerExpressions[linkId];
|
|
51
|
+
try {
|
|
52
|
+
const result = fhirpath.evaluate({}, answerExpression.expression, updatedFhirPathContext, fhirpath_r4_model);
|
|
53
|
+
// Update calculatedExpressions if length of result array > 0
|
|
54
|
+
// Only update when current calcExpression value is different from the result, otherwise it will result in an infinite loop as per issue #733
|
|
55
|
+
if (result.length > 0 && !_isEqual(answerExpression.options, result)) {
|
|
56
|
+
answerExpression.options = getAnswerOptionsFromResults(result);
|
|
57
|
+
answerExpression.version = answerExpression.version + 1;
|
|
58
|
+
}
|
|
59
|
+
// Update calculatedExpression value to null if no result is returned
|
|
60
|
+
if (result.length === 0 && !!answerExpression.options) {
|
|
61
|
+
// Only update if current options is not empty
|
|
62
|
+
if (answerExpression.options.length > 0) {
|
|
63
|
+
answerExpression.options = [];
|
|
64
|
+
answerExpression.version = answerExpression.version + 1;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
console.warn(e.message, `LinkId: ${linkId}\nExpression: ${answerExpression.options}`);
|
|
70
|
+
}
|
|
71
|
+
initialAnswerExpressions[linkId] = answerExpression;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
initialAnswerExpressions,
|
|
75
|
+
updatedFhirPathContext
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export function evaluateAnswerExpressions(fhirPathContext, answerExpressions) {
|
|
80
|
+
const updatedAnswerExpressions = Object.assign({}, answerExpressions);
|
|
81
|
+
let isUpdated = false;
|
|
82
|
+
for (const linkId in answerExpressions) {
|
|
83
|
+
const answerExpression = answerExpressions[linkId];
|
|
84
|
+
try {
|
|
85
|
+
const result = fhirpath.evaluate({}, answerExpression.expression, fhirPathContext, fhirpath_r4_model);
|
|
86
|
+
// Update calculatedExpressions if length of result array > 0
|
|
87
|
+
// Only update when current calcExpression value is different from the result, otherwise it will result in an infinite loop as per issue #733
|
|
88
|
+
if (result.length > 0 && !_isEqual(answerExpression.options, result)) {
|
|
89
|
+
isUpdated = true;
|
|
90
|
+
answerExpression.options = getAnswerOptionsFromResults(result);
|
|
91
|
+
answerExpression.version = answerExpression.version + 1;
|
|
92
|
+
}
|
|
93
|
+
// Update calculatedExpression value to null if no result is returned
|
|
94
|
+
if (result.length === 0 && !!answerExpression.options) {
|
|
95
|
+
// Only update if current options is not empty
|
|
96
|
+
if (answerExpression.options.length > 0) {
|
|
97
|
+
isUpdated = true;
|
|
98
|
+
answerExpression.options = [];
|
|
99
|
+
answerExpression.version = answerExpression.version + 1;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
console.warn(e.message, `LinkId: ${linkId}\nExpression: ${answerExpression.options}`);
|
|
105
|
+
}
|
|
106
|
+
updatedAnswerExpressions[linkId] = answerExpression;
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
answerExpsIsUpdated: isUpdated,
|
|
110
|
+
updatedAnswerExpressions: updatedAnswerExpressions
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function getAnswerOptionsFromResults(result) {
|
|
114
|
+
if (!Array.isArray(result)) {
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
117
|
+
return result
|
|
118
|
+
.map((item) => {
|
|
119
|
+
var _a;
|
|
120
|
+
if (item.system && item.code) {
|
|
121
|
+
return {
|
|
122
|
+
valueCoding: {
|
|
123
|
+
system: item.system,
|
|
124
|
+
code: item.code,
|
|
125
|
+
display: (_a = item.display) !== null && _a !== void 0 ? _a : undefined
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return item;
|
|
130
|
+
})
|
|
131
|
+
.filter((item) => typeof item === 'object');
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=answerExpression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answerExpression.js","sourceRoot":"","sources":["../../src/utils/answerExpression.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
|
|
|
23
23
|
import { updateQrItemsInGroup } from './qrItem';
|
|
24
24
|
import cloneDeep from 'lodash.clonedeep';
|
|
25
25
|
import dayjs from 'dayjs';
|
|
26
|
-
import { updateQuestionnaireResponse } from './
|
|
26
|
+
import { updateQuestionnaireResponse } from './genericRecursive';
|
|
27
27
|
export function evaluateInitialCalculatedExpressions(params) {
|
|
28
28
|
const { initialResponse, initialResponseItemMap, calculatedExpressions, variablesFhirPath, existingFhirPathContext } = params;
|
|
29
29
|
// Return early if initialResponse is empty or there are no calculated expressions to evaluate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AAUzD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"calculatedExpression.js","sourceRoot":"","sources":["../../src/utils/calculatedExpression.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/choice.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export declare function getQrChoiceValue(qrChoice: QuestionnaireResponseItem, re
|
|
|
35
35
|
*
|
|
36
36
|
* @author Sean Fong
|
|
37
37
|
*/
|
|
38
|
-
export declare function updateChoiceCheckboxAnswers(changedValue: string, answers: QuestionnaireResponseItemAnswer[], options: QuestionnaireItemAnswerOption[], oldQrItem: QuestionnaireResponseItem, isMultiSelection: boolean): QuestionnaireResponseItem | null;
|
|
38
|
+
export declare function updateChoiceCheckboxAnswers(changedValue: string, answers: QuestionnaireResponseItemAnswer[], options: QuestionnaireItemAnswerOption[], oldQrItem: QuestionnaireResponseItem, isMultiSelection: boolean, answerKey: string | undefined): QuestionnaireResponseItem | null;
|
|
39
39
|
/**
|
|
40
40
|
* Get choice orientation from its itemControl
|
|
41
41
|
*
|
package/lib/utils/choice.js
CHANGED
|
@@ -111,7 +111,7 @@ export function getQrChoiceValue(qrChoice, returnNull) {
|
|
|
111
111
|
*
|
|
112
112
|
* @author Sean Fong
|
|
113
113
|
*/
|
|
114
|
-
export function updateChoiceCheckboxAnswers(changedValue, answers, options, oldQrItem, isMultiSelection) {
|
|
114
|
+
export function updateChoiceCheckboxAnswers(changedValue, answers, options, oldQrItem, isMultiSelection, answerKey) {
|
|
115
115
|
// search for answer item of changedValue from list of answer options
|
|
116
116
|
const newAnswer = findInAnswerOptions(options, changedValue);
|
|
117
117
|
if (!newAnswer) {
|
|
@@ -125,12 +125,14 @@ export function updateChoiceCheckboxAnswers(changedValue, answers, options, oldQ
|
|
|
125
125
|
if (updatedAnswers.length === answers.length) {
|
|
126
126
|
updatedAnswers.push(newAnswer);
|
|
127
127
|
}
|
|
128
|
-
|
|
128
|
+
const updatedAnswersWithKey = updatedAnswers.map((answer) => (Object.assign(Object.assign({}, answer), { id: answerKey })));
|
|
129
|
+
return Object.assign(Object.assign({}, oldQrItem), { answer: updatedAnswersWithKey });
|
|
129
130
|
}
|
|
130
131
|
// Process single selection
|
|
131
132
|
// If answer already exists, remove it from the array. Otherwise, add it to the array
|
|
132
133
|
const answerExists = answers.some((answer) => JSON.stringify(answer) === JSON.stringify(newAnswer));
|
|
133
|
-
return answerExists
|
|
134
|
+
return answerExists
|
|
135
|
+
? Object.assign(Object.assign({}, oldQrItem), { answer: [] }) : Object.assign(Object.assign({}, oldQrItem), { answer: [Object.assign(Object.assign({}, newAnswer), { id: answerKey })] });
|
|
134
136
|
}
|
|
135
137
|
/**
|
|
136
138
|
* Get choice orientation from its itemControl
|
package/lib/utils/choice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"choice.js","sourceRoot":"","sources":["../../src/utils/choice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DynamicValueSet } from '../interfaces/valueSet.interface';
|
|
2
|
+
export declare function evaluateDynamicValueSets(fhirPathContext: Record<string, any>, dynamicValueSets: Record<string, DynamicValueSet>): {
|
|
3
|
+
dynamicValueSetsIsUpdated: boolean;
|
|
4
|
+
updatedDynamicValueSets: Record<string, DynamicValueSet>;
|
|
5
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import fhirpath from 'fhirpath';
|
|
18
|
+
import fhirpath_r4_model from 'fhirpath/fhir-context/r4';
|
|
19
|
+
import cloneDeep from 'lodash.clonedeep';
|
|
20
|
+
import _isEqual from 'lodash/isEqual';
|
|
21
|
+
export function evaluateDynamicValueSets(fhirPathContext, dynamicValueSets) {
|
|
22
|
+
var _a;
|
|
23
|
+
const updatedDynamicValueSets = cloneDeep(dynamicValueSets);
|
|
24
|
+
let isUpdated = false;
|
|
25
|
+
for (const linkId in updatedDynamicValueSets) {
|
|
26
|
+
const dynamicValueSet = updatedDynamicValueSets[linkId];
|
|
27
|
+
const completeResource = dynamicValueSet.sourceResource;
|
|
28
|
+
const valueSetComposeInclude = (_a = completeResource.compose) === null || _a === void 0 ? void 0 : _a.include;
|
|
29
|
+
if (valueSetComposeInclude && valueSetComposeInclude.length > 0) {
|
|
30
|
+
for (const include of valueSetComposeInclude) {
|
|
31
|
+
if (!include.filter) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
// There are filters present, check for fhirpath embeddings
|
|
35
|
+
const fhirPathEmbeddingsMap = {};
|
|
36
|
+
for (const filter of include.filter) {
|
|
37
|
+
const filterValue = filter.value;
|
|
38
|
+
if (filterValue.includes('{{') && filterValue.includes('}}')) {
|
|
39
|
+
if (filterValue) {
|
|
40
|
+
for (const embedding of readFhirPathEmbeddingsFromStr(filterValue)) {
|
|
41
|
+
if (embedding) {
|
|
42
|
+
fhirPathEmbeddingsMap[embedding] = '';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const evaluatedFhirPathEmbeddingsMap = evaluateFhirPathEmbeddings(fhirPathEmbeddingsMap, fhirPathContext);
|
|
49
|
+
const evaluatedFhirPathEmbeddingsTuple = Object.entries(evaluatedFhirPathEmbeddingsMap).filter(([, value]) => value != '');
|
|
50
|
+
for (const filter of include.filter) {
|
|
51
|
+
evaluatedFhirPathEmbeddingsTuple.forEach(([embedding, value]) => {
|
|
52
|
+
const filterValue = filter.value;
|
|
53
|
+
const pattern = new RegExp(`{{%${embedding}}}`, 'g');
|
|
54
|
+
filter.value = filterValue.replace(pattern, value);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Complete resource has been updated, update the dynamicValueSet object
|
|
60
|
+
if (!_isEqual(dynamicValueSets[linkId].completeResource, completeResource)) {
|
|
61
|
+
isUpdated = true;
|
|
62
|
+
// If source response same as the complete resource, embeddings are not replaced, therefore ValueSet is not complete
|
|
63
|
+
updatedDynamicValueSets[linkId] = {
|
|
64
|
+
sourceResource: dynamicValueSets[linkId].sourceResource,
|
|
65
|
+
completeResource: dynamicValueSet.sourceResource,
|
|
66
|
+
version: dynamicValueSet.version + 1,
|
|
67
|
+
isComplete: !_isEqual(dynamicValueSets[linkId].sourceResource, completeResource)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// after that we need to update the dynamicvalueset object - iscomplete so that we can use it in useMemo - or potentially updated the version of the dynamic updatedcount
|
|
72
|
+
return {
|
|
73
|
+
dynamicValueSetsIsUpdated: isUpdated,
|
|
74
|
+
updatedDynamicValueSets: updatedDynamicValueSets
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function evaluateFhirPathEmbeddings(fhirPathEmbeddingsMap, fhirPathContext) {
|
|
78
|
+
// evaluate fhirpath embeddings within map
|
|
79
|
+
Object.keys(fhirPathEmbeddingsMap).forEach((embedding) => {
|
|
80
|
+
try {
|
|
81
|
+
const result = fhirpath.evaluate({}, `%${embedding}`, fhirPathContext, fhirpath_r4_model)[0];
|
|
82
|
+
if (result !== undefined && result !== null) {
|
|
83
|
+
fhirPathEmbeddingsMap[embedding] = result;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
console.warn(e);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
return fhirPathEmbeddingsMap;
|
|
91
|
+
}
|
|
92
|
+
const FHIRPATH_EMBEDDING_REGEX = /{{%(.*?)}}/g;
|
|
93
|
+
function readFhirPathEmbeddingsFromStr(expression) {
|
|
94
|
+
return [...expression.matchAll(FHIRPATH_EMBEDDING_REGEX)].map((match) => { var _a; return (_a = match[1]) !== null && _a !== void 0 ? _a : ''; });
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=dynamicValueSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicValueSet.js","sourceRoot":"","sources":["../../src/utils/dynamicValueSet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CodeableConcept, Observation, Questionnaire, QuestionnaireItem, QuestionnaireResponse, QuestionnaireResponseItemAnswer } from 'fhir/r4';
|
|
2
|
+
/**
|
|
3
|
+
* Extract an array of Observations from a QuestionnaireResponse and its source Questionnaire.
|
|
4
|
+
* @see https://build.fhir.org/ig/HL7/sdc/extraction.html#observation-based-extraction
|
|
5
|
+
*
|
|
6
|
+
* @author Riza Nafis
|
|
7
|
+
*/
|
|
8
|
+
export declare function extractObservationBased(questionnaire: Questionnaire, questionnaireResponse: QuestionnaireResponse): Observation[];
|
|
9
|
+
export declare function createObservation(questionnaireItem: QuestionnaireItem, questionnaireResponse: QuestionnaireResponse, answer: QuestionnaireResponseItemAnswer, categories: CodeableConcept[]): Observation;
|