@openmrs/esm-patient-tests-app 11.3.1-patch.9310 → 11.3.1-patch.9508
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/.turbo/turbo-build.log +19 -22
- package/dist/1119.js +1 -1
- package/dist/1197.js +1 -1
- package/dist/{6231.js → 1477.js} +1 -1
- package/dist/1477.js.map +1 -0
- package/dist/1638.js +1 -1
- package/dist/1638.js.map +1 -1
- package/dist/1935.js +1 -0
- package/dist/1935.js.map +1 -0
- package/dist/2146.js +1 -1
- package/dist/2690.js +1 -1
- package/dist/3099.js +1 -1
- package/dist/34.js +1 -0
- package/dist/34.js.map +1 -0
- package/dist/3509.js +1 -1
- package/dist/3509.js.map +1 -1
- package/dist/3584.js +1 -1
- package/dist/4055.js +1 -1
- package/dist/4132.js +1 -1
- package/dist/4300.js +1 -1
- package/dist/4335.js +1 -1
- package/dist/439.js +1 -0
- package/dist/4618.js +1 -1
- package/dist/4652.js +1 -1
- package/dist/4944.js +1 -1
- package/dist/5173.js +1 -1
- package/dist/5241.js +1 -1
- package/dist/5442.js +1 -1
- package/dist/5661.js +1 -1
- package/dist/5670.js +1 -1
- package/dist/6022.js +1 -1
- package/dist/6113.js +1 -0
- package/dist/6113.js.map +1 -0
- package/dist/6301.js +1 -1
- package/dist/6301.js.map +1 -1
- package/dist/6468.js +1 -1
- package/dist/6589.js +1 -0
- package/dist/6679.js +1 -1
- package/dist/6840.js +1 -1
- package/dist/6859.js +1 -1
- package/dist/7097.js +1 -1
- package/dist/7159.js +1 -1
- package/dist/7202.js +1 -0
- package/dist/7202.js.map +1 -0
- package/dist/723.js +1 -1
- package/dist/7617.js +1 -1
- package/dist/790.js +1 -1
- package/dist/790.js.map +1 -1
- package/dist/795.js +1 -1
- package/dist/8163.js +1 -1
- package/dist/8349.js +1 -1
- package/dist/8371.js +1 -0
- package/dist/8555.js +2 -0
- package/dist/8555.js.map +1 -0
- package/dist/8618.js +1 -1
- package/dist/890.js +1 -1
- package/dist/9214.js +1 -1
- package/dist/9538.js +1 -1
- package/dist/9569.js +1 -1
- package/dist/986.js +1 -1
- package/dist/9879.js +1 -1
- package/dist/9895.js +1 -1
- package/dist/9900.js +1 -1
- package/dist/9913.js +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-patient-tests-app.js +1 -1
- package/dist/openmrs-esm-patient-tests-app.js.buildmanifest.json +302 -211
- package/dist/openmrs-esm-patient-tests-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +2 -2
- package/src/edit-test-results/modal/edit-lab-results.modal.tsx +2 -2
- package/src/index.ts +1 -1
- package/src/routes.json +4 -3
- package/src/test-orders/add-test-order/add-test-order.test.tsx +44 -21
- package/src/test-orders/add-test-order/add-test-order.workspace.tsx +152 -21
- package/src/test-orders/add-test-order/test-order-form.component.tsx +60 -68
- package/src/test-orders/add-test-order/test-order.ts +3 -3
- package/src/test-orders/add-test-order/test-type-search.component.tsx +60 -28
- package/src/test-orders/api.ts +2 -6
- package/src/test-orders/lab-order-basket-panel/lab-icon.component.tsx +27 -0
- package/src/test-orders/lab-order-basket-panel/lab-order-basket-item-tile.component.tsx +1 -1
- package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.extension.tsx +95 -30
- package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.scss +26 -11
- package/src/test-orders/lab-order-basket-panel/lab-order-basket-panel.test.tsx +12 -10
- package/src/test-results/filter/filter-context.test.tsx +556 -0
- package/src/test-results/filter/filter-context.tsx +1 -1
- package/src/test-results/filter/filter-reducer.test.ts +540 -0
- package/src/test-results/filter/filter-reducer.ts +1 -1
- package/src/test-results/filter/filter-set.component.tsx +75 -48
- package/src/test-results/filter/filter-set.test.tsx +694 -0
- package/src/test-results/filter/filter-types.ts +5 -1
- package/src/test-results/grouped-timeline/grid.component.tsx +4 -2
- package/src/test-results/grouped-timeline/grouped-timeline.component.tsx +20 -22
- package/src/test-results/grouped-timeline/grouped-timeline.test.tsx +3 -2
- package/src/test-results/grouped-timeline/reference-range-helpers.test.ts +37 -1
- package/src/test-results/grouped-timeline/reference-range-helpers.ts +50 -1
- package/src/test-results/grouped-timeline/timeline-data-group.component.tsx +4 -4
- package/src/test-results/grouped-timeline/useObstreeData.test.ts +471 -0
- package/src/test-results/grouped-timeline/useObstreeData.ts +37 -4
- package/src/test-results/individual-results-table/individual-results-table.component.tsx +2 -7
- package/src/test-results/individual-results-table-tablet/individual-results-table-tablet.component.tsx +3 -3
- package/src/test-results/individual-results-table-tablet/lab-set-panel.component.tsx +2 -5
- package/src/test-results/individual-results-table-tablet/usePanelData.tsx +40 -26
- package/src/test-results/loadPatientTestData/helpers.ts +29 -12
- package/src/test-results/loadPatientTestData/usePatientResultsData.ts +18 -7
- package/src/test-results/overview/external-overview.extension.tsx +1 -2
- package/src/test-results/print-modal/print-modal.extension.tsx +1 -1
- package/src/test-results/results-viewer/results-viewer.extension.tsx +8 -4
- package/src/test-results/tree-view/tree-view.component.tsx +18 -5
- package/src/test-results/tree-view/tree-view.test.tsx +119 -2
- package/src/test-results/trendline/trendline.component.tsx +88 -52
- package/src/test-results/ui-elements/{resetFiltersEmptyState → reset-filters-empty-state}/filter-empty-data-illustration.tsx +2 -2
- package/src/test-results/ui-elements/{resetFiltersEmptyState → reset-filters-empty-state}/filter-empty-state.component.tsx +5 -6
- package/src/types.ts +9 -0
- package/translations/am.json +3 -4
- package/translations/ar.json +3 -4
- package/translations/ar_SY.json +3 -4
- package/translations/bn.json +3 -4
- package/translations/cs.json +119 -0
- package/translations/de.json +3 -4
- package/translations/en.json +3 -4
- package/translations/en_US.json +3 -4
- package/translations/es.json +3 -4
- package/translations/es_MX.json +3 -4
- package/translations/fr.json +3 -4
- package/translations/he.json +3 -4
- package/translations/hi.json +3 -4
- package/translations/hi_IN.json +3 -4
- package/translations/id.json +3 -4
- package/translations/it.json +3 -4
- package/translations/ka.json +3 -4
- package/translations/km.json +3 -4
- package/translations/ku.json +3 -4
- package/translations/ky.json +3 -4
- package/translations/lg.json +3 -4
- package/translations/ne.json +3 -4
- package/translations/pl.json +3 -4
- package/translations/pt.json +3 -4
- package/translations/pt_BR.json +3 -4
- package/translations/qu.json +3 -4
- package/translations/ro_RO.json +3 -4
- package/translations/ru_RU.json +3 -4
- package/translations/si.json +3 -4
- package/translations/sq.json +119 -0
- package/translations/sw.json +3 -4
- package/translations/sw_KE.json +3 -4
- package/translations/tr.json +3 -4
- package/translations/tr_TR.json +3 -4
- package/translations/uk.json +3 -4
- package/translations/uz.json +3 -4
- package/translations/uz@Latn.json +3 -4
- package/translations/uz_UZ.json +3 -4
- package/translations/vi.json +3 -4
- package/translations/zh.json +3 -4
- package/translations/zh_CN.json +3 -4
- package/translations/zh_TW.json +119 -0
- package/dist/1479.js +0 -1
- package/dist/1479.js.map +0 -1
- package/dist/5348.js +0 -1
- package/dist/5348.js.map +0 -1
- package/dist/6231.js.map +0 -1
- package/dist/9540.js +0 -2
- package/dist/9540.js.map +0 -1
- package/dist/9838.js +0 -1
- package/dist/9838.js.map +0 -1
- package/src/test-orders/add-test-order/add-test-order.component.tsx +0 -125
- package/src/test-orders/add-test-order/exported-add-test-order.workspace.tsx +0 -30
- /package/dist/{9540.js.LICENSE.txt → 8555.js.LICENSE.txt} +0 -0
- /package/src/test-results/ui-elements/{resetFiltersEmptyState/index.scss → reset-filters-empty-state/filter-empty-state.scss} +0 -0
|
@@ -2,25 +2,38 @@ import React, { type ComponentProps, useCallback, useEffect, useMemo, useState }
|
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { Button, Tile } from '@carbon/react';
|
|
5
|
-
import { AddIcon, ChevronDownIcon, ChevronUpIcon, useLayoutType, useConfig, MaybeIcon } from '@openmrs/esm-framework';
|
|
6
5
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
AddIcon,
|
|
7
|
+
closeWorkspace,
|
|
8
|
+
ChevronDownIcon,
|
|
9
|
+
ChevronUpIcon,
|
|
10
|
+
useLayoutType,
|
|
11
|
+
useConfig,
|
|
12
|
+
MaybeIcon,
|
|
13
|
+
launchWorkspace,
|
|
14
|
+
useWorkspaces,
|
|
15
|
+
type Visit,
|
|
16
|
+
} from '@openmrs/esm-framework';
|
|
17
|
+
import { type OrderBasketItem, useOrderBasket, useOrderType } from '@openmrs/esm-patient-common-lib';
|
|
12
18
|
import type { ConfigObject } from '../../config-schema';
|
|
19
|
+
import type { TestOrderBasketItem } from '../../types';
|
|
13
20
|
import { LabOrderBasketItemTile } from './lab-order-basket-item-tile.component';
|
|
14
21
|
import { prepTestOrderPostData } from '../api';
|
|
22
|
+
import LabIcon from './lab-icon.component';
|
|
15
23
|
import styles from './lab-order-basket-panel.scss';
|
|
16
24
|
|
|
25
|
+
interface OrderBasketSlotProps {
|
|
26
|
+
patientUuid: string;
|
|
27
|
+
patient: fhir.Patient;
|
|
28
|
+
visitContext: Visit;
|
|
29
|
+
mutateVisitContext: () => void;
|
|
30
|
+
}
|
|
31
|
+
|
|
17
32
|
/**
|
|
18
|
-
* The extension is slotted into order-basket-slot in the main Order Basket workspace by default.
|
|
19
|
-
* It renders the "Add +" button for lab orders, and lists pending lab orders in the order basket.
|
|
20
|
-
*
|
|
21
33
|
* Designs: https://app.zeplin.io/project/60d59321e8100b0324762e05/screen/648c44d9d4052c613e7f23da
|
|
34
|
+
* Slotted into order-basket-slot by default
|
|
22
35
|
*/
|
|
23
|
-
|
|
36
|
+
const LabOrderBasketPanelExtension: React.FC<OrderBasketSlotProps> = ({ patient }) => {
|
|
24
37
|
const { orders, additionalTestOrderTypes } = useConfig<ConfigObject>();
|
|
25
38
|
const { t } = useTranslation();
|
|
26
39
|
const allOrderTypes: ConfigObject['additionalTestOrderTypes'] = [
|
|
@@ -36,29 +49,35 @@ export function LabOrderBasketPanelExtension({ patient, launchLabOrderForm }: Or
|
|
|
36
49
|
return (
|
|
37
50
|
<>
|
|
38
51
|
{allOrderTypes.map((orderTypeConfig) => (
|
|
39
|
-
<LabOrderBasketPanel
|
|
40
|
-
key={orderTypeConfig.orderTypeUuid}
|
|
41
|
-
patient={patient}
|
|
42
|
-
{...orderTypeConfig}
|
|
43
|
-
launchLabOrderForm={launchLabOrderForm}
|
|
44
|
-
/>
|
|
52
|
+
<LabOrderBasketPanel patient={patient} key={orderTypeConfig.orderTypeUuid} {...orderTypeConfig} />
|
|
45
53
|
))}
|
|
46
54
|
</>
|
|
47
55
|
);
|
|
48
|
-
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const WORKSPACES = {
|
|
59
|
+
TEST_RESULTS_FORM: 'test-results-form-workspace',
|
|
60
|
+
ORDER_BASKET: 'order-basket',
|
|
61
|
+
};
|
|
49
62
|
|
|
50
63
|
type OrderTypeConfig = ConfigObject['additionalTestOrderTypes'][0];
|
|
51
64
|
|
|
52
65
|
interface LabOrderBasketPanelProps extends OrderTypeConfig {
|
|
53
66
|
patient: fhir.Patient;
|
|
54
|
-
launchLabOrderForm(orderTypeUuid: string, order?: TestOrderBasketItem): void;
|
|
55
67
|
}
|
|
56
68
|
|
|
57
|
-
function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient
|
|
69
|
+
function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient }: LabOrderBasketPanelProps) {
|
|
58
70
|
const { t } = useTranslation();
|
|
71
|
+
type WorkSpaceType = (typeof WORKSPACES)[keyof typeof WORKSPACES];
|
|
59
72
|
const isTablet = useLayoutType() === 'tablet';
|
|
73
|
+
const responsiveSize = isTablet ? 'md' : 'sm';
|
|
74
|
+
const isDefaultLabOrder = icon === 'omrs-icon-lab-order';
|
|
60
75
|
const { orderType, isLoadingOrderType } = useOrderType(orderTypeUuid);
|
|
61
|
-
|
|
76
|
+
const { workspaces = [{ name: WORKSPACES.ORDER_BASKET, additionalProps: {} }] } = useWorkspaces();
|
|
77
|
+
const [prevWorkSpace, setPrevWorkSpace] = useState(workspaces[0]?.name);
|
|
78
|
+
const [prevOrder, setPrevOrder] = useState(
|
|
79
|
+
workspaces[0]?.name === WORKSPACES.TEST_RESULTS_FORM ? workspaces[0].additionalProps['order'] : null,
|
|
80
|
+
);
|
|
62
81
|
const { orders, setOrders } = useOrderBasket<TestOrderBasketItem>(patient, orderTypeUuid, prepTestOrderPostData);
|
|
63
82
|
const [isExpanded, setIsExpanded] = useState(orders.length > 0);
|
|
64
83
|
const {
|
|
@@ -96,6 +115,41 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
96
115
|
discontinuedOrderBasketItems,
|
|
97
116
|
};
|
|
98
117
|
}, [orders]);
|
|
118
|
+
const isWorkSpaceType = useCallback((value: string): value is WorkSpaceType => {
|
|
119
|
+
return Object.values(WORKSPACES).includes(value as WorkSpaceType);
|
|
120
|
+
}, []);
|
|
121
|
+
|
|
122
|
+
const openNewLabForm = useCallback(() => {
|
|
123
|
+
closeWorkspace(isWorkSpaceType(prevWorkSpace) ? prevWorkSpace : WORKSPACES.ORDER_BASKET, {
|
|
124
|
+
ignoreChanges: true,
|
|
125
|
+
onWorkspaceClose: () =>
|
|
126
|
+
launchWorkspace('add-lab-order', {
|
|
127
|
+
orderTypeUuid: orderTypeUuid,
|
|
128
|
+
prevWorkSpace: prevWorkSpace,
|
|
129
|
+
isWorkSpaceType: isWorkSpaceType,
|
|
130
|
+
prevOrder: prevOrder,
|
|
131
|
+
}),
|
|
132
|
+
closeWorkspaceGroup: false,
|
|
133
|
+
});
|
|
134
|
+
}, [orderTypeUuid, isWorkSpaceType, prevOrder, prevWorkSpace]);
|
|
135
|
+
|
|
136
|
+
const openEditLabForm = useCallback(
|
|
137
|
+
(order: OrderBasketItem) => {
|
|
138
|
+
closeWorkspace(isWorkSpaceType(prevWorkSpace) ? prevWorkSpace : WORKSPACES.ORDER_BASKET, {
|
|
139
|
+
ignoreChanges: true,
|
|
140
|
+
onWorkspaceClose: () =>
|
|
141
|
+
launchWorkspace('add-lab-order', {
|
|
142
|
+
order,
|
|
143
|
+
orderTypeUuid: orderTypeUuid,
|
|
144
|
+
prevWorkSpace: prevWorkSpace,
|
|
145
|
+
isWorkSpaceType: isWorkSpaceType,
|
|
146
|
+
prevOrder: prevOrder,
|
|
147
|
+
}),
|
|
148
|
+
closeWorkspaceGroup: false,
|
|
149
|
+
});
|
|
150
|
+
},
|
|
151
|
+
[orderTypeUuid, isWorkSpaceType, prevOrder, prevWorkSpace],
|
|
152
|
+
);
|
|
99
153
|
|
|
100
154
|
const removeLabOrder = useCallback(
|
|
101
155
|
(order: TestOrderBasketItem) => {
|
|
@@ -120,19 +174,29 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
120
174
|
[styles.collapsedTile]: !isExpanded,
|
|
121
175
|
})}
|
|
122
176
|
>
|
|
123
|
-
<div className={styles.
|
|
177
|
+
<div className={classNames(isTablet ? styles.tabletContainer : styles.desktopContainer)}>
|
|
124
178
|
<div className={styles.iconAndLabel}>
|
|
125
|
-
|
|
126
|
-
|
|
179
|
+
{isDefaultLabOrder ? (
|
|
180
|
+
<LabIcon isTablet={isTablet} />
|
|
181
|
+
) : (
|
|
182
|
+
<MaybeIcon icon={icon ? icon : 'omrs-icon-generic-order-type'} size={isTablet ? 40 : 24} />
|
|
183
|
+
)}
|
|
184
|
+
<h4 className={styles.heading}>{`${
|
|
185
|
+
isWorkSpaceType(prevWorkSpace) && prevWorkSpace === WORKSPACES.ORDER_BASKET
|
|
186
|
+
? label
|
|
187
|
+
? t(label)
|
|
188
|
+
: orderType?.display
|
|
189
|
+
: t('tests', 'Tests')
|
|
190
|
+
} (${orders.length})`}</h4>
|
|
127
191
|
</div>
|
|
128
192
|
<div className={styles.buttonContainer}>
|
|
129
193
|
<Button
|
|
130
194
|
className={styles.addButton}
|
|
131
195
|
iconDescription="Add lab order"
|
|
132
196
|
kind="ghost"
|
|
133
|
-
onClick={
|
|
197
|
+
onClick={openNewLabForm}
|
|
134
198
|
renderIcon={(props: ComponentProps<typeof AddIcon>) => <AddIcon size={16} {...props} />}
|
|
135
|
-
size={
|
|
199
|
+
size={responsiveSize}
|
|
136
200
|
>
|
|
137
201
|
{t('add', 'Add')}
|
|
138
202
|
</Button>
|
|
@@ -146,6 +210,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
146
210
|
renderIcon={(props: ComponentProps<typeof ChevronUpIcon>) =>
|
|
147
211
|
isExpanded ? <ChevronUpIcon size={16} {...props} /> : <ChevronDownIcon size={16} {...props} />
|
|
148
212
|
}
|
|
213
|
+
size={responsiveSize}
|
|
149
214
|
>
|
|
150
215
|
{t('add', 'Add')}
|
|
151
216
|
</Button>
|
|
@@ -160,7 +225,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
160
225
|
{incompleteOrderBasketItems.map((order) => (
|
|
161
226
|
<LabOrderBasketItemTile
|
|
162
227
|
key={order.uuid}
|
|
163
|
-
onItemClick={() =>
|
|
228
|
+
onItemClick={() => openEditLabForm(order)}
|
|
164
229
|
onRemoveClick={() => removeLabOrder(order)}
|
|
165
230
|
orderBasketItem={order}
|
|
166
231
|
/>
|
|
@@ -172,7 +237,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
172
237
|
{newOrderBasketItems.map((order) => (
|
|
173
238
|
<LabOrderBasketItemTile
|
|
174
239
|
key={order.uuid}
|
|
175
|
-
onItemClick={() =>
|
|
240
|
+
onItemClick={() => openEditLabForm(order)}
|
|
176
241
|
onRemoveClick={() => removeLabOrder(order)}
|
|
177
242
|
orderBasketItem={order}
|
|
178
243
|
/>
|
|
@@ -185,7 +250,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
185
250
|
{renewedOrderBasketItems.map((order) => (
|
|
186
251
|
<LabOrderBasketItemTile
|
|
187
252
|
key={order.uuid}
|
|
188
|
-
onItemClick={() =>
|
|
253
|
+
onItemClick={() => openEditLabForm(order)}
|
|
189
254
|
onRemoveClick={() => removeLabOrder(order)}
|
|
190
255
|
orderBasketItem={order}
|
|
191
256
|
/>
|
|
@@ -198,7 +263,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
198
263
|
{revisedOrderBasketItems.map((order) => (
|
|
199
264
|
<LabOrderBasketItemTile
|
|
200
265
|
key={order.uuid}
|
|
201
|
-
onItemClick={() =>
|
|
266
|
+
onItemClick={() => openEditLabForm(order)}
|
|
202
267
|
onRemoveClick={() => removeLabOrder(order)}
|
|
203
268
|
orderBasketItem={order}
|
|
204
269
|
/>
|
|
@@ -211,7 +276,7 @@ function LabOrderBasketPanel({ orderTypeUuid, label, icon, patient, launchLabOrd
|
|
|
211
276
|
{discontinuedOrderBasketItems.map((order) => (
|
|
212
277
|
<LabOrderBasketItemTile
|
|
213
278
|
key={order.uuid}
|
|
214
|
-
onItemClick={() =>
|
|
279
|
+
onItemClick={() => openEditLabForm(order)}
|
|
215
280
|
onRemoveClick={() => removeLabOrder(order)}
|
|
216
281
|
orderBasketItem={order}
|
|
217
282
|
/>
|
|
@@ -3,21 +3,44 @@
|
|
|
3
3
|
@use '@carbon/type';
|
|
4
4
|
@use '@openmrs/esm-styleguide/src/vars' as *;
|
|
5
5
|
|
|
6
|
+
.desktopContainer {
|
|
7
|
+
background-color: colors.$gray-10;
|
|
8
|
+
display: flex;
|
|
9
|
+
justify-content: space-between;
|
|
10
|
+
align-items: center;
|
|
11
|
+
text-align: left;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.tabletContainer {
|
|
15
|
+
@extend .desktopContainer;
|
|
16
|
+
background-color: colors.$white-0;
|
|
17
|
+
}
|
|
18
|
+
|
|
6
19
|
.tile:not(:first-child) {
|
|
7
20
|
margin-top: 2rem;
|
|
8
21
|
}
|
|
9
22
|
|
|
10
23
|
.desktopTile {
|
|
24
|
+
position: relative;
|
|
11
25
|
border-left: layout.$spacing-02 solid colors.$purple-70;
|
|
12
|
-
background-color:
|
|
13
|
-
border-top: 1px solid colors.$purple-20;
|
|
26
|
+
background-color: colors.$white-0;
|
|
14
27
|
border-right: none;
|
|
15
28
|
padding: 0;
|
|
29
|
+
|
|
30
|
+
&::after {
|
|
31
|
+
content: '';
|
|
32
|
+
position: absolute;
|
|
33
|
+
top: 0;
|
|
34
|
+
left: 0;
|
|
35
|
+
right: 0;
|
|
36
|
+
height: 1px;
|
|
37
|
+
background-color: colors.$purple-20;
|
|
38
|
+
}
|
|
16
39
|
}
|
|
17
40
|
|
|
18
41
|
.tabletTile {
|
|
19
42
|
@extend .desktopTile;
|
|
20
|
-
border-top: 1px solid
|
|
43
|
+
border-top: 1px solid colors.$purple-20;
|
|
21
44
|
}
|
|
22
45
|
|
|
23
46
|
.collapsedTile {
|
|
@@ -33,14 +56,6 @@
|
|
|
33
56
|
border-bottom: 1px solid $grey-2;
|
|
34
57
|
}
|
|
35
58
|
|
|
36
|
-
.container {
|
|
37
|
-
background-color: $ui-02;
|
|
38
|
-
display: flex;
|
|
39
|
-
justify-content: space-between;
|
|
40
|
-
align-items: center;
|
|
41
|
-
text-align: left;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
59
|
.desktopTile .container {
|
|
45
60
|
h4 {
|
|
46
61
|
@include type.type-style('heading-compact-02');
|
|
@@ -2,16 +2,17 @@ import React from 'react';
|
|
|
2
2
|
import userEvent from '@testing-library/user-event';
|
|
3
3
|
import { screen, render } from '@testing-library/react';
|
|
4
4
|
import { useOrderType } from '@openmrs/esm-patient-common-lib';
|
|
5
|
-
import { getDefaultsFromConfigSchema, useConfig } from '@openmrs/esm-framework';
|
|
6
|
-
import type { OrderBasketExtensionProps, TestOrderBasketItem } from '@openmrs/esm-patient-common-lib';
|
|
5
|
+
import { getDefaultsFromConfigSchema, useConfig, useWorkspaces, type WorkspacesInfo } from '@openmrs/esm-framework';
|
|
7
6
|
import { type ConfigObject, configSchema } from '../../config-schema';
|
|
8
|
-
import
|
|
7
|
+
import { type TestOrderBasketItem } from '../../types';
|
|
9
8
|
import { mockPatient } from 'tools';
|
|
10
|
-
import
|
|
9
|
+
import LabOrderBasketPanel from './lab-order-basket-panel.extension';
|
|
11
10
|
|
|
12
11
|
const mockUseOrderBasket = jest.fn();
|
|
13
12
|
const mockUseConfig = jest.mocked(useConfig<ConfigObject>);
|
|
14
13
|
const mockUseOrderType = jest.mocked(useOrderType);
|
|
14
|
+
const mockUseWorkSpaces = jest.mocked(useWorkspaces);
|
|
15
|
+
const mockWorkSpacesInfo = {} as WorkspacesInfo;
|
|
15
16
|
|
|
16
17
|
jest.mock('@openmrs/esm-patient-common-lib', () => ({
|
|
17
18
|
...jest.requireActual('@openmrs/esm-patient-common-lib'),
|
|
@@ -38,14 +39,17 @@ mockUseOrderType.mockReturnValue({
|
|
|
38
39
|
errorFetchingOrderType: undefined,
|
|
39
40
|
});
|
|
40
41
|
|
|
41
|
-
const testProps
|
|
42
|
+
const testProps = {
|
|
43
|
+
patientUuid: mockPatient.id,
|
|
42
44
|
patient: mockPatient,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
launchGeneralOrderForm: jest.fn(),
|
|
45
|
+
visitContext: null,
|
|
46
|
+
mutateVisitContext: null,
|
|
46
47
|
};
|
|
47
48
|
|
|
48
49
|
describe('LabOrderBasketPanel', () => {
|
|
50
|
+
beforeEach(() => {
|
|
51
|
+
mockUseWorkSpaces.mockReturnValue(mockWorkSpacesInfo);
|
|
52
|
+
});
|
|
49
53
|
test('renders an empty state when no items are selected in the order basket', () => {
|
|
50
54
|
mockUseOrderBasket.mockReturnValue({ orders: [] });
|
|
51
55
|
render(<LabOrderBasketPanel {...testProps} />);
|
|
@@ -65,7 +69,6 @@ describe('LabOrderBasketPanel', () => {
|
|
|
65
69
|
display: 'HIV VIRAL LOAD',
|
|
66
70
|
urgency: 'ROUTINE',
|
|
67
71
|
uuid: 'order-uuid-1',
|
|
68
|
-
visit: mockVisit,
|
|
69
72
|
},
|
|
70
73
|
{
|
|
71
74
|
action: 'NEW',
|
|
@@ -76,7 +79,6 @@ describe('LabOrderBasketPanel', () => {
|
|
|
76
79
|
display: 'CD4 COUNT',
|
|
77
80
|
urgency: 'STAT',
|
|
78
81
|
uuid: 'order-uuid-2',
|
|
79
|
-
visit: mockVisit,
|
|
80
82
|
},
|
|
81
83
|
];
|
|
82
84
|
let orders = [...labs];
|