@aehrc/smart-forms-renderer 1.0.0-alpha.54 → 1.0.0-alpha.56
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/lib/components/FormComponents/Tables/GroupTableRow.js +3 -3
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/stores/extractOperationStore.d.ts +26 -0
- package/lib/stores/extractOperationStore.js +20 -0
- package/lib/stores/extractOperationStore.js.map +1 -0
- package/lib/stores/index.d.ts +7 -4
- package/lib/stores/index.js +5 -2
- package/lib/stores/index.js.map +1 -1
- package/lib/stores/rendererStylingStore.d.ts +1 -1
- package/lib/templates/bloodPressureTemplate.d.ts +23 -0
- package/lib/templates/bloodPressureTemplate.js +80 -0
- package/lib/templates/bloodPressureTemplate.js.map +1 -0
- package/lib/tests/test-data/bloodPressureSample.d.ts +3 -0
- package/lib/tests/test-data/bloodPressureSample.js +250 -0
- package/lib/tests/test-data/bloodPressureSample.js.map +1 -0
- package/lib/tests/test-data/complexTemplateSample.d.ts +3 -0
- package/lib/tests/test-data/complexTemplateSample.js +704 -0
- package/lib/tests/test-data/complexTemplateSample.js.map +1 -0
- package/lib/utils/calculatedExpression.js +9 -4
- package/lib/utils/calculatedExpression.js.map +1 -1
- package/lib/utils/extractTemplate.d.ts +0 -0
- package/lib/utils/extractTemplate.js +1107 -0
- package/lib/utils/extractTemplate.js.map +1 -0
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/misc.d.ts +8 -0
- package/lib/utils/misc.js +7 -2
- package/lib/utils/misc.js.map +1 -1
- package/lib/utils/openChoice.js +3 -3
- package/lib/utils/openChoice.js.map +1 -1
- package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js +2 -2
- package/lib/utils/questionnaireStoreUtils/addDisplayToCodings.js.map +1 -1
- package/lib/utils/repopulateItems.js +4 -4
- package/lib/utils/repopulateItems.js.map +1 -1
- package/lib/utils/templateMatching.d.ts +15 -0
- package/lib/utils/templateMatching.js +56 -0
- package/lib/utils/templateMatching.js.map +1 -0
- package/lib/utils/valueSet.js +3 -3
- package/lib/utils/valueSet.js.map +1 -1
- package/package.json +4 -5
- package/src/components/FormComponents/Tables/GroupTableRow.tsx +4 -9
- package/src/index.ts +2 -1
- package/src/stores/index.ts +9 -7
- package/src/utils/calculatedExpression.ts +12 -4
- package/src/utils/index.ts +1 -1
- package/src/utils/misc.ts +7 -2
- package/src/utils/openChoice.ts +3 -3
- package/src/utils/questionnaireStoreUtils/addDisplayToCodings.ts +2 -2
- package/src/utils/repopulateItems.ts +4 -4
- package/src/utils/valueSet.ts +3 -3
|
@@ -9,11 +9,11 @@ import Box from '@mui/material/Box';
|
|
|
9
9
|
import { Draggable } from 'react-beautiful-dnd';
|
|
10
10
|
import { StyledGroupTableRow } from './Table.styles';
|
|
11
11
|
function GroupTableRow(props) {
|
|
12
|
-
const { rowId, index, tableQItem, answeredQrItem, nullableQrItem, readOnly, isRepeated, hoverDisabled, tableRows, itemIsSelected, qItemsIndexMap, itemPath, showMinimalView,
|
|
12
|
+
const { rowId, index, tableQItem, answeredQrItem, nullableQrItem, readOnly, isRepeated, hoverDisabled, tableRows, itemIsSelected, qItemsIndexMap, itemPath, showMinimalView, onRowChange, onRemoveRow, onSelectRow } = props;
|
|
13
13
|
if (isRepeated) {
|
|
14
|
-
return (_jsx(Draggable, Object.assign({ draggableId: rowId, index: index }, { children: (draggableProvided, snapshot) => (_jsxs(StyledGroupTableRow, Object.assign({ itemIsDragged: snapshot.isDragging, itemIsSelected: itemIsSelected, hoverDisabled: hoverDisabled, hover: !hoverDisabled, ref: draggableProvided.innerRef }, draggableProvided.draggableProps, { children: [showMinimalView || !isRepeated ? (_jsx(TableCell, { padding: "checkbox" })) : (_jsxs(_Fragment, { children: [_jsx(TableCell, Object.assign({ padding: "none" }, { children: _jsx(Box, Object.assign({ display: "flex", alignItems: "center", justifyContent: "center" }, (readOnly ? {} : draggableProvided.dragHandleProps), { children: _jsx(DragIndicator, { fontSize: "small", sx: { color: readOnly ? 'text.disabled' : 'inherit' } }) })) })), _jsx(SelectRowButton, { isChecked: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(rowId) })] })), _jsx(GroupTableRowCells, { qItem: tableQItem, qrItem: answeredQrItem, qItemsIndexMap: qItemsIndexMap, itemPath: itemPath, parentIsReadOnly:
|
|
14
|
+
return (_jsx(Draggable, Object.assign({ draggableId: rowId, index: index }, { children: (draggableProvided, snapshot) => (_jsxs(StyledGroupTableRow, Object.assign({ itemIsDragged: snapshot.isDragging, itemIsSelected: itemIsSelected, hoverDisabled: hoverDisabled, hover: !hoverDisabled, ref: draggableProvided.innerRef }, draggableProvided.draggableProps, { children: [showMinimalView || !isRepeated ? (_jsx(TableCell, { padding: "checkbox" })) : (_jsxs(_Fragment, { children: [_jsx(TableCell, Object.assign({ padding: "none" }, { children: _jsx(Box, Object.assign({ display: "flex", alignItems: "center", justifyContent: "center" }, (readOnly ? {} : draggableProvided.dragHandleProps), { children: _jsx(DragIndicator, { fontSize: "small", sx: { color: readOnly ? 'text.disabled' : 'inherit' } }) })) })), _jsx(SelectRowButton, { isChecked: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(rowId) })] })), _jsx(GroupTableRowCells, { qItem: tableQItem, qrItem: answeredQrItem, qItemsIndexMap: qItemsIndexMap, itemPath: itemPath, parentIsReadOnly: readOnly, onQrItemChange: (newQrGroup) => onRowChange(newQrGroup, index) }), showMinimalView || !isRepeated ? (_jsx(TableCell, { padding: "checkbox" })) : (_jsx(RemoveRowButton, { nullableQrItem: nullableQrItem, numOfRows: tableRows.length, readOnly: readOnly, onRemoveItem: () => onRemoveRow(index) }))] }))) })));
|
|
15
15
|
}
|
|
16
|
-
return (_jsxs(TableRow, { children: [showMinimalView || !isRepeated ? (_jsx(TableCell, { padding: "checkbox" })) : (_jsxs(_Fragment, { children: [_jsx(TableCell, Object.assign({ padding: "none" }, { children: _jsx(Box, Object.assign({ display: "flex", alignItems: "center", justifyContent: "center" }, { children: _jsx(DragIndicator, { fontSize: "small", sx: { color: readOnly ? 'text.disabled' : 'inherit' } }) })) })), _jsx(SelectRowButton, { isChecked: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(rowId) })] })), _jsx(GroupTableRowCells, { qItem: tableQItem, qrItem: answeredQrItem, qItemsIndexMap: qItemsIndexMap, itemPath: itemPath, parentIsReadOnly:
|
|
16
|
+
return (_jsxs(TableRow, { children: [showMinimalView || !isRepeated ? (_jsx(TableCell, { padding: "checkbox" })) : (_jsxs(_Fragment, { children: [_jsx(TableCell, Object.assign({ padding: "none" }, { children: _jsx(Box, Object.assign({ display: "flex", alignItems: "center", justifyContent: "center" }, { children: _jsx(DragIndicator, { fontSize: "small", sx: { color: readOnly ? 'text.disabled' : 'inherit' } }) })) })), _jsx(SelectRowButton, { isChecked: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(rowId) })] })), _jsx(GroupTableRowCells, { qItem: tableQItem, qrItem: answeredQrItem, qItemsIndexMap: qItemsIndexMap, itemPath: itemPath, parentIsReadOnly: readOnly, onQrItemChange: (newQrGroup) => onRowChange(newQrGroup, index) }), showMinimalView || !isRepeated ? (_jsx(TableCell, { padding: "checkbox" })) : (_jsx(RemoveRowButton, { nullableQrItem: nullableQrItem, numOfRows: tableRows.length, readOnly: readOnly, onRemoveItem: () => onRemoveRow(index) }))] }));
|
|
17
17
|
}
|
|
18
18
|
export default GroupTableRow;
|
|
19
19
|
//# sourceMappingURL=GroupTableRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupTableRow.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableRow.tsx"],"names":[],"mappings":";AA0BA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAC9D,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA8BrD,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EACJ,KAAK,EACL,KAAK,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,cAAc,EACd,QAAQ,EACR,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"GroupTableRow.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableRow.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { questionnaireStore, useQuestionnaireStore, questionnaireResponseStore,
|
|
|
7
7
|
export type { UseResponsiveProps } from './hooks';
|
|
8
8
|
export { useHidden, useReadOnly, useBuildForm, useRendererQueryClient, useRenderingExtensions, useValidationFeedback, useValueSetCodings, useStringCalculatedExpression, useDisplayCqfAndCalculatedExpression, useCodingCalculatedExpression, objectIsCoding, useResponsive } from './hooks';
|
|
9
9
|
export type { ItemToRepopulate } from './utils';
|
|
10
|
-
export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, getQuestionnaireItem } from './utils';
|
|
10
|
+
export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, getQuestionnaireItem, getSectionHeading } from './utils';
|
|
11
11
|
export { RendererThemeProvider, themeOptions } from './theme';
|
|
12
12
|
export type { InitialiseFormWrapperProps } from './stories/storybookWrappers';
|
|
13
13
|
export { InitialiseFormWrapperForStorybook } from './stories/storybookWrappers';
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import '@fontsource/inter';
|
|
|
3
3
|
export { SmartFormsRenderer, BaseRenderer, SingleItem, GroupItem, RepeatItem, RepeatGroup, GroupTable, GridGroup, parseFhirDateToDisplayDate, ItemFieldGrid, ItemLabel, BooleanField, DecimalField, StringField, ChoiceRadioSingle, FullWidthFormComponentBox } from './components';
|
|
4
4
|
export { questionnaireStore, useQuestionnaireStore, questionnaireResponseStore, useQuestionnaireResponseStore, smartConfigStore, useSmartConfigStore, terminologyServerStore, useTerminologyServerStore, rendererStylingStore, useRendererStylingStore } from './stores';
|
|
5
5
|
export { useHidden, useReadOnly, useBuildForm, useRendererQueryClient, useRenderingExtensions, useValidationFeedback, useValueSetCodings, useStringCalculatedExpression, useDisplayCqfAndCalculatedExpression, useCodingCalculatedExpression, objectIsCoding, useResponsive } from './hooks';
|
|
6
|
-
export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, getQuestionnaireItem } from './utils';
|
|
6
|
+
export { buildForm, destroyForm, getResponse, removeEmptyAnswersFromResponse, removeInternalIdsFromResponse, createEmptyQrItem, createEmptyQrGroup, updateQrItemsInGroup, mapQItemsIndex, getQrItemsIndex, isSpecificItemControl, getDecimalPrecision, isRepeatItemAndNotCheckbox, parseDecimalStringToFloat, parseDecimalStringWithPrecision, isHiddenByEnableWhen, initialiseQuestionnaireResponse, generateItemsToRepopulate, repopulateResponse, extractObservationBased, getQuestionnaireItem, getSectionHeading } from './utils';
|
|
7
7
|
// theme provider exports
|
|
8
8
|
export { RendererThemeProvider, themeOptions } from './theme';
|
|
9
9
|
export { InitialiseFormWrapperForStorybook } from './stories/storybookWrappers';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,mBAAmB,CAAC;AAgB3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAWtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,mBAAmB,CAAC;AAgB3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,cAAc,CAAC;AAWtB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI9D,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { QuestionnaireResponse } from 'fhir/r4';
|
|
2
|
+
export interface ExtractOperationStoreType {
|
|
3
|
+
extractionResult: QuestionnaireResponse | null;
|
|
4
|
+
extractionError: string | null;
|
|
5
|
+
debugInfo: any | null;
|
|
6
|
+
isExtractionStarted: boolean;
|
|
7
|
+
setExtractionResult: (result: QuestionnaireResponse | null) => void;
|
|
8
|
+
setExtractionError: (error: string | null) => void;
|
|
9
|
+
setDebugInfo: (info: any | null) => void;
|
|
10
|
+
startExtraction: () => void;
|
|
11
|
+
clearExtraction: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const extractOperationStore: import("zustand/vanilla").StoreApi<ExtractOperationStoreType>;
|
|
14
|
+
export declare const useExtractOperationStore: import("zustand/vanilla").StoreApi<ExtractOperationStoreType> & {
|
|
15
|
+
use: {
|
|
16
|
+
extractionResult: () => QuestionnaireResponse | null;
|
|
17
|
+
extractionError: () => string | null;
|
|
18
|
+
debugInfo: () => any;
|
|
19
|
+
isExtractionStarted: () => boolean;
|
|
20
|
+
setExtractionResult: () => (result: QuestionnaireResponse | null) => void;
|
|
21
|
+
setExtractionError: () => (error: string | null) => void;
|
|
22
|
+
setDebugInfo: () => (info: any | null) => void;
|
|
23
|
+
startExtraction: () => () => void;
|
|
24
|
+
clearExtraction: () => () => void;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createStore } from 'zustand/vanilla';
|
|
2
|
+
import { createSelectors } from './selector';
|
|
3
|
+
export const extractOperationStore = createStore()((set) => ({
|
|
4
|
+
extractionResult: null,
|
|
5
|
+
extractionError: null,
|
|
6
|
+
debugInfo: null,
|
|
7
|
+
isExtractionStarted: false,
|
|
8
|
+
setExtractionResult: (result) => set({ extractionResult: result, extractionError: null }),
|
|
9
|
+
setExtractionError: (error) => set({ extractionError: error, extractionResult: null }),
|
|
10
|
+
setDebugInfo: (info) => set({ debugInfo: info }),
|
|
11
|
+
startExtraction: () => set({ isExtractionStarted: true }),
|
|
12
|
+
clearExtraction: () => set({
|
|
13
|
+
extractionResult: null,
|
|
14
|
+
extractionError: null,
|
|
15
|
+
debugInfo: null,
|
|
16
|
+
isExtractionStarted: false
|
|
17
|
+
})
|
|
18
|
+
}));
|
|
19
|
+
export const useExtractOperationStore = createSelectors(extractOperationStore);
|
|
20
|
+
//# sourceMappingURL=extractOperationStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractOperationStore.js","sourceRoot":"","sources":["../../src/stores/extractOperationStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAc7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,EAA6B,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtF,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACzF,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACtF,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAChD,eAAe,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACzD,eAAe,EAAE,GAAG,EAAE,CACpB,GAAG,CAAC;QACF,gBAAgB,EAAE,IAAI;QACtB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,mBAAmB,EAAE,KAAK;KAC3B,CAAC;CACL,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC"}
|
package/lib/stores/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
export * from './questionnaireStore';
|
|
2
|
+
export * from './questionnaireResponseStore';
|
|
3
|
+
export * from './smartConfigStore';
|
|
4
|
+
export * from './terminologyServerStore';
|
|
5
|
+
export * from './rendererStylingStore';
|
|
1
6
|
export type { QuestionnaireStoreType } from './questionnaireStore';
|
|
2
|
-
export { questionnaireStore, useQuestionnaireStore } from './questionnaireStore';
|
|
3
7
|
export type { QuestionnaireResponseStoreType } from './questionnaireResponseStore';
|
|
4
|
-
export { questionnaireResponseStore, useQuestionnaireResponseStore } from './questionnaireResponseStore';
|
|
5
8
|
export type { SmartConfigStoreType } from './smartConfigStore';
|
|
6
|
-
export { smartConfigStore, useSmartConfigStore } from './smartConfigStore';
|
|
7
9
|
export type { TerminologyServerStoreType } from './terminologyServerStore';
|
|
8
|
-
export { terminologyServerStore, useTerminologyServerStore } from './terminologyServerStore';
|
|
9
10
|
export type { RendererStyling, RendererStylingStoreType } from './rendererStylingStore';
|
|
11
|
+
export { smartConfigStore, useSmartConfigStore } from './smartConfigStore';
|
|
12
|
+
export { terminologyServerStore, useTerminologyServerStore } from './terminologyServerStore';
|
|
10
13
|
export { rendererStylingStore, useRendererStylingStore } from './rendererStylingStore';
|
package/lib/stores/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export * from './questionnaireStore';
|
|
2
|
+
export * from './questionnaireResponseStore';
|
|
3
|
+
export * from './smartConfigStore';
|
|
4
|
+
export * from './terminologyServerStore';
|
|
5
|
+
export * from './rendererStylingStore';
|
|
3
6
|
export { smartConfigStore, useSmartConfigStore } from './smartConfigStore';
|
|
4
7
|
export { terminologyServerStore, useTerminologyServerStore } from './terminologyServerStore';
|
|
5
8
|
export { rendererStylingStore, useRendererStylingStore } from './rendererStylingStore';
|
package/lib/stores/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AAYvC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -135,7 +135,7 @@ export declare const useRendererStylingStore: import("zustand/vanilla").StoreApi
|
|
|
135
135
|
reverseBooleanYesNo: () => boolean;
|
|
136
136
|
hideClearButton: () => boolean;
|
|
137
137
|
hideQuantityComparatorField: () => boolean;
|
|
138
|
-
enableWhenAsReadOnly: () => boolean | Set<"string" | "boolean" | "
|
|
138
|
+
enableWhenAsReadOnly: () => boolean | Set<"string" | "boolean" | "group" | "display" | "question" | "decimal" | "integer" | "date" | "dateTime" | "time" | "text" | "url" | "choice" | "open-choice" | "attachment" | "reference" | "quantity">;
|
|
139
139
|
disablePageCardView: () => boolean;
|
|
140
140
|
disablePageButtons: () => boolean;
|
|
141
141
|
disableTabButtons: () => boolean;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Observation } from 'fhir/r4';
|
|
2
|
+
export interface BloodPressureTemplate {
|
|
3
|
+
systolic: {
|
|
4
|
+
code: {
|
|
5
|
+
system: string;
|
|
6
|
+
code: string;
|
|
7
|
+
display: string;
|
|
8
|
+
};
|
|
9
|
+
unit: string;
|
|
10
|
+
system: string;
|
|
11
|
+
};
|
|
12
|
+
diastolic: {
|
|
13
|
+
code: {
|
|
14
|
+
system: string;
|
|
15
|
+
code: string;
|
|
16
|
+
display: string;
|
|
17
|
+
};
|
|
18
|
+
unit: string;
|
|
19
|
+
system: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare const bloodPressureTemplate: BloodPressureTemplate;
|
|
23
|
+
export declare function createBloodPressureObservations(systolicValue: number, diastolicValue: number, subjectReference: string): Observation[];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const bloodPressureTemplate = {
|
|
2
|
+
systolic: {
|
|
3
|
+
code: {
|
|
4
|
+
system: 'http://loinc.org',
|
|
5
|
+
code: '8480-6',
|
|
6
|
+
display: 'Systolic blood pressure'
|
|
7
|
+
},
|
|
8
|
+
unit: 'mmHg',
|
|
9
|
+
system: 'http://unitsofmeasure.org'
|
|
10
|
+
},
|
|
11
|
+
diastolic: {
|
|
12
|
+
code: {
|
|
13
|
+
system: 'http://loinc.org',
|
|
14
|
+
code: '8462-4',
|
|
15
|
+
display: 'Diastolic blood pressure'
|
|
16
|
+
},
|
|
17
|
+
unit: 'mmHg',
|
|
18
|
+
system: 'http://unitsofmeasure.org'
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export function createBloodPressureObservations(systolicValue, diastolicValue, subjectReference) {
|
|
22
|
+
const systolicObservation = {
|
|
23
|
+
resourceType: 'Observation',
|
|
24
|
+
status: 'final',
|
|
25
|
+
category: [
|
|
26
|
+
{
|
|
27
|
+
coding: [
|
|
28
|
+
{
|
|
29
|
+
system: 'http://terminology.hl7.org/CodeSystem/observation-category',
|
|
30
|
+
code: 'vital-signs',
|
|
31
|
+
display: 'Vital Signs'
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
code: {
|
|
37
|
+
coding: [bloodPressureTemplate.systolic.code]
|
|
38
|
+
},
|
|
39
|
+
subject: {
|
|
40
|
+
reference: subjectReference
|
|
41
|
+
},
|
|
42
|
+
valueQuantity: {
|
|
43
|
+
value: systolicValue,
|
|
44
|
+
unit: bloodPressureTemplate.systolic.unit,
|
|
45
|
+
system: bloodPressureTemplate.systolic.system,
|
|
46
|
+
code: 'mm[Hg]'
|
|
47
|
+
},
|
|
48
|
+
effectiveDateTime: new Date().toISOString()
|
|
49
|
+
};
|
|
50
|
+
const diastolicObservation = {
|
|
51
|
+
resourceType: 'Observation',
|
|
52
|
+
status: 'final',
|
|
53
|
+
category: [
|
|
54
|
+
{
|
|
55
|
+
coding: [
|
|
56
|
+
{
|
|
57
|
+
system: 'http://terminology.hl7.org/CodeSystem/observation-category',
|
|
58
|
+
code: 'vital-signs',
|
|
59
|
+
display: 'Vital Signs'
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
code: {
|
|
65
|
+
coding: [bloodPressureTemplate.diastolic.code]
|
|
66
|
+
},
|
|
67
|
+
subject: {
|
|
68
|
+
reference: subjectReference
|
|
69
|
+
},
|
|
70
|
+
valueQuantity: {
|
|
71
|
+
value: diastolicValue,
|
|
72
|
+
unit: bloodPressureTemplate.diastolic.unit,
|
|
73
|
+
system: bloodPressureTemplate.diastolic.system,
|
|
74
|
+
code: 'mm[Hg]'
|
|
75
|
+
},
|
|
76
|
+
effectiveDateTime: new Date().toISOString()
|
|
77
|
+
};
|
|
78
|
+
return [systolicObservation, diastolicObservation];
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=bloodPressureTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bloodPressureTemplate.js","sourceRoot":"","sources":["../../src/templates/bloodPressureTemplate.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,yBAAyB;SACnC;QACD,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,2BAA2B;KACpC;IACD,SAAS,EAAE;QACT,IAAI,EAAE;YACJ,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,0BAA0B;SACpC;QACD,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,2BAA2B;KACpC;CACF,CAAC;AAEF,MAAM,UAAU,+BAA+B,CAC7C,aAAqB,EACrB,cAAsB,EACtB,gBAAwB;IAExB,MAAM,mBAAmB,GAAgB;QACvC,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE;YACR;gBACE,MAAM,EAAE;oBACN;wBACE,MAAM,EAAE,4DAA4D;wBACpE,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,aAAa;qBACvB;iBACF;aACF;SACF;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC;SAC9C;QACD,OAAO,EAAE;YACP,SAAS,EAAE,gBAAgB;SAC5B;QACD,aAAa,EAAE;YACb,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC,IAAI;YACzC,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,MAAM;YAC7C,IAAI,EAAE,QAAQ;SACf;QACD,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC5C,CAAC;IAEF,MAAM,oBAAoB,GAAgB;QACxC,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE;YACR;gBACE,MAAM,EAAE;oBACN;wBACE,MAAM,EAAE,4DAA4D;wBACpE,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,aAAa;qBACvB;iBACF;aACF;SACF;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC;SAC/C;QACD,OAAO,EAAE;YACP,SAAS,EAAE,gBAAgB;SAC5B;QACD,aAAa,EAAE;YACb,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,IAAI;YAC1C,MAAM,EAAE,qBAAqB,CAAC,SAAS,CAAC,MAAM;YAC9C,IAAI,EAAE,QAAQ;SACf;QACD,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC5C,CAAC;IAEF,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
export const bloodPressureQuestionnaire = {
|
|
2
|
+
resourceType: 'Questionnaire',
|
|
3
|
+
id: 'blood-pressure-questionnaire',
|
|
4
|
+
identifier: [
|
|
5
|
+
{
|
|
6
|
+
system: 'http://example.org/questionnaire-identifier',
|
|
7
|
+
value: 'blood-pressure-questionnaire'
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
status: 'active',
|
|
11
|
+
title: 'Blood Pressure Measurement',
|
|
12
|
+
extension: [
|
|
13
|
+
{
|
|
14
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtract',
|
|
15
|
+
valueBoolean: true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-launchContext',
|
|
19
|
+
extension: [
|
|
20
|
+
{
|
|
21
|
+
url: 'name',
|
|
22
|
+
valueCoding: {
|
|
23
|
+
system: 'http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext',
|
|
24
|
+
code: 'patient'
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
url: 'type',
|
|
29
|
+
valueCode: 'Patient'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
url: 'description',
|
|
33
|
+
valueString: 'The patient that is to be used to pre-populate the form'
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
contained: [
|
|
39
|
+
{
|
|
40
|
+
resourceType: 'Observation',
|
|
41
|
+
id: 'systolic-bp-template',
|
|
42
|
+
status: 'final',
|
|
43
|
+
category: [
|
|
44
|
+
{
|
|
45
|
+
coding: [
|
|
46
|
+
{
|
|
47
|
+
system: 'http://terminology.hl7.org/CodeSystem/observation-category',
|
|
48
|
+
code: 'vital-signs'
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
code: {
|
|
54
|
+
coding: [
|
|
55
|
+
{
|
|
56
|
+
system: 'http://loinc.org',
|
|
57
|
+
code: '8480-6',
|
|
58
|
+
display: 'Systolic blood pressure'
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
subject: {
|
|
63
|
+
extension: [
|
|
64
|
+
{
|
|
65
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtractValue',
|
|
66
|
+
valueString: '%QuestionnaireResponse.subject'
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
effectiveDateTime: '1900-01-01',
|
|
71
|
+
_effectiveDateTime: {
|
|
72
|
+
extension: [
|
|
73
|
+
{
|
|
74
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtractValue',
|
|
75
|
+
valueString: 'now()'
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
valueQuantity: {
|
|
80
|
+
extension: [
|
|
81
|
+
{
|
|
82
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtractValue',
|
|
83
|
+
valueString: "item.where(linkId = 'systolic').answer.valueQuantity.value"
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
unit: 'mmHg',
|
|
87
|
+
system: 'http://unitsofmeasure.org',
|
|
88
|
+
code: 'mm[Hg]'
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
resourceType: 'Observation',
|
|
93
|
+
id: 'diastolic-bp-template',
|
|
94
|
+
status: 'final',
|
|
95
|
+
category: [
|
|
96
|
+
{
|
|
97
|
+
coding: [
|
|
98
|
+
{
|
|
99
|
+
system: 'http://terminology.hl7.org/CodeSystem/observation-category',
|
|
100
|
+
code: 'vital-signs'
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
code: {
|
|
106
|
+
coding: [
|
|
107
|
+
{
|
|
108
|
+
system: 'http://loinc.org',
|
|
109
|
+
code: '8462-4',
|
|
110
|
+
display: 'Diastolic blood pressure'
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
subject: {
|
|
115
|
+
extension: [
|
|
116
|
+
{
|
|
117
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtractValue',
|
|
118
|
+
valueString: '%QuestionnaireResponse.subject'
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
effectiveDateTime: '1900-01-01',
|
|
123
|
+
_effectiveDateTime: {
|
|
124
|
+
extension: [
|
|
125
|
+
{
|
|
126
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtractValue',
|
|
127
|
+
valueString: 'now()'
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
valueQuantity: {
|
|
132
|
+
extension: [
|
|
133
|
+
{
|
|
134
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtractValue',
|
|
135
|
+
valueString: "item.where(linkId = 'diastolic').answer.valueQuantity.value"
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
unit: 'mmHg',
|
|
139
|
+
system: 'http://unitsofmeasure.org',
|
|
140
|
+
code: 'mm[Hg]'
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
item: [
|
|
145
|
+
{
|
|
146
|
+
linkId: 'systolic',
|
|
147
|
+
text: 'Systolic Blood Pressure',
|
|
148
|
+
type: 'quantity',
|
|
149
|
+
required: true,
|
|
150
|
+
code: [
|
|
151
|
+
{
|
|
152
|
+
system: 'http://loinc.org',
|
|
153
|
+
code: '8480-6',
|
|
154
|
+
display: 'Systolic blood pressure'
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
extension: [
|
|
158
|
+
{
|
|
159
|
+
url: 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit',
|
|
160
|
+
valueCoding: {
|
|
161
|
+
system: 'http://unitsofmeasure.org',
|
|
162
|
+
code: 'mm[Hg]',
|
|
163
|
+
display: 'mmHg'
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtract',
|
|
168
|
+
extension: [
|
|
169
|
+
{
|
|
170
|
+
url: 'template',
|
|
171
|
+
valueReference: {
|
|
172
|
+
reference: '#systolic-bp-template'
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
linkId: 'diastolic',
|
|
181
|
+
text: 'Diastolic Blood Pressure',
|
|
182
|
+
type: 'quantity',
|
|
183
|
+
required: true,
|
|
184
|
+
code: [
|
|
185
|
+
{
|
|
186
|
+
system: 'http://loinc.org',
|
|
187
|
+
code: '8462-4',
|
|
188
|
+
display: 'Diastolic blood pressure'
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
extension: [
|
|
192
|
+
{
|
|
193
|
+
url: 'http://hl7.org/fhir/StructureDefinition/questionnaire-unit',
|
|
194
|
+
valueCoding: {
|
|
195
|
+
system: 'http://unitsofmeasure.org',
|
|
196
|
+
code: 'mm[Hg]',
|
|
197
|
+
display: 'mmHg'
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
url: 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-templateExtract',
|
|
202
|
+
extension: [
|
|
203
|
+
{
|
|
204
|
+
url: 'template',
|
|
205
|
+
valueReference: {
|
|
206
|
+
reference: '#diastolic-bp-template'
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
]
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
};
|
|
215
|
+
export const bloodPressureResponse = {
|
|
216
|
+
resourceType: 'QuestionnaireResponse',
|
|
217
|
+
status: 'completed',
|
|
218
|
+
subject: {
|
|
219
|
+
reference: 'Patient/123'
|
|
220
|
+
},
|
|
221
|
+
item: [
|
|
222
|
+
{
|
|
223
|
+
linkId: 'systolic',
|
|
224
|
+
answer: [
|
|
225
|
+
{
|
|
226
|
+
valueQuantity: {
|
|
227
|
+
value: 120,
|
|
228
|
+
unit: 'mmHg',
|
|
229
|
+
system: 'http://unitsofmeasure.org',
|
|
230
|
+
code: 'mm[Hg]'
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
linkId: 'diastolic',
|
|
237
|
+
answer: [
|
|
238
|
+
{
|
|
239
|
+
valueQuantity: {
|
|
240
|
+
value: 80,
|
|
241
|
+
unit: 'mmHg',
|
|
242
|
+
system: 'http://unitsofmeasure.org',
|
|
243
|
+
code: 'mm[Hg]'
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
]
|
|
247
|
+
}
|
|
248
|
+
]
|
|
249
|
+
};
|
|
250
|
+
//# sourceMappingURL=bloodPressureSample.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bloodPressureSample.js","sourceRoot":"","sources":["../../../src/tests/test-data/bloodPressureSample.ts"],"names":[],"mappings":"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"}
|