@aehrc/smart-forms-renderer 0.9.3 → 0.10.1

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.
Files changed (163) hide show
  1. package/.swcrc +11 -0
  2. package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js +5 -5
  3. package/lib/components/FormComponents/GroupItem/NextTabButtonWrapper.js.map +1 -1
  4. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +1 -1
  5. package/lib/components/FormComponents/RepeatItem/RemoveItemButton.d.ts +10 -0
  6. package/lib/components/FormComponents/RepeatItem/RemoveItemButton.js +30 -0
  7. package/lib/components/FormComponents/RepeatItem/RemoveItemButton.js.map +1 -0
  8. package/lib/components/FormComponents/RepeatItem/RepeatField.js +2 -2
  9. package/lib/components/FormComponents/SingleItem/SingleItem.js +2 -2
  10. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  11. package/lib/components/FormComponents/Tables/GroupTable.d.ts +1 -2
  12. package/lib/components/FormComponents/Tables/GroupTable.js +59 -63
  13. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  14. package/lib/components/FormComponents/Tables/GroupTableBody.d.ts +17 -0
  15. package/lib/components/FormComponents/Tables/GroupTableBody.js +48 -0
  16. package/lib/components/FormComponents/Tables/GroupTableBody.js.map +1 -0
  17. package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +18 -5
  18. package/lib/components/FormComponents/Tables/GroupTableRow.js +17 -25
  19. package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
  20. package/lib/components/FormComponents/Tables/GroupTableRowCells.d.ts +10 -0
  21. package/lib/components/FormComponents/Tables/GroupTableRowCells.js +46 -0
  22. package/lib/components/FormComponents/Tables/GroupTableRowCells.js.map +1 -0
  23. package/lib/components/FormComponents/Tables/GroupTableRows.d.ts +17 -0
  24. package/lib/components/FormComponents/Tables/GroupTableRows.js +45 -0
  25. package/lib/components/FormComponents/Tables/GroupTableRows.js.map +1 -0
  26. package/lib/components/FormComponents/Tables/GroupTableTestRow.d.ts +22 -0
  27. package/lib/components/FormComponents/Tables/GroupTableTestRow.js +43 -0
  28. package/lib/components/FormComponents/Tables/GroupTableTestRow.js.map +1 -0
  29. package/lib/components/FormComponents/Tables/GroupTableView.d.ts +21 -0
  30. package/lib/components/FormComponents/Tables/GroupTableView.js +65 -0
  31. package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -0
  32. package/lib/components/FormComponents/Tables/RemoveRowButton.d.ts +10 -0
  33. package/lib/components/FormComponents/Tables/RemoveRowButton.js +32 -0
  34. package/lib/components/FormComponents/Tables/RemoveRowButton.js.map +1 -0
  35. package/lib/components/FormComponents/Tables/SelectRowButton.d.ts +7 -0
  36. package/lib/components/FormComponents/Tables/SelectRowButton.js +26 -0
  37. package/lib/components/FormComponents/Tables/SelectRowButton.js.map +1 -0
  38. package/lib/components/FormComponents/Tables/Table.styles.d.ts +8 -0
  39. package/lib/components/FormComponents/Tables/Table.styles.js +17 -0
  40. package/lib/components/FormComponents/Tables/Table.styles.js.map +1 -1
  41. package/lib/components/Renderer/BaseRenderer.js +5 -6
  42. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  43. package/lib/components/Renderer/FormBodyCollapsible.js +4 -4
  44. package/lib/components/Renderer/FormBodyCollapsible.js.map +1 -1
  45. package/lib/components/Renderer/FormBodyTabbed.js +3 -3
  46. package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
  47. package/lib/components/Tabs/CompleteTabButton.js +2 -2
  48. package/lib/components/Tabs/CompleteTabButton.js.map +1 -1
  49. package/lib/components/Tabs/FormBodySingleTab.js +2 -2
  50. package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
  51. package/lib/components/Tabs/FormBodyTabList.js +4 -4
  52. package/lib/components/Tabs/FormBodyTabList.js.map +1 -1
  53. package/lib/hooks/useDecimalCalculatedExpression.js +2 -2
  54. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -1
  55. package/lib/hooks/useGroupTableRows.d.ts +9 -0
  56. package/lib/hooks/useGroupTableRows.js +26 -0
  57. package/lib/hooks/useGroupTableRows.js.map +1 -0
  58. package/lib/hooks/useHidden.js +4 -4
  59. package/lib/hooks/useHidden.js.map +1 -1
  60. package/lib/hooks/useInitialiseGroupTable.d.ts +2 -2
  61. package/lib/hooks/useInitialiseGroupTable.js.map +1 -1
  62. package/lib/hooks/useInitialiseRenderer.js +13 -15
  63. package/lib/hooks/useInitialiseRenderer.js.map +1 -1
  64. package/lib/hooks/useIntegerCalculatedExpression.js +2 -2
  65. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -1
  66. package/lib/hooks/useMinimalStringCalculatedExpression.js +25 -13
  67. package/lib/hooks/useStringCalculatedExpression.js +2 -2
  68. package/lib/hooks/useStringCalculatedExpression.js.map +1 -1
  69. package/lib/hooks/useTerminologyServerQuery.js +3 -4
  70. package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
  71. package/lib/hooks/useValueSetCodings.js +10 -12
  72. package/lib/hooks/useValueSetCodings.js.map +1 -1
  73. package/lib/index.js +19 -20
  74. package/lib/index.js.map +1 -1
  75. package/lib/interfaces/groupTable.interface.d.ts +1 -1
  76. package/lib/setup-jest.js +1 -0
  77. package/lib/setup-jest.js.map +1 -0
  78. package/lib/stores/index.d.ts +4 -3
  79. package/lib/stores/index.js +4 -3
  80. package/lib/stores/index.js.map +1 -1
  81. package/lib/stores/questionnaireResponseStore.d.ts +28 -0
  82. package/lib/stores/questionnaireResponseStore.js +64 -0
  83. package/lib/stores/questionnaireResponseStore.js.map +1 -0
  84. package/lib/stores/questionnaireStore.d.ts +65 -0
  85. package/lib/stores/questionnaireStore.js +172 -0
  86. package/lib/stores/questionnaireStore.js.map +1 -0
  87. package/lib/stores/selector.d.ts +1 -1
  88. package/lib/stores/selector.js.map +1 -1
  89. package/lib/stores/smartConfigStore.d.ts +25 -0
  90. package/lib/stores/smartConfigStore.js +30 -0
  91. package/lib/stores/smartConfigStore.js.map +1 -0
  92. package/lib/stores/terminologyServerStore.d.ts +14 -0
  93. package/lib/stores/terminologyServerStore.js +26 -0
  94. package/lib/stores/terminologyServerStore.js.map +1 -0
  95. package/lib/stores/useQuestionnaireResponseStore.d.ts +14 -2
  96. package/lib/stores/useQuestionnaireResponseStore.js +4 -2
  97. package/lib/stores/useQuestionnaireResponseStore.js.map +1 -1
  98. package/lib/stores/useQuestionnaireStore.d.ts +30 -2
  99. package/lib/stores/useQuestionnaireStore.js +4 -2
  100. package/lib/stores/useQuestionnaireStore.js.map +1 -1
  101. package/lib/stories/MedicalHistoryTable.stories.js +45 -0
  102. package/lib/stories/MedicalHistoryTable.stories.js.map +1 -0
  103. package/lib/stories/SmartFormsRenderer.stories.js +103 -0
  104. package/lib/stories/SmartFormsRenderer.stories.js.map +1 -0
  105. package/lib/theme/overrides/Table.d.ts +1 -0
  106. package/lib/theme/overrides/Table.js +2 -1
  107. package/lib/theme/overrides/Table.js.map +1 -1
  108. package/lib/utils/calculatedExpression.js +1 -2
  109. package/lib/utils/calculatedExpression.js.map +1 -1
  110. package/lib/utils/groupTable.d.ts +3 -0
  111. package/lib/utils/groupTable.js +29 -0
  112. package/lib/utils/groupTable.js.map +1 -0
  113. package/package.json +9 -4
  114. package/src/components/FormComponents/GroupItem/NextTabButtonWrapper.tsx +5 -5
  115. package/src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx +1 -1
  116. package/src/components/FormComponents/RepeatItem/{DeleteItemButton.tsx → RemoveItemButton.tsx} +4 -4
  117. package/src/components/FormComponents/RepeatItem/RepeatField.tsx +2 -2
  118. package/src/components/FormComponents/SingleItem/SingleItem.tsx +2 -2
  119. package/src/components/FormComponents/Tables/GroupTable.tsx +71 -125
  120. package/src/components/FormComponents/Tables/GroupTableBody.tsx +117 -0
  121. package/src/components/FormComponents/Tables/GroupTableRow.tsx +89 -49
  122. package/src/components/FormComponents/Tables/GroupTableRowCells.tsx +84 -0
  123. package/src/components/FormComponents/Tables/GroupTableView.tsx +169 -0
  124. package/src/components/FormComponents/Tables/{DeleteRowButton.tsx → RemoveRowButton.tsx} +7 -7
  125. package/src/components/FormComponents/Tables/SelectRowButton.tsx +37 -0
  126. package/src/components/FormComponents/Tables/Table.styles.tsx +25 -0
  127. package/src/components/Renderer/BaseRenderer.tsx +5 -6
  128. package/src/components/Renderer/FormBodyCollapsible.tsx +4 -5
  129. package/src/components/Renderer/FormBodyTabbed.tsx +3 -3
  130. package/src/components/Tabs/CompleteTabButton.tsx +2 -2
  131. package/src/components/Tabs/FormBodySingleTab.tsx +2 -3
  132. package/src/components/Tabs/FormBodyTabList.tsx +4 -4
  133. package/src/hooks/useDecimalCalculatedExpression.ts +2 -2
  134. package/src/hooks/useGroupTableRows.ts +33 -0
  135. package/src/hooks/useHidden.ts +4 -4
  136. package/src/hooks/useInitialiseGroupTable.ts +3 -3
  137. package/src/hooks/useInitialiseRenderer.ts +19 -19
  138. package/src/hooks/useIntegerCalculatedExpression.ts +2 -2
  139. package/src/hooks/useStringCalculatedExpression.ts +2 -2
  140. package/src/hooks/useTerminologyServerQuery.ts +3 -4
  141. package/src/hooks/useValueSetCodings.ts +10 -12
  142. package/src/index.ts +19 -20
  143. package/src/interfaces/groupTable.interface.ts +1 -1
  144. package/src/stores/index.ts +7 -3
  145. package/src/stores/questionnaireResponseStore.ts +83 -0
  146. package/src/stores/{useQuestionnaireStore.ts → questionnaireStore.ts} +7 -6
  147. package/src/stores/selector.ts +2 -1
  148. package/src/stores/smartConfigStore.ts +45 -0
  149. package/src/stores/{useTerminologyServerStore.ts → terminologyServerStore.ts} +5 -4
  150. package/src/stories/MedicalHistoryTable.stories.tsx +57 -0
  151. package/src/stories/SmartFormsRenderer.stories.ts +15 -5
  152. package/src/stories/assets/QItems-and-QRItems/QR_GTableMedicalHistory.json +80 -0
  153. package/src/stories/assets/QItems-and-QRItems/Q_GTableMedicalHistory.json +109 -0
  154. package/src/stories/assets/Qs-and-QRs/QDev715.json +16081 -0
  155. package/src/theme/overrides/Table.ts +2 -1
  156. package/src/utils/calculatedExpression.ts +1 -2
  157. package/src/utils/groupTable.ts +37 -0
  158. package/src/stores/useQuestionnaireResponseStore.ts +0 -63
  159. package/src/stores/useSmartConfigStore.ts +0 -27
  160. /package/src/stories/assets/{Q715.json → Qs-and-QRs/Q715.json} +0 -0
  161. /package/src/stories/assets/{QTestGrid.json → Qs-and-QRs/QTestGrid.json} +0 -0
  162. /package/src/stories/assets/{R715.json → Qs-and-QRs/R715.json} +0 -0
  163. /package/src/stories/assets/{RTestGrid.json → Qs-and-QRs/RTestGrid.json} +0 -0
@@ -15,20 +15,21 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import { create } from 'zustand';
18
+ import { createStore } from 'zustand/vanilla';
19
+ import { createSelectors } from './selector';
19
20
 
20
21
  const ONTOSERVER_R4 = 'https://r4.ontoserver.csiro.au/fhir';
21
22
 
22
- export interface UseTerminologyServerStoreType {
23
+ interface TerminologyServerStoreType {
23
24
  url: string;
24
25
  setUrl: (newUrl: string) => void;
25
26
  resetUrl: () => void;
26
27
  }
27
28
 
28
- const useTerminologyServerStore = create<UseTerminologyServerStoreType>()((set) => ({
29
+ export const terminologyServerStore = createStore<TerminologyServerStoreType>()((set) => ({
29
30
  url: ONTOSERVER_R4,
30
31
  setUrl: (newUrl: string) => set(() => ({ url: newUrl })),
31
32
  resetUrl: () => set(() => ({ url: ONTOSERVER_R4 }))
32
33
  }));
33
34
 
34
- export default useTerminologyServerStore;
35
+ export const useTerminologyServerStore = createSelectors(terminologyServerStore);
@@ -0,0 +1,57 @@
1
+ /*
2
+ * Copyright 2023 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
+
18
+ import ThemeProvider from '../theme/Theme';
19
+ import type { Meta, StoryObj } from '@storybook/react';
20
+ import { GroupTable } from '../components';
21
+ import GTableMedicalHistoryItemJson from './assets/QItems-and-QRItems/Q_GTableMedicalHistory.json';
22
+ import GTableMedicalHistoryAnswersJson from './assets/QItems-and-QRItems/QR_GTableMedicalHistory.json';
23
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
24
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
25
+
26
+ // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
27
+ const meta = {
28
+ title: 'Component/GroupTable',
29
+ component: GroupTable,
30
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
31
+ tags: [],
32
+ decorators: [
33
+ (Story) => (
34
+ <ThemeProvider>
35
+ <QueryClientProvider client={new QueryClient()}>{Story()}</QueryClientProvider>
36
+ </ThemeProvider>
37
+ )
38
+ ]
39
+ } satisfies Meta<typeof GroupTable>;
40
+
41
+ const GTableMedicalHistoryItem = GTableMedicalHistoryItemJson as QuestionnaireItem;
42
+ const GTableMedicalHistoryAnswers = GTableMedicalHistoryAnswersJson as QuestionnaireResponseItem[];
43
+
44
+ export default meta;
45
+ type Story = StoryObj<typeof meta>;
46
+
47
+ // More on writing stories with args: https://storybook.js.org/docs/react/writing-stories/args
48
+
49
+ export const MedicalHistoryTable: Story = {
50
+ args: {
51
+ qItem: GTableMedicalHistoryItem,
52
+ qrItems: GTableMedicalHistoryAnswers,
53
+ groupCardElevation: 1,
54
+ parentIsReadOnly: false,
55
+ onQrRepeatGroupChange: () => {}
56
+ }
57
+ };
@@ -18,24 +18,28 @@
18
18
  import type { Meta, StoryObj } from '@storybook/react';
19
19
  import { SmartFormsRenderer } from '../components';
20
20
  import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
21
- import Q715Json from './assets/Q715.json';
22
- import R715Json from './assets/R715.json';
23
- import QTestGridJson from './assets/QTestGrid.json';
24
- import RTestGridJson from './assets/RTestGrid.json';
21
+ import Q715Json from './assets/Qs-and-QRs/Q715.json';
22
+ import R715Json from './assets/Qs-and-QRs/R715.json';
23
+ import QTestGridJson from './assets/Qs-and-QRs/QTestGrid.json';
24
+ import RTestGridJson from './assets/Qs-and-QRs/RTestGrid.json';
25
+ import QDev715Json from './assets/Qs-and-QRs/QDev715.json';
25
26
 
26
27
  // More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
27
28
  const meta = {
28
29
  title: 'Component/SmartFormsRenderer',
29
30
  component: SmartFormsRenderer,
30
31
  // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/react/writing-docs/autodocs
31
- tags: ['autodocs']
32
+ tags: []
32
33
  } satisfies Meta<typeof SmartFormsRenderer>;
33
34
 
34
35
  const Q715 = Q715Json as Questionnaire;
35
36
  const R715 = R715Json as QuestionnaireResponse;
37
+
36
38
  const QTestGrid = QTestGridJson as Questionnaire;
37
39
  const RTestGrid = RTestGridJson as QuestionnaireResponse;
38
40
 
41
+ const QDev715 = QDev715Json as Questionnaire;
42
+
39
43
  export default meta;
40
44
  type Story = StoryObj<typeof meta>;
41
45
 
@@ -54,6 +58,12 @@ export const Form715WithResponse: Story = {
54
58
  }
55
59
  };
56
60
 
61
+ export const FormDev715: Story = {
62
+ args: {
63
+ questionnaire: QDev715
64
+ }
65
+ };
66
+
57
67
  export const FormTestGrid: Story = {
58
68
  args: {
59
69
  questionnaire: QTestGrid
@@ -0,0 +1,80 @@
1
+ [
2
+ {
3
+ "linkId": "92bd7d05-9b5e-4cf9-900b-703f361dad9d",
4
+ "text": "Medical history and current problems list",
5
+ "item": [
6
+ {
7
+ "linkId": "59b1900a-4f85-4a8c-b9cd-3fe2fd76f27e",
8
+ "text": "Condition",
9
+ "answer": [
10
+ {
11
+ "valueString": "Large diffuse B-cell lymphoma of the brain"
12
+ }
13
+ ]
14
+ },
15
+ {
16
+ "linkId": "88bcfad7-386b-4d87-b34b-2e50482e4d2c",
17
+ "text": "Clinical Status",
18
+ "answer": [
19
+ {
20
+ "valueCoding": {
21
+ "system": "http://terminology.hl7.org/CodeSystem/condition-clinical",
22
+ "code": "active",
23
+ "display": "Active"
24
+ }
25
+ }
26
+ ]
27
+ },
28
+ {
29
+ "linkId": "18b9e159-2ed7-4047-82b7-deb2a171de4f",
30
+ "text": "Recorded Date",
31
+ "answer": [
32
+ {
33
+ "valueDate": "2021-02-01"
34
+ }
35
+ ]
36
+ }
37
+ ]
38
+ },
39
+ {
40
+ "linkId": "92bd7d05-9b5e-4cf9-900b-703f361dad9d",
41
+ "text": "Medical history and current problems list",
42
+ "item": [
43
+ {
44
+ "linkId": "59b1900a-4f85-4a8c-b9cd-3fe2fd76f27e",
45
+ "text": "Condition",
46
+ "answer": [
47
+ {
48
+ "valueCoding": {
49
+ "system": "http://snomed.info/sct",
50
+ "code": "56731001",
51
+ "display": "Hypertonia"
52
+ }
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "linkId": "88bcfad7-386b-4d87-b34b-2e50482e4d2c",
58
+ "text": "Clinical Status",
59
+ "answer": [
60
+ {
61
+ "valueCoding": {
62
+ "system": "http://terminology.hl7.org/CodeSystem/condition-clinical",
63
+ "code": "inactive",
64
+ "display": "Inactive"
65
+ }
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "linkId": "18b9e159-2ed7-4047-82b7-deb2a171de4f",
71
+ "text": "Recorded Date",
72
+ "answer": [
73
+ {
74
+ "valueDate": "2023-11-08"
75
+ }
76
+ ]
77
+ }
78
+ ]
79
+ }
80
+ ]
@@ -0,0 +1,109 @@
1
+ {
2
+ "extension": [
3
+ {
4
+ "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
5
+ "valueCodeableConcept": {
6
+ "coding": [
7
+ {
8
+ "system": "http://hl7.org/fhir/questionnaire-item-control",
9
+ "code": "gtable"
10
+ }
11
+ ]
12
+ }
13
+ },
14
+ {
15
+ "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-itemPopulationContext",
16
+ "valueExpression": {
17
+ "name": "ConditionRepeat",
18
+ "language": "text/fhirpath",
19
+ "expression": "%Condition.entry.resource"
20
+ }
21
+ }
22
+ ],
23
+ "linkId": "92bd7d05-9b5e-4cf9-900b-703f361dad9d",
24
+ "text": "Medical history and current problems list",
25
+ "type": "group",
26
+ "repeats": true,
27
+ "item": [
28
+ {
29
+ "extension": [
30
+ {
31
+ "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
32
+ "valueCodeableConcept": {
33
+ "coding": [
34
+ {
35
+ "system": "http://hl7.org/fhir/questionnaire-item-control",
36
+ "code": "autocomplete"
37
+ }
38
+ ]
39
+ }
40
+ },
41
+ {
42
+ "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
43
+ "valueExpression": {
44
+ "language": "text/fhirpath",
45
+ "expression": "%ConditionRepeat.code.select((coding.where(system='http://snomed.info/sct') | coding.where(system!='http://snomed.info/sct').first() | text ).first())"
46
+ }
47
+ }
48
+ ],
49
+ "linkId": "59b1900a-4f85-4a8c-b9cd-3fe2fd76f27e",
50
+ "text": "Condition",
51
+ "type": "open-choice",
52
+ "answerValueSet": "https://smartforms.csiro.au/ig/ValueSet/MedicalHistory"
53
+ },
54
+ {
55
+ "extension": [
56
+ {
57
+ "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
58
+ "valueCodeableConcept": {
59
+ "coding": [
60
+ {
61
+ "system": "http://hl7.org/fhir/questionnaire-item-control",
62
+ "code": "drop-down"
63
+ }
64
+ ]
65
+ }
66
+ },
67
+ {
68
+ "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
69
+ "valueExpression": {
70
+ "language": "text/fhirpath",
71
+ "expression": "%ConditionRepeat.clinicalStatus.coding"
72
+ }
73
+ }
74
+ ],
75
+ "linkId": "88bcfad7-386b-4d87-b34b-2e50482e4d2c",
76
+ "text": "Clinical Status",
77
+ "type": "choice",
78
+ "answerValueSet": "http://hl7.org/fhir/ValueSet/condition-clinical"
79
+ },
80
+ {
81
+ "extension": [
82
+ {
83
+ "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
84
+ "valueExpression": {
85
+ "language": "text/fhirpath",
86
+ "expression": "%ConditionRepeat.onset.ofType(dateTime)"
87
+ }
88
+ }
89
+ ],
90
+ "linkId": "6ae641ad-95bb-4cdc-8910-5a52077e492c",
91
+ "text": "Onset Date",
92
+ "type": "date"
93
+ },
94
+ {
95
+ "extension": [
96
+ {
97
+ "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
98
+ "valueExpression": {
99
+ "language": "text/fhirpath",
100
+ "expression": "%ConditionRepeat.recordedDate"
101
+ }
102
+ }
103
+ ],
104
+ "linkId": "18b9e159-2ed7-4047-82b7-deb2a171de4f",
105
+ "text": "Recorded Date",
106
+ "type": "date"
107
+ }
108
+ ]
109
+ }