@kenyaemr/esm-express-workflow-app 5.4.4-pre.299 → 5.4.4-pre.3
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 +3 -3
- package/dist/126.js +1 -0
- package/dist/126.js.map +1 -0
- package/dist/2024.js +1 -1
- package/dist/2024.js.map +1 -1
- package/dist/2225.js +1 -1
- package/dist/2225.js.map +1 -1
- package/dist/2386.js +1 -0
- package/dist/2386.js.map +1 -0
- package/dist/2438.js +1 -1
- package/dist/2438.js.map +1 -1
- package/dist/4504.js +1 -0
- package/dist/4504.js.map +1 -0
- package/dist/4670.js +1 -0
- package/dist/4670.js.map +1 -0
- package/dist/4682.js +1 -1
- package/dist/4682.js.map +1 -1
- package/dist/5047.js +1 -0
- package/dist/5047.js.map +1 -0
- package/dist/586.js.map +1 -1
- package/dist/5986.js +1 -1
- package/dist/5986.js.map +1 -1
- package/dist/6075.js +1 -0
- package/dist/6075.js.map +1 -0
- package/dist/6328.js +1 -1
- package/dist/6328.js.map +1 -1
- package/dist/64.js +1 -0
- package/dist/64.js.map +1 -0
- package/dist/6456.js +1 -1
- package/dist/6720.js +1 -0
- package/dist/6720.js.map +1 -0
- package/dist/7607.js +1 -1
- package/dist/8566.js +1 -0
- package/dist/8566.js.map +1 -0
- package/dist/8727.js +1 -1
- package/dist/8799.js +1 -0
- package/dist/8799.js.map +1 -0
- package/dist/8911.js +1 -1
- package/dist/8911.js.map +1 -1
- package/dist/9157.js +1 -1
- package/dist/9157.js.map +1 -1
- package/dist/9161.js +1 -0
- package/dist/9161.js.map +1 -0
- package/dist/9182.js +1 -1
- package/dist/9343.js +1 -0
- package/dist/9343.js.map +1 -0
- package/dist/9535.js +1 -1
- package/dist/9535.js.map +1 -1
- package/dist/9834.js +1 -0
- package/dist/{4432.js.map → 9834.js.map} +1 -1
- package/dist/kenyaemr-esm-express-workflow-app.js +2 -2
- package/dist/kenyaemr-esm-express-workflow-app.js.buildmanifest.json +294 -151
- package/dist/kenyaemr-esm-express-workflow-app.js.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/components/admissions/index.tsx +0 -1
- package/src/components/anaesthetic/anaesthetic.component.tsx +10 -4
- package/src/components/anaesthetic/forms/interoperative-record-drug-given-form.component.tsx +2 -26
- package/src/components/anaesthetic/graphs/interoperative-record-drug-given-graph-wrapper.component.tsx +66 -25
- package/src/components/anaesthetic/resources/anaesthetic.resource.ts +2 -2
- package/src/components/consultation/clinical-encounter/clinical-encounter.component.tsx +4 -20
- package/src/components/consultation/index.ts +1 -1
- package/src/components/consultation/tabs/index.ts +67 -0
- package/src/components/facility-dashboard/components/header/home-header.component.tsx +8 -13
- package/src/components/laboratory/index.ts +11 -0
- package/src/components/laboratory/lab-table.component.tsx +25 -12
- package/src/components/laboratory/laboratory-tabs.component.tsx +3 -17
- package/src/components/pharmacy/index.ts +1 -1
- package/src/components/pharmacy/pharmacy-tabs.component.tsx +4 -20
- package/src/components/pharmacy/tabs/index.ts +21 -0
- package/src/components/procedures/index.ts +16 -0
- package/src/components/procedures/procedures-table.component.tsx +33 -15
- package/src/components/procedures/procedures-tabs.component.tsx +3 -22
- package/src/components/radiology-and-imaging/index.ts +11 -0
- package/src/components/radiology-and-imaging/radiology-and-imaging-table.component.tsx +35 -15
- package/src/components/radiology-and-imaging/radiology-and-imaging.component.tsx +3 -19
- package/src/components/registration/card/Local-card/local-card.component.tsx +3 -3
- package/src/components/registration/dependants/dependants.component.tsx +6 -1
- package/src/components/registration/end-visit-modal/end-visit-dialog.modal.tsx +320 -0
- package/src/components/registration/end-visit-modal/end-visit-dialog.scss +12 -0
- package/src/components/registration/end-visit-modal/end-visit.resource.tsx +59 -0
- package/src/components/registration/end-visit-modal/sha-end-visit.resource.ts +285 -0
- package/src/components/registration/start-visit-form/overflow-menu-extension/custom-end-active-visit.extension.tsx +44 -0
- package/src/components/registration/start-visit-form/start-visit-workspace/exported-visit-form.workspace.tsx +16 -11
- package/src/components/registration/type/index.ts +101 -0
- package/src/config-schema.ts +23 -1
- package/src/index.ts +36 -17
- package/src/routes.json +205 -12
- package/src/shared/otp-verification/index.ts +3 -0
- package/src/shared/otp-verification/otp-verification.modal.tsx +51 -17
- package/src/shared/patient-chart/patient-summary-dashboard/patient-summary-dashboard.component.tsx +5 -73
- package/src/shared/tabs/create-tab-extension.tsx +33 -0
- package/src/shared/tabs/extension-tabs.component.tsx +51 -33
- package/src/shared/utils/index.ts +6 -6
- package/translations/am.json +32 -24
- package/translations/en.json +23 -16
- package/translations/fr.json +23 -16
- package/translations/sw.json +23 -21
- package/Failed to delete encounter/am.json +0 -4
- package/Failed to delete encounter/en.json +0 -4
- package/Failed to delete encounter/fr.json +0 -4
- package/Failed to delete encounter/sw.json +0 -4
- package/dist/2332.js +0 -1
- package/dist/2332.js.map +0 -1
- package/dist/4432.js +0 -1
- package/dist/4666.js +0 -1
- package/dist/4666.js.map +0 -1
- package/dist/5733.js +0 -1
- package/dist/5733.js.map +0 -1
- package/dist/644.js +0 -1
- package/dist/644.js.map +0 -1
- package/dist/655.js +0 -1
- package/dist/655.js.map +0 -1
- package/dist/70.js +0 -1
- package/dist/70.js.map +0 -1
- package/dist/9387.js +0 -1
- package/dist/9387.js.map +0 -1
- package/src/components/admissions/admission-medication-summary.tsx +0 -302
- package/src/components/admissions/admissions-dashboard.utils.test.ts +0 -48
- package/src/components/admissions/admissions-dashboard.utils.tsx +0 -63
- package/src/shared/orders/OrdersTabs.tsx +0 -76
- /package/src/shared/{patient-chart/patient-summary-dashboard → tabs}/patient-summary-dashboard.scss +0 -0
|
@@ -1,29 +1,13 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { useTranslation } from 'react-i18next';
|
|
3
|
-
import { Layer } from '@carbon/react';
|
|
4
|
-
import { Activity, RequestQuote, CalendarTools } from '@carbon/react/icons';
|
|
1
|
+
import React from 'react';
|
|
5
2
|
|
|
6
|
-
import ExtensionTabs
|
|
3
|
+
import ExtensionTabs from '../../shared/tabs/extension-tabs.component';
|
|
7
4
|
|
|
8
5
|
type PharmacyTabsProps = {
|
|
9
6
|
patientUuid: string;
|
|
10
|
-
patient: fhir.Patient;
|
|
11
7
|
};
|
|
12
8
|
|
|
13
|
-
const PharmacyTabs: React.FC<PharmacyTabsProps> = ({ patientUuid
|
|
14
|
-
|
|
15
|
-
const state = useMemo(() => ({ patientUuid, patient }), [patientUuid, patient]);
|
|
16
|
-
const items: Array<ExtensionTabItem> = [
|
|
17
|
-
{ label: t('orders', 'Orders'), icon: RequestQuote, slotName: 'ewf-orders-slot' },
|
|
18
|
-
{ label: t('activeMedications', 'Active Medications'), icon: Activity, slotName: 'ewf-active-medications-slot' },
|
|
19
|
-
{ label: t('pastMedications', 'Past Medications'), icon: CalendarTools, slotName: 'ewf-past-medications-slot' },
|
|
20
|
-
];
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<Layer>
|
|
24
|
-
<ExtensionTabs items={items} state={state} />
|
|
25
|
-
</Layer>
|
|
26
|
-
);
|
|
9
|
+
const PharmacyTabs: React.FC<PharmacyTabsProps> = ({ patientUuid }) => {
|
|
10
|
+
return <ExtensionTabs extensionSlotName={'pharmacy-tabs-slot'} patientUuid={patientUuid} />;
|
|
27
11
|
};
|
|
28
12
|
|
|
29
13
|
export default PharmacyTabs;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getAsyncLifecycle } from '@openmrs/esm-framework';
|
|
2
|
+
|
|
3
|
+
const options = {
|
|
4
|
+
featureName: 'express-workflow',
|
|
5
|
+
moduleName: '@kenyaemr/esm-express-workflow-app',
|
|
6
|
+
};
|
|
7
|
+
// t('orders', 'Orders')
|
|
8
|
+
export const pharmacyOrdersTab = getAsyncLifecycle(
|
|
9
|
+
() => import('../../../shared/tabs/create-tab-extension').then((mod) => ({ default: mod.createTabExtension() })),
|
|
10
|
+
options,
|
|
11
|
+
);
|
|
12
|
+
// t('activeMedications', 'Active Medications')
|
|
13
|
+
export const pharmacyActiveMedicationsTab = getAsyncLifecycle(
|
|
14
|
+
() => import('../../../shared/tabs/create-tab-extension').then((mod) => ({ default: mod.createTabExtension() })),
|
|
15
|
+
options,
|
|
16
|
+
);
|
|
17
|
+
// t('pastMedications', 'Past Medications')
|
|
18
|
+
export const pharmacyPastMedicationsTab = getAsyncLifecycle(
|
|
19
|
+
() => import('../../../shared/tabs/create-tab-extension').then((mod) => ({ default: mod.createTabExtension() })),
|
|
20
|
+
options,
|
|
21
|
+
);
|
|
@@ -20,3 +20,19 @@ export const proceduresLeftPanelLink = getAsyncLifecycle(
|
|
|
20
20
|
})),
|
|
21
21
|
options,
|
|
22
22
|
);
|
|
23
|
+
|
|
24
|
+
// t("results", "Results")
|
|
25
|
+
export const patientProcedureOrdersResults = getAsyncLifecycle(
|
|
26
|
+
() => import('../../shared/tabs/create-tab-extension').then((mod) => ({ default: mod.createTabExtension() })),
|
|
27
|
+
options,
|
|
28
|
+
);
|
|
29
|
+
// t("order", "Orders")
|
|
30
|
+
export const patientProcedureOrdersTab = getAsyncLifecycle(
|
|
31
|
+
() => import('../../components/procedures/procedures-table.component'),
|
|
32
|
+
options,
|
|
33
|
+
);
|
|
34
|
+
// t('anaesthetic', 'Anaesthetic')
|
|
35
|
+
export const patientProcedureAnaestheticTab = getAsyncLifecycle(
|
|
36
|
+
() => import('../../components/anaesthetic/anaesthetic.component'),
|
|
37
|
+
options,
|
|
38
|
+
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useConfig } from '@openmrs/esm-framework';
|
|
1
|
+
import { DataTableSkeleton, Layer } from '@carbon/react';
|
|
2
|
+
import { ErrorState, FHIRResource, useConfig } from '@openmrs/esm-framework';
|
|
3
3
|
import {
|
|
4
4
|
EmptyState,
|
|
5
5
|
invalidateVisitAndEncounterData,
|
|
@@ -7,42 +7,60 @@ import {
|
|
|
7
7
|
useLaunchWorkspaceRequiringVisit,
|
|
8
8
|
usePatientChartStore,
|
|
9
9
|
} from '@openmrs/esm-patient-common-lib';
|
|
10
|
-
import {
|
|
10
|
+
import React, { useMemo } from 'react';
|
|
11
11
|
import { useTranslation } from 'react-i18next';
|
|
12
12
|
|
|
13
13
|
import OrderTable from '../../shared/orders/OrderTable';
|
|
14
14
|
|
|
15
|
-
import {
|
|
15
|
+
import { useSWRConfig } from 'swr';
|
|
16
16
|
import { type ExpressWorkflowConfig } from '../../config-schema';
|
|
17
|
+
import { usePatientOrders } from '../../hooks/useOrders';
|
|
17
18
|
import styles from './procedures.scss';
|
|
18
|
-
import { useSWRConfig } from 'swr';
|
|
19
19
|
|
|
20
20
|
type ProceduresTableProps = {
|
|
21
|
-
orders: Order[];
|
|
22
21
|
patientUuid: string;
|
|
23
|
-
patient
|
|
22
|
+
patient?: FHIRResource;
|
|
24
23
|
};
|
|
25
|
-
const ProceduresTable: React.FC<ProceduresTableProps> = ({
|
|
24
|
+
const ProceduresTable: React.FC<ProceduresTableProps> = ({ patientUuid, patient }) => {
|
|
26
25
|
const { t } = useTranslation();
|
|
27
|
-
const { imagingOrderTypeUuid, imagingOrderableConceptSets } =
|
|
26
|
+
const { imagingOrderTypeUuid, imagingOrderableConceptSets, proceduresConceptClassUuid } =
|
|
27
|
+
useConfig<ExpressWorkflowConfig>();
|
|
28
|
+
const {
|
|
29
|
+
data: orders,
|
|
30
|
+
isLoading,
|
|
31
|
+
error,
|
|
32
|
+
mutate: mutateOrders,
|
|
33
|
+
} = usePatientOrders(patientUuid, 'any', imagingOrderTypeUuid, undefined, undefined);
|
|
34
|
+
const filteredOrders = useMemo(
|
|
35
|
+
() => orders?.filter((order) => order.concept?.conceptClass?.uuid === proceduresConceptClassUuid),
|
|
36
|
+
[orders, proceduresConceptClassUuid],
|
|
37
|
+
);
|
|
38
|
+
|
|
28
39
|
const { visitContext } = usePatientChartStore(patientUuid);
|
|
29
40
|
const { mutate: globalMutate } = useSWRConfig();
|
|
30
|
-
const windowProps = useMemo(() => ({ encounterUuid:
|
|
41
|
+
const windowProps = useMemo(() => ({ encounterUuid: filteredOrders?.[0]?.encounter?.uuid }), [filteredOrders]);
|
|
31
42
|
const groupProps = useMemo(
|
|
32
43
|
() => ({
|
|
33
44
|
patient,
|
|
34
|
-
patientUuid
|
|
45
|
+
patientUuid,
|
|
35
46
|
visitContext: visitContext,
|
|
36
47
|
mutateVisitContext: () => {
|
|
48
|
+
mutateOrders();
|
|
37
49
|
invalidateVisitByUuid(globalMutate, visitContext.uuid);
|
|
38
|
-
invalidateVisitAndEncounterData(globalMutate,
|
|
50
|
+
invalidateVisitAndEncounterData(globalMutate, patientUuid);
|
|
39
51
|
},
|
|
40
52
|
}),
|
|
41
|
-
[
|
|
53
|
+
[patient, patientUuid, visitContext, mutateOrders, globalMutate],
|
|
42
54
|
);
|
|
43
55
|
const launchOrderBasket = useLaunchWorkspaceRequiringVisit(patientUuid ?? '', 'order-basket');
|
|
44
56
|
|
|
45
|
-
if (
|
|
57
|
+
if (isLoading) {
|
|
58
|
+
return <DataTableSkeleton />;
|
|
59
|
+
}
|
|
60
|
+
if (error) {
|
|
61
|
+
return <ErrorState headerTitle={t('proceduresOrders', 'Procedures Orders')} error={error} />;
|
|
62
|
+
}
|
|
63
|
+
if (filteredOrders?.length === 0) {
|
|
46
64
|
return (
|
|
47
65
|
<Layer>
|
|
48
66
|
<EmptyState
|
|
@@ -66,7 +84,7 @@ const ProceduresTable: React.FC<ProceduresTableProps> = ({ orders, patientUuid,
|
|
|
66
84
|
return (
|
|
67
85
|
<OrderTable
|
|
68
86
|
title={t('proceduresOrders', 'Procedures Orders')}
|
|
69
|
-
orders={
|
|
87
|
+
orders={filteredOrders ?? []}
|
|
70
88
|
onAdd={() =>
|
|
71
89
|
launchOrderBasket(
|
|
72
90
|
{
|
|
@@ -1,32 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useConfig } from '@openmrs/esm-framework';
|
|
3
|
-
import { useTranslation } from 'react-i18next';
|
|
4
2
|
|
|
5
|
-
import
|
|
6
|
-
import ProceduresTable from './procedures-table.component';
|
|
7
|
-
import { ExpressWorkflowConfig } from '../../config-schema';
|
|
8
|
-
import Anaesthetic from '../anaesthetic/anaesthetic.component';
|
|
3
|
+
import ExtensionTabs from '../../shared/tabs/extension-tabs.component';
|
|
9
4
|
|
|
10
5
|
type ProceduresTabsProps = {
|
|
11
6
|
patientUuid: string;
|
|
12
|
-
patient: fhir.Patient;
|
|
13
7
|
};
|
|
14
8
|
|
|
15
|
-
const ProceduresTabs: React.FC<ProceduresTabsProps> = ({ patientUuid
|
|
16
|
-
|
|
17
|
-
const { proceduresConceptClassUuid, imagingOrderTypeUuid } = useConfig<ExpressWorkflowConfig>();
|
|
18
|
-
return (
|
|
19
|
-
<OrdersTabs
|
|
20
|
-
patientUuid={patientUuid}
|
|
21
|
-
patient={patient}
|
|
22
|
-
basePath="procedures"
|
|
23
|
-
resultsSlotName="ewf-procedures-results-slot"
|
|
24
|
-
orderTypeUuid={imagingOrderTypeUuid}
|
|
25
|
-
filter={(order) => order.concept?.conceptClass?.uuid === proceduresConceptClassUuid}
|
|
26
|
-
Table={({ orders }) => <ProceduresTable orders={orders} patientUuid={patientUuid} patient={patient} />}
|
|
27
|
-
additionalTabs={[{ label: t('anaesthetic', 'Anaesthetic'), content: <Anaesthetic patientUuid={patientUuid} /> }]}
|
|
28
|
-
/>
|
|
29
|
-
);
|
|
9
|
+
const ProceduresTabs: React.FC<ProceduresTabsProps> = ({ patientUuid }) => {
|
|
10
|
+
return <ExtensionTabs extensionSlotName="patient-procedure-tabs-slot" patientUuid={patientUuid} />;
|
|
30
11
|
};
|
|
31
12
|
|
|
32
13
|
export default ProceduresTabs;
|
|
@@ -23,3 +23,14 @@ export const radiologyAndImagingLeftPanelLink = getAsyncLifecycle(
|
|
|
23
23
|
})),
|
|
24
24
|
options,
|
|
25
25
|
);
|
|
26
|
+
|
|
27
|
+
// t("results", "Results")
|
|
28
|
+
export const patientImagingOrdersResults = getAsyncLifecycle(
|
|
29
|
+
() => import('../../shared/tabs/create-tab-extension').then((mod) => ({ default: mod.createTabExtension() })),
|
|
30
|
+
options,
|
|
31
|
+
);
|
|
32
|
+
// t("order", "Orders")
|
|
33
|
+
export const patientImagingOrdersTab = getAsyncLifecycle(
|
|
34
|
+
() => import('../../components/radiology-and-imaging/radiology-and-imaging-table.component'),
|
|
35
|
+
options,
|
|
36
|
+
);
|
|
@@ -1,37 +1,57 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import { useConfig } from '@openmrs/esm-framework';
|
|
3
|
-
import { EmptyState, useLaunchWorkspaceRequiringVisit, usePatientChartStore } from '@openmrs/esm-patient-common-lib';
|
|
4
|
-
import { Layer } from '@carbon/react';
|
|
5
2
|
import { useTranslation } from 'react-i18next';
|
|
3
|
+
import { DataTableSkeleton, Layer } from '@carbon/react';
|
|
4
|
+
import { ErrorState, FHIRResource, useConfig } from '@openmrs/esm-framework';
|
|
5
|
+
import { EmptyState, useLaunchWorkspaceRequiringVisit, usePatientChartStore } from '@openmrs/esm-patient-common-lib';
|
|
6
6
|
import OrderTable from '../../shared/orders/OrderTable';
|
|
7
|
-
|
|
8
|
-
import { type Order } from '../../types/order/order';
|
|
9
7
|
import { type ExpressWorkflowConfig } from '../../config-schema';
|
|
8
|
+
import { usePatientOrders } from '../../hooks/useOrders';
|
|
10
9
|
import styles from './radiology-and-imaging.scss';
|
|
11
10
|
|
|
12
11
|
type RadiologyAndImagingTableProps = {
|
|
13
|
-
orders: Array<Order>;
|
|
14
12
|
patientUuid: string;
|
|
15
|
-
patient:
|
|
13
|
+
patient: FHIRResource;
|
|
16
14
|
};
|
|
17
|
-
const RadiologyAndImagingTable: React.FC<RadiologyAndImagingTableProps> = ({
|
|
15
|
+
const RadiologyAndImagingTable: React.FC<RadiologyAndImagingTableProps> = ({ patientUuid, patient }) => {
|
|
18
16
|
const { t } = useTranslation();
|
|
19
|
-
const { imagingOrderTypeUuid, imagingOrderableConceptSets } =
|
|
17
|
+
const { imagingOrderTypeUuid, imagingOrderableConceptSets, imagingConceptClassUuid } =
|
|
18
|
+
useConfig<ExpressWorkflowConfig>();
|
|
19
|
+
const {
|
|
20
|
+
data: orders,
|
|
21
|
+
isLoading,
|
|
22
|
+
error,
|
|
23
|
+
mutate: mutateOrders,
|
|
24
|
+
} = usePatientOrders(patientUuid, 'any', imagingOrderTypeUuid, undefined, undefined);
|
|
25
|
+
const filteredOrders = useMemo(
|
|
26
|
+
() => orders?.filter((order) => order.concept?.conceptClass?.uuid === imagingConceptClassUuid),
|
|
27
|
+
[imagingConceptClassUuid, orders],
|
|
28
|
+
);
|
|
20
29
|
const { mutateVisitContext, visitContext } = usePatientChartStore(patientUuid);
|
|
21
30
|
|
|
22
|
-
const windowProps = useMemo(() => ({ encounterUuid:
|
|
31
|
+
const windowProps = useMemo(() => ({ encounterUuid: filteredOrders?.[0]?.encounter?.uuid }), [filteredOrders]);
|
|
23
32
|
const groupProps = useMemo(
|
|
24
33
|
() => ({
|
|
25
34
|
patient,
|
|
26
|
-
patientUuid
|
|
35
|
+
patientUuid,
|
|
27
36
|
visitContext: visitContext,
|
|
28
|
-
mutateVisitContext:
|
|
37
|
+
mutateVisitContext: () => {
|
|
38
|
+
mutateOrders();
|
|
39
|
+
mutateVisitContext();
|
|
40
|
+
},
|
|
29
41
|
}),
|
|
30
|
-
[patient, visitContext, mutateVisitContext],
|
|
42
|
+
[patient, patientUuid, visitContext, mutateOrders, mutateVisitContext],
|
|
31
43
|
);
|
|
32
44
|
const launchAddLabOrder = useLaunchWorkspaceRequiringVisit(patientUuid, 'order-basket');
|
|
33
45
|
|
|
34
|
-
if (
|
|
46
|
+
if (isLoading) {
|
|
47
|
+
return <DataTableSkeleton />;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (error) {
|
|
51
|
+
return <ErrorState headerTitle={t('radiologyAndImagingOrders', 'Radiology & Imaging Orders')} error={error} />;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (filteredOrders?.length === 0) {
|
|
35
55
|
return (
|
|
36
56
|
<Layer>
|
|
37
57
|
<EmptyState
|
|
@@ -55,7 +75,7 @@ const RadiologyAndImagingTable: React.FC<RadiologyAndImagingTableProps> = ({ ord
|
|
|
55
75
|
return (
|
|
56
76
|
<OrderTable
|
|
57
77
|
title={t('radiologyAndImagingOrders', 'Radiology & Imaging Orders')}
|
|
58
|
-
orders={
|
|
78
|
+
orders={filteredOrders ?? []}
|
|
59
79
|
onAdd={() =>
|
|
60
80
|
launchAddLabOrder(
|
|
61
81
|
{
|
|
@@ -1,28 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
import OrdersTabs from '../../shared/orders/OrdersTabs';
|
|
4
|
-
import RadiologyAndImagingTable from './radiology-and-imaging-table.component';
|
|
5
|
-
import { ExpressWorkflowConfig } from '../../config-schema';
|
|
2
|
+
import ExtensionTabs from '../../shared/tabs/extension-tabs.component';
|
|
6
3
|
|
|
7
4
|
type RadiologyAndImagingTabsProps = {
|
|
8
5
|
patientUuid: string;
|
|
9
|
-
patient: fhir.Patient;
|
|
10
6
|
};
|
|
11
|
-
const imagingRadiologyConceptClassUuid = '8caa332c-efe4-4025-8b18-3398328e1323';
|
|
12
7
|
|
|
13
|
-
const RadiologyAndImagingTabs: React.FC<RadiologyAndImagingTabsProps> = ({ patientUuid
|
|
14
|
-
|
|
15
|
-
return (
|
|
16
|
-
<OrdersTabs
|
|
17
|
-
patientUuid={patientUuid}
|
|
18
|
-
patient={patient}
|
|
19
|
-
basePath="radiology-and-imaging"
|
|
20
|
-
resultsSlotName="ewf-radiology-and-imaging-results-slot"
|
|
21
|
-
orderTypeUuid={imagingOrderTypeUuid}
|
|
22
|
-
filter={(order) => order.concept?.conceptClass?.uuid === imagingRadiologyConceptClassUuid}
|
|
23
|
-
Table={({ orders }) => <RadiologyAndImagingTable orders={orders} patientUuid={patientUuid} patient={patient} />}
|
|
24
|
-
/>
|
|
25
|
-
);
|
|
8
|
+
const RadiologyAndImagingTabs: React.FC<RadiologyAndImagingTabsProps> = ({ patientUuid }) => {
|
|
9
|
+
return <ExtensionTabs extensionSlotName="patient-imaging-tabs-slot" patientUuid={patientUuid} />;
|
|
26
10
|
};
|
|
27
11
|
|
|
28
12
|
export default RadiologyAndImagingTabs;
|
|
@@ -115,12 +115,12 @@ const LocalPatientCard: React.FC<LocalPatientCardProps> = ({
|
|
|
115
115
|
}, []);
|
|
116
116
|
|
|
117
117
|
const launchCheckInWorkspace = async (patient: any, patientUuid: string) => {
|
|
118
|
-
|
|
118
|
+
const groupProps = {
|
|
119
119
|
patient,
|
|
120
120
|
patientUuid,
|
|
121
121
|
visitContext: null as unknown as Visit,
|
|
122
122
|
mutateVisitContext: () => {},
|
|
123
|
-
}
|
|
123
|
+
};
|
|
124
124
|
|
|
125
125
|
launchWorkspace2<VisitFormProps, {}, {}>(
|
|
126
126
|
'custom-start-visit-workspace-form',
|
|
@@ -129,7 +129,7 @@ const LocalPatientCard: React.FC<LocalPatientCardProps> = ({
|
|
|
129
129
|
showPatientHeader: false,
|
|
130
130
|
},
|
|
131
131
|
{},
|
|
132
|
-
|
|
132
|
+
groupProps,
|
|
133
133
|
);
|
|
134
134
|
};
|
|
135
135
|
|
|
@@ -216,7 +216,12 @@ const DependentsComponent: React.FC<DependentProps> = ({
|
|
|
216
216
|
showPatientHeader: false,
|
|
217
217
|
},
|
|
218
218
|
{},
|
|
219
|
-
|
|
219
|
+
{
|
|
220
|
+
patient: localPatient,
|
|
221
|
+
patientUuid: localPatient.uuid,
|
|
222
|
+
visitContext: null as unknown as Visit,
|
|
223
|
+
mutateVisitContext: () => {},
|
|
224
|
+
},
|
|
220
225
|
);
|
|
221
226
|
} else {
|
|
222
227
|
setSubmittingStates((prev) => ({ ...prev, [dependent.id]: true }));
|