@kenyaemr/esm-ward-app 8.1.2-pre.214 → 8.5.1-pre.18
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 +25 -35
- package/README.md +38 -0
- package/dist/1119.js +1 -0
- package/dist/1197.js +1 -0
- package/dist/1663.js +1 -0
- package/dist/1663.js.map +1 -0
- package/dist/1741.js +1 -0
- package/dist/1741.js.map +1 -0
- package/dist/1776.js +1 -0
- package/dist/1776.js.map +1 -0
- package/dist/1879.js +1 -0
- package/dist/1879.js.map +1 -0
- package/dist/1899.js +1 -0
- package/dist/1899.js.map +1 -0
- package/dist/1917.js +1 -0
- package/dist/1917.js.map +1 -0
- package/dist/2146.js +1 -0
- package/dist/2372.js +1 -0
- package/dist/2372.js.map +1 -0
- package/dist/2470.js +1 -0
- package/dist/2470.js.map +1 -0
- package/dist/2537.js +1 -0
- package/dist/2537.js.map +1 -0
- package/dist/2557.js +1 -0
- package/dist/2557.js.map +1 -0
- package/dist/2690.js +1 -0
- package/dist/2728.js +2 -0
- package/dist/{372.js.LICENSE.txt → 2728.js.LICENSE.txt} +2 -2
- package/dist/2728.js.map +1 -0
- package/dist/2775.js +2 -0
- package/dist/2775.js.LICENSE.txt +59 -0
- package/dist/2775.js.map +1 -0
- package/dist/2913.js +2 -0
- package/dist/2913.js.map +1 -0
- package/dist/2932.js +1 -0
- package/dist/2932.js.map +1 -0
- package/dist/2948.js +1 -0
- package/dist/2948.js.map +1 -0
- package/dist/3099.js +1 -0
- package/dist/3161.js +2 -0
- package/dist/{649.js.LICENSE.txt → 3161.js.LICENSE.txt} +2 -2
- package/dist/3161.js.map +1 -0
- package/dist/3365.js +1 -0
- package/dist/3365.js.map +1 -0
- package/dist/3373.js +2 -0
- package/dist/3373.js.LICENSE.txt +5 -0
- package/dist/3373.js.map +1 -0
- package/dist/3399.js +1 -0
- package/dist/3399.js.map +1 -0
- package/dist/3413.js +1 -0
- package/dist/3413.js.map +1 -0
- package/dist/3423.js +1 -0
- package/dist/3423.js.map +1 -0
- package/dist/3584.js +1 -0
- package/dist/3737.js +1 -0
- package/dist/3737.js.map +1 -0
- package/dist/3982.js +1 -0
- package/dist/3982.js.map +1 -0
- package/dist/4041.js +2 -0
- package/dist/4041.js.map +1 -0
- package/dist/4055.js +1 -0
- package/dist/4132.js +1 -0
- package/dist/4300.js +1 -0
- package/dist/4335.js +1 -0
- package/dist/4430.js +2 -0
- package/dist/4430.js.LICENSE.txt +29 -0
- package/dist/4430.js.map +1 -0
- package/dist/4618.js +1 -0
- package/dist/465.js +1 -0
- package/dist/465.js.map +1 -0
- package/dist/4652.js +1 -0
- package/dist/4701.js +2 -0
- package/dist/4701.js.LICENSE.txt +9 -0
- package/dist/4701.js.map +1 -0
- package/dist/4743.js +2 -0
- package/dist/4743.js.LICENSE.txt +9 -0
- package/dist/4743.js.map +1 -0
- package/dist/4944.js +1 -0
- package/dist/5173.js +1 -0
- package/dist/5241.js +1 -0
- package/dist/5442.js +1 -0
- package/dist/5661.js +1 -0
- package/dist/6012.js +2 -0
- package/dist/6012.js.LICENSE.txt +5 -0
- package/dist/6012.js.map +1 -0
- package/dist/6022.js +1 -0
- package/dist/6468.js +1 -0
- package/dist/6679.js +1 -0
- package/dist/6840.js +1 -0
- package/dist/6859.js +1 -0
- package/dist/7097.js +1 -0
- package/dist/7159.js +1 -0
- package/dist/7179.js +2 -0
- package/dist/7179.js.LICENSE.txt +9 -0
- package/dist/7179.js.map +1 -0
- package/dist/723.js +1 -0
- package/dist/7232.js +2 -0
- package/dist/7232.js.LICENSE.txt +9 -0
- package/dist/7232.js.map +1 -0
- package/dist/7524.js +1 -0
- package/dist/7524.js.map +1 -0
- package/dist/7617.js +1 -0
- package/dist/7661.js +1 -0
- package/dist/7661.js.map +1 -0
- package/dist/7886.js +1 -0
- package/dist/7886.js.map +1 -0
- package/dist/795.js +1 -0
- package/dist/8163.js +1 -0
- package/dist/8205.js +1 -0
- package/dist/8205.js.map +1 -0
- package/dist/8317.js +2 -0
- package/dist/8317.js.LICENSE.txt +15 -0
- package/dist/8317.js.map +1 -0
- package/dist/8349.js +1 -0
- package/dist/8501.js +1 -0
- package/dist/8501.js.map +1 -0
- package/dist/8522.js +1 -0
- package/dist/8522.js.map +1 -0
- package/dist/8618.js +1 -0
- package/dist/8622.js +1 -0
- package/dist/8622.js.map +1 -0
- package/dist/89.js +1 -0
- package/dist/89.js.map +1 -0
- package/dist/890.js +1 -0
- package/dist/9045.js +1 -0
- package/dist/9045.js.map +1 -0
- package/dist/9117.js +1 -0
- package/dist/9117.js.map +1 -0
- package/dist/9214.js +1 -0
- package/dist/9538.js +1 -0
- package/dist/9569.js +1 -0
- package/dist/986.js +1 -0
- package/dist/9876.js +2 -0
- package/dist/9876.js.LICENSE.txt +9 -0
- package/dist/9876.js.map +1 -0
- package/dist/9879.js +1 -0
- package/dist/9880.js +1 -0
- package/dist/9880.js.map +1 -0
- package/dist/9895.js +1 -0
- package/dist/9900.js +1 -0
- package/dist/9913.js +1 -0
- package/dist/kenyaemr-esm-ward-app.js +1 -1
- package/dist/kenyaemr-esm-ward-app.js.buildmanifest.json +1479 -235
- package/dist/kenyaemr-esm-ward-app.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +0 -35
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/mock.tsx +15 -2
- package/package.json +10 -5
- package/src/beds/{empty-bed-skeleton.tsx → empty-bed-skeleton.component.tsx} +2 -2
- package/src/config-schema.ts +48 -0
- package/src/declarations.d.ts +8 -0
- package/src/hooks/useAdmissionLocation.ts +24 -4
- package/src/hooks/useInpatientAdmission.ts +14 -10
- package/src/hooks/useInpatientAdmissionByPatients.ts +29 -0
- package/src/hooks/useInpatientRequest.ts +5 -1
- package/src/hooks/useInpatientRequestByPatients.ts +34 -0
- package/src/hooks/useIpdDischargeEncounter.ts +137 -0
- package/src/hooks/usePatientPendingOrders.ts +1 -1
- package/src/hooks/useRestPatient.ts +11 -3
- package/src/hooks/useSummaryMetrics.ts +103 -0
- package/src/hooks/useWardLocation.test.ts +1 -1
- package/src/hooks/useWardLocation.ts +18 -5
- package/src/hooks/useWardPatientGrouping.ts +63 -10
- package/src/index.ts +24 -4
- package/src/location-selector/location-selector.component.tsx +38 -5
- package/src/root.component.tsx +2 -2
- package/src/routes.json +60 -26
- package/src/types/index.ts +17 -6
- package/src/ward-patient-card/card-rows/admission-request-note-row.component.tsx +1 -1
- package/src/ward-patient-card/card-rows/coded-obs-tags-row.component.tsx +4 -4
- package/src/ward-patient-card/card-rows/mother-child-row.component.tsx +6 -6
- package/src/ward-patient-card/card-rows/pending-items-row.component.tsx +2 -3
- package/src/ward-patient-card/row-elements/{ward-patient-coded-obs-tags.tsx → ward-patient-coded-obs-tags.component.tsx} +5 -5
- package/src/ward-patient-card/row-elements/{ward-patient-header-address.tsx → ward-patient-header-address.component.tsx} +2 -2
- package/src/ward-patient-card/row-elements/{ward-patient-identifier.tsx → ward-patient-identifier.component.tsx} +7 -1
- package/src/ward-patient-card/row-elements/ward-patient-identifier.scss +3 -0
- package/src/ward-patient-card/row-elements/{ward-patient-obs.tsx → ward-patient-obs.component.tsx} +5 -5
- package/src/ward-patient-card/row-elements/{ward-patient-pending-transfer.tsx → ward-patient-pending-transfer.component.tsx} +3 -5
- package/src/ward-patient-card/row-elements/ward-patient-time-on-ward.component.tsx +73 -0
- package/src/ward-patient-card/row-elements/ward-patient-time-since-admission.component.tsx +29 -0
- package/src/ward-patient-card/ward-patient-card.component.tsx +5 -5
- package/src/ward-patient-card/ward-patient-card.scss +2 -6
- package/src/ward-patients/admitted-patients.tsx +218 -0
- package/src/ward-patients/awaiting-admission-patients.tsx +158 -0
- package/src/ward-patients/discharge-in-patients.tsx +183 -0
- package/src/ward-patients/discharge-patients.tsx +129 -0
- package/src/ward-patients/patient-cells.tsx +75 -0
- package/src/ward-patients/table-state-components.tsx +40 -0
- package/src/ward-patients/ward-patient.scss +24 -0
- package/src/ward-patients/ward-patients-table.tsx +38 -0
- package/src/ward-view/default-ward/default-ward-patient-card-header.component.tsx +8 -8
- package/src/ward-view/default-ward/default-ward-pending-patients.component.tsx +3 -3
- package/src/ward-view/default-ward/default-ward-view.component.tsx +33 -6
- package/src/ward-view/linelist-wards/Filters.tsx +25 -0
- package/src/ward-view/linelist-wards/Header.tsx +27 -0
- package/src/ward-view/linelist-wards/LineListTable.tsx +145 -0
- package/src/ward-view/linelist-wards/Metrics.tsx +21 -0
- package/src/ward-view/linelist-wards/WardPendingOutCell.tsx +15 -0
- package/src/ward-view/linelist-wards/WardsLineList.tsx +30 -0
- package/src/ward-view/linelist-wards/linelist-wards.scss +100 -0
- package/src/ward-view/materal-ward/maternal-ward-patient-card-header.component.tsx +8 -8
- package/src/ward-view/materal-ward/maternal-ward-patient-card.component.tsx +2 -2
- package/src/ward-view/materal-ward/maternal-ward-patient-card.test.tsx +1 -1
- package/src/ward-view/materal-ward/maternal-ward-pending-patients.component.tsx +1 -1
- package/src/ward-view/materal-ward/maternal-ward-view.component.tsx +4 -4
- package/src/ward-view/ward-view-content-wrapper.tsx +36 -0
- package/src/ward-view/ward-view.resource.ts +26 -8
- package/src/ward-view/ward-view.scss +15 -8
- package/src/ward-view/ward-view.test.tsx +8 -8
- package/src/ward-view/ward.component.tsx +2 -2
- package/src/ward-view-header/admission-requests-bar.component.tsx +18 -8
- package/src/ward-view-header/admission-requests-bar.test.tsx +3 -3
- package/src/ward-view-header/ward-metric.component.tsx +2 -3
- package/src/ward-workspace/admission-request-card/admission-request-card-actions.component.tsx +12 -14
- package/src/ward-workspace/admission-request-card/admission-request-card-header.component.tsx +5 -5
- package/src/ward-workspace/admission-request-card/admission-request-card.component.tsx +1 -1
- package/src/ward-workspace/admission-request-workspace/admission-requests-action-button.extension.tsx +18 -0
- package/src/ward-workspace/admission-request-workspace/admission-requests-context.ts +20 -0
- package/src/ward-workspace/admission-request-workspace/admission-requests-workspace.test.tsx +7 -6
- package/src/ward-workspace/admission-request-workspace/admission-requests.workspace.tsx +15 -25
- package/src/ward-workspace/admit-patient-button.component.tsx +41 -18
- package/src/ward-workspace/admit-patient-form-workspace/admit-patient-form.test.tsx +14 -16
- package/src/ward-workspace/admit-patient-form-workspace/admit-patient-form.workspace.tsx +2 -2
- package/src/ward-workspace/bed-selector.component.tsx +1 -1
- package/src/ward-workspace/cancel-admission-request-workspace/cancel-admission-request.test.tsx +1 -1
- package/src/ward-workspace/cancel-admission-request-workspace/cancel-admission-request.workspace.tsx +4 -6
- package/src/ward-workspace/create-admission-encounter/create-admission-encounter-action-button.extension.tsx +46 -0
- package/src/ward-workspace/create-admission-encounter/create-admission-encounter.test.tsx +241 -0
- package/src/ward-workspace/create-admission-encounter/create-admission-encounter.workspace.tsx +152 -0
- package/src/ward-workspace/kenya-emr-patient-discharge/discharge-workspace-siderail.component.tsx +23 -0
- package/src/ward-workspace/kenya-emr-patient-discharge/patient-discharge.resource.tsx +123 -0
- package/src/ward-workspace/kenya-emr-patient-discharge/patient-discharge.workspace.tsx +101 -0
- package/src/ward-workspace/patient-discharge/patient-discharge.workspace.tsx +6 -15
- package/src/ward-workspace/patient-transfer-bed-swap/{patient-transfer-request-form.component.tsx → patient-admit-or-transfer-request-form.component.tsx} +56 -37
- package/src/ward-workspace/patient-transfer-bed-swap/patient-bed-swap-form.component.tsx +13 -3
- package/src/ward-workspace/patient-transfer-bed-swap/patient-transfer-swap.workspace.tsx +11 -5
- package/src/ward-workspace/patient-transfer-request-workspace/patient-transfer-request.scss +5 -0
- package/src/ward-workspace/patient-transfer-request-workspace/patient-transfer-request.workspace.tsx +20 -6
- package/src/ward-workspace/ward-patient-notes/form/notes-form.component.tsx +2 -1
- package/src/ward-workspace/ward-patient-notes/history/note.component.tsx +3 -3
- package/src/ward.resource.ts +9 -3
- package/translations/am.json +123 -0
- package/translations/ar.json +123 -0
- package/translations/ar_SY.json +123 -0
- package/translations/bn.json +123 -0
- package/translations/de.json +123 -0
- package/translations/en.json +31 -3
- package/translations/en_US.json +123 -0
- package/translations/es.json +123 -0
- package/translations/es_MX.json +123 -0
- package/translations/fr.json +123 -0
- package/translations/he.json +123 -0
- package/translations/hi.json +123 -0
- package/translations/hi_IN.json +123 -0
- package/translations/id.json +123 -0
- package/translations/it.json +123 -0
- package/translations/ka.json +123 -0
- package/translations/km.json +123 -0
- package/translations/ku.json +123 -0
- package/translations/ky.json +123 -0
- package/translations/lg.json +123 -0
- package/translations/ne.json +123 -0
- package/translations/pl.json +123 -0
- package/translations/pt.json +123 -0
- package/translations/pt_BR.json +123 -0
- package/translations/qu.json +123 -0
- package/translations/ro_RO.json +123 -0
- package/translations/ru_RU.json +123 -0
- package/translations/si.json +123 -0
- package/translations/sw.json +123 -0
- package/translations/sw_KE.json +123 -0
- package/translations/tr.json +123 -0
- package/translations/tr_TR.json +123 -0
- package/translations/uk.json +123 -0
- package/translations/uz.json +123 -0
- package/translations/uz@Latn.json +123 -0
- package/translations/uz_UZ.json +123 -0
- package/translations/vi.json +123 -0
- package/translations/zh.json +123 -0
- package/translations/zh_CN.json +123 -0
- package/dist/109.js +0 -1
- package/dist/109.js.map +0 -1
- package/dist/124.js +0 -1
- package/dist/124.js.map +0 -1
- package/dist/125.js +0 -1
- package/dist/125.js.map +0 -1
- package/dist/126.js +0 -1
- package/dist/126.js.map +0 -1
- package/dist/130.js +0 -2
- package/dist/130.js.LICENSE.txt +0 -5
- package/dist/130.js.map +0 -1
- package/dist/146.js +0 -1
- package/dist/146.js.map +0 -1
- package/dist/15.js +0 -1
- package/dist/15.js.map +0 -1
- package/dist/325.js +0 -1
- package/dist/325.js.map +0 -1
- package/dist/348.js +0 -1
- package/dist/348.js.map +0 -1
- package/dist/362.js +0 -1
- package/dist/362.js.map +0 -1
- package/dist/372.js +0 -2
- package/dist/372.js.map +0 -1
- package/dist/443.js +0 -1
- package/dist/443.js.map +0 -1
- package/dist/471.js +0 -1
- package/dist/471.js.map +0 -1
- package/dist/481.js +0 -1
- package/dist/481.js.map +0 -1
- package/dist/53.js +0 -1
- package/dist/53.js.map +0 -1
- package/dist/559.js +0 -1
- package/dist/559.js.map +0 -1
- package/dist/574.js +0 -1
- package/dist/576.js +0 -1
- package/dist/576.js.map +0 -1
- package/dist/577.js +0 -1
- package/dist/577.js.map +0 -1
- package/dist/591.js +0 -2
- package/dist/591.js.map +0 -1
- package/dist/598.js +0 -1
- package/dist/598.js.map +0 -1
- package/dist/649.js +0 -2
- package/dist/649.js.map +0 -1
- package/dist/662.js +0 -1
- package/dist/662.js.map +0 -1
- package/dist/767.js +0 -1
- package/dist/767.js.map +0 -1
- package/dist/784.js +0 -2
- package/dist/784.js.map +0 -1
- package/dist/921.js +0 -1
- package/dist/921.js.map +0 -1
- package/dist/922.js +0 -1
- package/dist/922.js.map +0 -1
- package/dist/925.js +0 -2
- package/dist/925.js.LICENSE.txt +0 -40
- package/dist/925.js.map +0 -1
- package/dist/940.js +0 -1
- package/dist/940.js.map +0 -1
- package/dist/969.js +0 -1
- package/dist/969.js.map +0 -1
- package/dist/983.js +0 -1
- package/dist/983.js.map +0 -1
- package/package-lock.json +0 -5001
- package/src/ward-patient-card/row-elements/ward-patient-time-on-ward.tsx +0 -22
- package/src/ward-patient-card/row-elements/ward-patient-time-since-admission.tsx +0 -22
- /package/dist/{591.js.LICENSE.txt → 2913.js.LICENSE.txt} +0 -0
- /package/dist/{784.js.LICENSE.txt → 4041.js.LICENSE.txt} +0 -0
- /package/src/ward-patient-card/row-elements/{ward-patient-age.tsx → ward-patient-age.component.tsx} +0 -0
- /package/src/ward-patient-card/row-elements/{ward-patient-bed-number.tsx → ward-patient-bed-number.component.tsx} +0 -0
- /package/src/ward-patient-card/row-elements/{ward-patient-location.tsx → ward-patient-location.component.tsx} +0 -0
- /package/src/ward-patient-card/row-elements/{ward-patient-name.tsx → ward-patient-name.component.tsx} +0 -0
- /package/src/ward-patient-card/row-elements/{ward-patient-responsive-tooltip.tsx → ward-patient-responsive-tooltip.component.tsx} +0 -0
- /package/src/ward-patient-card/row-elements/{ward-patient-skeleton-text.tsx → ward-patient-skeleton-text.component.tsx} +0 -0
|
@@ -1,38 +1,49 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {
|
|
2
|
+
Button,
|
|
3
|
+
ButtonSet,
|
|
4
|
+
Form,
|
|
5
|
+
InlineNotification,
|
|
6
|
+
RadioButton,
|
|
7
|
+
RadioButtonGroup,
|
|
8
|
+
Stack,
|
|
9
|
+
TextArea,
|
|
10
|
+
} from '@carbon/react';
|
|
11
|
+
import { zodResolver } from '@hookform/resolvers/zod';
|
|
12
|
+
import { ResponsiveWrapper, showSnackbar, useAppContext } from '@openmrs/esm-framework';
|
|
2
13
|
import classNames from 'classnames';
|
|
3
|
-
import {
|
|
4
|
-
import { Button, ButtonSet, Form, InlineNotification, RadioButton, RadioButtonGroup, TextArea } from '@carbon/react';
|
|
14
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
5
15
|
import { Controller, useForm } from 'react-hook-form';
|
|
6
16
|
import { useTranslation } from 'react-i18next';
|
|
7
|
-
import {
|
|
8
|
-
import { ResponsiveWrapper, showSnackbar, useAppContext, useLayoutType, useSession } from '@openmrs/esm-framework';
|
|
9
|
-
import { useCreateEncounter } from '../../ward.resource';
|
|
10
|
-
import type { ObsPayload, WardPatientWorkspaceProps, WardViewContext } from '../../types';
|
|
17
|
+
import { z } from 'zod';
|
|
11
18
|
import useWardLocation from '../../hooks/useWardLocation';
|
|
12
|
-
import AdmissionPatientButton from '../admit-patient-button.component';
|
|
13
19
|
import LocationSelector from '../../location-selector/location-selector.component';
|
|
20
|
+
import type { ObsPayload, WardPatientWorkspaceProps, WardViewContext } from '../../types';
|
|
21
|
+
import { useCreateEncounter } from '../../ward.resource';
|
|
14
22
|
import styles from './patient-transfer-swap.scss';
|
|
15
23
|
|
|
16
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Form to fill out for:
|
|
26
|
+
* - an admitted patient without pending transfer request, to initiate a transfer request for a patient
|
|
27
|
+
* - an admitted patient with pending transfer request, to create a request to transfer elsewhere
|
|
28
|
+
* - an un-admitted patient, to create a request to admit
|
|
29
|
+
*/
|
|
30
|
+
export default function PatientAdmitOrTransferForm({
|
|
17
31
|
closeWorkspaceWithSavedChanges,
|
|
18
32
|
wardPatient,
|
|
19
33
|
promptBeforeClosing,
|
|
20
34
|
}: WardPatientWorkspaceProps) {
|
|
21
35
|
const { t } = useTranslation();
|
|
22
|
-
const { patient,
|
|
36
|
+
const { patient, inpatientRequest, visit } = wardPatient ?? {};
|
|
23
37
|
const [showErrorNotifications, setShowErrorNotifications] = useState(false);
|
|
24
38
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
25
39
|
const { createEncounter, emrConfiguration, isLoadingEmrConfiguration, errorFetchingEmrConfiguration } =
|
|
26
40
|
useCreateEncounter();
|
|
27
|
-
const { currentProvider } = useSession();
|
|
28
|
-
const { location } = useWardLocation();
|
|
29
41
|
const dispositionsWithTypeTransfer = useMemo(
|
|
30
42
|
() => emrConfiguration?.dispositions.filter(({ type }) => type === 'TRANSFER'),
|
|
31
43
|
[emrConfiguration],
|
|
32
44
|
);
|
|
33
45
|
const { wardPatientGroupDetails } = useAppContext<WardViewContext>('ward-view-context') ?? {};
|
|
34
|
-
const
|
|
35
|
-
const isAdmitted = inpatientAdmission != null;
|
|
46
|
+
const currentAdmission = wardPatientGroupDetails?.inpatientAdmissionsByPatientUuid?.get(patient?.uuid);
|
|
36
47
|
|
|
37
48
|
const zodSchema = useMemo(
|
|
38
49
|
() =>
|
|
@@ -101,7 +112,7 @@ export default function PatientTransferForm({
|
|
|
101
112
|
});
|
|
102
113
|
}
|
|
103
114
|
|
|
104
|
-
createEncounter(patient, emrConfiguration.transferRequestEncounterType, [
|
|
115
|
+
createEncounter(patient, emrConfiguration.transferRequestEncounterType, visit?.uuid, [
|
|
105
116
|
{
|
|
106
117
|
concept: emrConfiguration.dispositionDescriptor.dispositionSetConcept.uuid,
|
|
107
118
|
groupMembers: obs,
|
|
@@ -134,6 +145,7 @@ export default function PatientTransferForm({
|
|
|
134
145
|
patient,
|
|
135
146
|
t,
|
|
136
147
|
wardPatientGroupDetails,
|
|
148
|
+
visit?.uuid,
|
|
137
149
|
],
|
|
138
150
|
);
|
|
139
151
|
|
|
@@ -145,30 +157,11 @@ export default function PatientTransferForm({
|
|
|
145
157
|
if (!wardPatientGroupDetails) {
|
|
146
158
|
return <></>;
|
|
147
159
|
}
|
|
148
|
-
if (!isAdmitted) {
|
|
149
|
-
return (
|
|
150
|
-
<div className={styles.workspaceContent}>
|
|
151
|
-
<div className={styles.formError}>
|
|
152
|
-
<InlineNotification
|
|
153
|
-
kind="info"
|
|
154
|
-
title={t('unableToTransferPatient', 'Unable to transfer patient')}
|
|
155
|
-
subtitle={t(
|
|
156
|
-
'unableToTransferPatientNotYetAdmitted',
|
|
157
|
-
'This patient is not admitted to this ward. Admit this patient before transferring them to a different location.',
|
|
158
|
-
)}
|
|
159
|
-
lowContrast
|
|
160
|
-
hideCloseButton
|
|
161
|
-
/>
|
|
162
|
-
</div>
|
|
163
|
-
<AdmissionPatientButton wardPatient={wardPatient} onAdmitPatientSuccess={closeWorkspaceWithSavedChanges} />
|
|
164
|
-
</div>
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
160
|
return (
|
|
168
161
|
<Form
|
|
169
162
|
onSubmit={handleSubmit(onSubmit, onError)}
|
|
170
163
|
className={classNames(styles.formContainer, styles.workspaceContent)}>
|
|
171
|
-
<
|
|
164
|
+
<Stack gap={4}>
|
|
172
165
|
{errorFetchingEmrConfiguration && (
|
|
173
166
|
<div className={styles.formError}>
|
|
174
167
|
<InlineNotification
|
|
@@ -183,13 +176,39 @@ export default function PatientTransferForm({
|
|
|
183
176
|
/>
|
|
184
177
|
</div>
|
|
185
178
|
)}
|
|
179
|
+
{currentAdmission ? (
|
|
180
|
+
inpatientRequest && (
|
|
181
|
+
<InlineNotification
|
|
182
|
+
kind="info"
|
|
183
|
+
lowContrast={true}
|
|
184
|
+
hideCloseButton={true}
|
|
185
|
+
title={t('patientCurrentlyAdmittedToWardLocation', 'Patient currently admitted to {{wardLocation}}', {
|
|
186
|
+
wardLocation: currentAdmission.currentInpatientLocation.display,
|
|
187
|
+
})}
|
|
188
|
+
/>
|
|
189
|
+
)
|
|
190
|
+
) : (
|
|
191
|
+
<InlineNotification
|
|
192
|
+
kind="info"
|
|
193
|
+
lowContrast={true}
|
|
194
|
+
hideCloseButton={true}
|
|
195
|
+
title={t('patientCurrentlyNotAdmitted', 'Patient currently not admitted')}
|
|
196
|
+
/>
|
|
197
|
+
)}
|
|
186
198
|
<div className={styles.field}>
|
|
187
199
|
<h2 className={styles.productiveHeading02}>{t('selectALocation', 'Select a location')}</h2>
|
|
188
200
|
<Controller
|
|
189
201
|
name="location"
|
|
190
202
|
control={control}
|
|
191
203
|
render={({ field, fieldState: { error } }) => (
|
|
192
|
-
<LocationSelector
|
|
204
|
+
<LocationSelector
|
|
205
|
+
name={field.name}
|
|
206
|
+
field={field}
|
|
207
|
+
invalid={!!error?.message}
|
|
208
|
+
invalidText={error?.message}
|
|
209
|
+
ancestorLocation={visit?.location}
|
|
210
|
+
excludeLocations={currentAdmission ? [currentAdmission.currentInpatientLocation] : []}
|
|
211
|
+
/>
|
|
193
212
|
)}
|
|
194
213
|
/>
|
|
195
214
|
</div>
|
|
@@ -234,7 +253,7 @@ export default function PatientTransferForm({
|
|
|
234
253
|
))}
|
|
235
254
|
</div>
|
|
236
255
|
)}
|
|
237
|
-
</
|
|
256
|
+
</Stack>
|
|
238
257
|
<ButtonSet className={styles.buttonSet}>
|
|
239
258
|
<Button size="xl" kind="secondary" onClick={closeWorkspaceWithSavedChanges}>
|
|
240
259
|
{t('cancel', 'Cancel')}
|
|
@@ -16,7 +16,7 @@ export default function PatientBedSwapForm({
|
|
|
16
16
|
closeWorkspaceWithSavedChanges,
|
|
17
17
|
wardPatient,
|
|
18
18
|
}: WardPatientWorkspaceProps) {
|
|
19
|
-
const { patient } = wardPatient;
|
|
19
|
+
const { patient, visit } = wardPatient;
|
|
20
20
|
const { t } = useTranslation();
|
|
21
21
|
const [showErrorNotifications, setShowErrorNotifications] = useState(false);
|
|
22
22
|
const { createEncounter, emrConfiguration, isLoadingEmrConfiguration, errorFetchingEmrConfiguration } =
|
|
@@ -56,7 +56,7 @@ export default function PatientBedSwapForm({
|
|
|
56
56
|
const bedSelected = beds.find((bed) => bed.bedId === values.bedId);
|
|
57
57
|
setIsSubmitting(true);
|
|
58
58
|
setShowErrorNotifications(false);
|
|
59
|
-
createEncounter(patient, emrConfiguration.bedAssignmentEncounterType)
|
|
59
|
+
createEncounter(patient, emrConfiguration.bedAssignmentEncounterType, visit.uuid)
|
|
60
60
|
.then(async (response) => {
|
|
61
61
|
if (response.ok) {
|
|
62
62
|
if (bedSelected) {
|
|
@@ -110,7 +110,16 @@ export default function PatientBedSwapForm({
|
|
|
110
110
|
closeWorkspaceWithSavedChanges();
|
|
111
111
|
});
|
|
112
112
|
},
|
|
113
|
-
[
|
|
113
|
+
[
|
|
114
|
+
beds,
|
|
115
|
+
createEncounter,
|
|
116
|
+
patient,
|
|
117
|
+
emrConfiguration,
|
|
118
|
+
t,
|
|
119
|
+
wardPatientGroupDetails,
|
|
120
|
+
closeWorkspaceWithSavedChanges,
|
|
121
|
+
visit?.uuid,
|
|
122
|
+
],
|
|
114
123
|
);
|
|
115
124
|
|
|
116
125
|
const onError = useCallback(() => {
|
|
@@ -118,6 +127,7 @@ export default function PatientBedSwapForm({
|
|
|
118
127
|
}, []);
|
|
119
128
|
|
|
120
129
|
if (!wardPatientGroupDetails) return <></>;
|
|
130
|
+
if (!visit) return <InlineNotification kind="error" title={t('noVisit', 'No visit found')} />;
|
|
121
131
|
return (
|
|
122
132
|
<Form
|
|
123
133
|
onSubmit={handleSubmit(onSubmit, onError)}
|
|
@@ -4,8 +4,8 @@ import React, { useState } from 'react';
|
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import type { WardPatientWorkspaceProps } from '../../types';
|
|
6
6
|
import WardPatientWorkspaceBanner from '../patient-banner/patient-banner.component';
|
|
7
|
+
import PatientAdmitOrTransferForm from './patient-admit-or-transfer-request-form.component';
|
|
7
8
|
import PatientBedSwapForm from './patient-bed-swap-form.component';
|
|
8
|
-
import PatientTransferForm from './patient-transfer-request-form.component';
|
|
9
9
|
import styles from './patient-transfer-swap.scss';
|
|
10
10
|
|
|
11
11
|
const TransferSection = {
|
|
@@ -15,9 +15,15 @@ const TransferSection = {
|
|
|
15
15
|
|
|
16
16
|
type TransferSectionValues = (typeof TransferSection)[keyof typeof TransferSection];
|
|
17
17
|
|
|
18
|
-
export default function PatientTransferAndSwapWorkspace(
|
|
18
|
+
export default function PatientTransferAndSwapWorkspace({
|
|
19
|
+
defaultTransfersection,
|
|
20
|
+
withContentSwitcher = true,
|
|
21
|
+
...props
|
|
22
|
+
}: WardPatientWorkspaceProps & { withContentSwitcher?: boolean; defaultTransfersection?: TransferSectionValues }) {
|
|
19
23
|
const { t } = useTranslation();
|
|
20
|
-
const [selectedSection, setSelectedSection] = useState<TransferSectionValues>(
|
|
24
|
+
const [selectedSection, setSelectedSection] = useState<TransferSectionValues>(
|
|
25
|
+
defaultTransfersection ?? TransferSection.TRANSFER,
|
|
26
|
+
);
|
|
21
27
|
const isBedManagementModuleInstalled = useFeatureFlag('bedmanagement-module');
|
|
22
28
|
|
|
23
29
|
return (
|
|
@@ -25,7 +31,7 @@ export default function PatientTransferAndSwapWorkspace(props: WardPatientWorksp
|
|
|
25
31
|
<div className={styles.patientWorkspaceBanner}>
|
|
26
32
|
<WardPatientWorkspaceBanner wardPatient={props?.wardPatient} />
|
|
27
33
|
</div>
|
|
28
|
-
{isBedManagementModuleInstalled && (
|
|
34
|
+
{isBedManagementModuleInstalled && withContentSwitcher && (
|
|
29
35
|
<div className={styles.contentSwitcherWrapper}>
|
|
30
36
|
<h2 className={styles.productiveHeading02}>{t('typeOfTransfer', 'Type of transfer')}</h2>
|
|
31
37
|
<div className={styles.contentSwitcher}>
|
|
@@ -38,7 +44,7 @@ export default function PatientTransferAndSwapWorkspace(props: WardPatientWorksp
|
|
|
38
44
|
)}
|
|
39
45
|
<div className={styles.workspaceForm}>
|
|
40
46
|
{selectedSection === TransferSection.TRANSFER ? (
|
|
41
|
-
<
|
|
47
|
+
<PatientAdmitOrTransferForm {...props} />
|
|
42
48
|
) : (
|
|
43
49
|
<PatientBedSwapForm {...props} />
|
|
44
50
|
)}
|
package/src/ward-workspace/patient-transfer-request-workspace/patient-transfer-request.workspace.tsx
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { useTranslation } from 'react-i18next';
|
|
3
3
|
import { type WardPatientWorkspaceProps } from '../../types';
|
|
4
|
+
import WardPatientWorkspaceBanner from '../patient-banner/patient-banner.component';
|
|
5
|
+
import PatientAdmitOrTransferForm from '../patient-transfer-bed-swap/patient-admit-or-transfer-request-form.component';
|
|
6
|
+
import styles from './patient-transfer-request.scss';
|
|
4
7
|
|
|
5
|
-
interface
|
|
8
|
+
interface PatientTransferRequestWorkspaceProps extends WardPatientWorkspaceProps {}
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
/**
|
|
11
|
+
* This workspace is launched when the "Transfer elsewhere" / "Admit elsewhere"
|
|
12
|
+
* button on a pending request patient card is clicked on
|
|
13
|
+
*/
|
|
14
|
+
const PatientTransferRequestWorkspace: React.FC<PatientTransferRequestWorkspaceProps> = (props) => {
|
|
15
|
+
const { wardPatient } = props;
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<div className={styles.patientTransferRequestWorkspace}>
|
|
19
|
+
<WardPatientWorkspaceBanner {...{ wardPatient }} />
|
|
20
|
+
<PatientAdmitOrTransferForm {...props} />
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
9
23
|
};
|
|
10
24
|
|
|
11
|
-
export default
|
|
25
|
+
export default PatientTransferRequestWorkspace;
|
|
@@ -16,6 +16,7 @@ import { moduleName } from '../../../constant';
|
|
|
16
16
|
import { savePatientNote } from '../notes.resource';
|
|
17
17
|
import useEmrConfiguration from '../../../hooks/useEmrConfiguration';
|
|
18
18
|
import styles from './notes-form.scss';
|
|
19
|
+
import { type EncounterPayload } from '../../../types';
|
|
19
20
|
|
|
20
21
|
type NotesFormData = z.infer<typeof noteFormSchema>;
|
|
21
22
|
|
|
@@ -66,7 +67,7 @@ const PatientNotesForm: React.FC<PatientNotesFormProps> = ({
|
|
|
66
67
|
const { wardClinicalNote } = data;
|
|
67
68
|
setIsSubmitting(true);
|
|
68
69
|
|
|
69
|
-
const notePayload = {
|
|
70
|
+
const notePayload: EncounterPayload = {
|
|
70
71
|
patient: patientUuid,
|
|
71
72
|
location: locationUuid,
|
|
72
73
|
encounterType: emrConfiguration?.inpatientNoteEncounterType.uuid,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { type PatientNote } from '../types';
|
|
3
|
-
import { SkeletonText, Tag, Tile } from '@carbon/react';
|
|
4
|
-
import { useTranslation } from 'react-i18next';
|
|
5
2
|
import dayjs from 'dayjs';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { SkeletonText, Tag, Tile } from '@carbon/react';
|
|
5
|
+
import { type PatientNote } from '../types';
|
|
6
6
|
import styles from './styles.scss';
|
|
7
7
|
|
|
8
8
|
export const InPatientNoteSkeleton: React.FC = () => {
|
package/src/ward.resource.ts
CHANGED
|
@@ -8,7 +8,12 @@ export function useCreateEncounter() {
|
|
|
8
8
|
const { currentProvider } = useSession();
|
|
9
9
|
const { emrConfiguration, isLoadingEmrConfiguration, errorFetchingEmrConfiguration } = useEmrConfiguration();
|
|
10
10
|
|
|
11
|
-
const createEncounter = (
|
|
11
|
+
const createEncounter = (
|
|
12
|
+
patient: Patient,
|
|
13
|
+
encounterType: OpenmrsResource,
|
|
14
|
+
visitUuid: string,
|
|
15
|
+
obs: ObsPayload[] = [],
|
|
16
|
+
) => {
|
|
12
17
|
const encounterPayload = {
|
|
13
18
|
patient: patient.uuid,
|
|
14
19
|
encounterType,
|
|
@@ -20,6 +25,7 @@ export function useCreateEncounter() {
|
|
|
20
25
|
},
|
|
21
26
|
],
|
|
22
27
|
obs,
|
|
28
|
+
visit: visitUuid,
|
|
23
29
|
};
|
|
24
30
|
|
|
25
31
|
return openmrsFetch<Encounter>(`${restBaseUrl}/encounter`, {
|
|
@@ -38,14 +44,14 @@ export function useAdmitPatient() {
|
|
|
38
44
|
const { createEncounter, emrConfiguration, isLoadingEmrConfiguration, errorFetchingEmrConfiguration } =
|
|
39
45
|
useCreateEncounter();
|
|
40
46
|
|
|
41
|
-
const admitPatient = (patient: Patient, dispositionType: DispositionType) => {
|
|
47
|
+
const admitPatient = (patient: Patient, dispositionType: DispositionType, visitUuid: string) => {
|
|
42
48
|
const encounterType =
|
|
43
49
|
dispositionType === 'ADMIT'
|
|
44
50
|
? emrConfiguration.admissionEncounterType
|
|
45
51
|
: dispositionType === 'TRANSFER'
|
|
46
52
|
? emrConfiguration.transferWithinHospitalEncounterType
|
|
47
53
|
: null;
|
|
48
|
-
return createEncounter(patient, encounterType);
|
|
54
|
+
return createEncounter(patient, encounterType, visitUuid);
|
|
49
55
|
};
|
|
50
56
|
|
|
51
57
|
return { admitPatient, isLoadingEmrConfiguration, errorFetchingEmrConfiguration };
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"admissionRequestCancelled": "Admission request cancelled.",
|
|
3
|
+
"admissionRequests": "Admission requests",
|
|
4
|
+
"admissionRequestsCount_one": "{{count}} admission request",
|
|
5
|
+
"admissionRequestsCount_other": "{{count}} admission requests",
|
|
6
|
+
"admit": "Admit",
|
|
7
|
+
"admitElsewhere": "Admit elsewhere",
|
|
8
|
+
"admitPatient": "Admit patient",
|
|
9
|
+
"admitting": "Admitting...",
|
|
10
|
+
"backToSearchResults": "Back to search results",
|
|
11
|
+
"bedShare": "Bed share",
|
|
12
|
+
"bedSwap": "Bed swap",
|
|
13
|
+
"cancel": "Cancel",
|
|
14
|
+
"cancelAdmissionRequest": "Cancel admission request",
|
|
15
|
+
"capacity": "Capacity",
|
|
16
|
+
"capacityMetricValue": "{{ metricValue }} %",
|
|
17
|
+
"chooseAnOption": "Choose an option",
|
|
18
|
+
"clinicalForms": "Clinical forms",
|
|
19
|
+
"clinicalNoteLabel": "Write your notes",
|
|
20
|
+
"clinicalNotes": "Clinical notes",
|
|
21
|
+
"countItems_one": "{{count}} {{item}}",
|
|
22
|
+
"countItems_other": "{{count}} {{item}}",
|
|
23
|
+
"days_one": "{{count}} day",
|
|
24
|
+
"days_other": "{{count}} days",
|
|
25
|
+
"discharge": "Discharge",
|
|
26
|
+
"emptyBed": "Empty bed",
|
|
27
|
+
"emptyText": "Empty",
|
|
28
|
+
"encounterDisplay": "{{encounterType}} {{encounterDate}}",
|
|
29
|
+
"Error cancelling admission request": "Error cancelling admission request",
|
|
30
|
+
"errorChangingPatientBedAssignment": "Error changing patient bed assignment",
|
|
31
|
+
"errorConfiguringPatientCard": "Error configuring patient card",
|
|
32
|
+
"errorConfiguringPatientCardMessage": "Unable to find configuration for {{elementType}}, id: {{id}}",
|
|
33
|
+
"errorCreatingEncounter": "Failed to admit patient",
|
|
34
|
+
"errorCreatingTransferRequest": "Error creating transfer request",
|
|
35
|
+
"errorDischargingPatient": "Error discharging patient",
|
|
36
|
+
"errorLoadingBedDetails": "Error loading bed details",
|
|
37
|
+
"errorLoadingChildren": "Error loading children info",
|
|
38
|
+
"errorLoadingMother": "Error loading mother info",
|
|
39
|
+
"errorLoadingPatientAdmissionRequests": "Error loading patient admission requests",
|
|
40
|
+
"errorLoadingPatientInfo": "Error loading patient info",
|
|
41
|
+
"errorLoadingPatients": "Error loading admitted patients",
|
|
42
|
+
"errorLoadingWardLocation": "Error loading ward location",
|
|
43
|
+
"female": "Female",
|
|
44
|
+
"fetchingEmrConfigurationFailed": "Fetching EMR configuration failed. Try refreshing the page or contact your system administrator.",
|
|
45
|
+
"fetchingPatientNotesFailed": "Fetching patient notes failed. Try refreshing the page or contact your system administrator.",
|
|
46
|
+
"freeBeds": "Free beds",
|
|
47
|
+
"freeBedsMetricValue": "{{ metricValue }}",
|
|
48
|
+
"hours_one": "{{count}} hour",
|
|
49
|
+
"hours_other": "{{count}} hours",
|
|
50
|
+
"inpatientNotesWorkspaceTitle": "In-patient notes",
|
|
51
|
+
"invalidLocationSpecified": "Invalid location specified",
|
|
52
|
+
"invalidWardLocation": "Invalid ward location: {{location}}",
|
|
53
|
+
"labelColon": "{{label}}:",
|
|
54
|
+
"male": "Male",
|
|
55
|
+
"manage": "Manage",
|
|
56
|
+
"minutes_one": "{{count}} minutes",
|
|
57
|
+
"minutes_other": "{{count}} minutes",
|
|
58
|
+
"motherChildBedShare": "Mother / Child",
|
|
59
|
+
"nextPage": "Next page",
|
|
60
|
+
"noBed": "No bed",
|
|
61
|
+
"noBedsConfigured": "No beds configured for this location",
|
|
62
|
+
"noBedsConfiguredForLocation": "No beds configured for {{location}} location",
|
|
63
|
+
"noLocationsFound": "No locations found",
|
|
64
|
+
"noPendingPatientRequests": "No pending patient requests",
|
|
65
|
+
"note": "Note",
|
|
66
|
+
"notes": "Notes",
|
|
67
|
+
"notesRequiredForCancellingRequest": "Notes required for cancelling admission or transfer request",
|
|
68
|
+
"Orders": "Orders",
|
|
69
|
+
"other": "Other",
|
|
70
|
+
"patientAdmittedButBedNotAssigned": "Patient admitted successfully but fail to assign bed to patient",
|
|
71
|
+
"patientAdmittedSuccessfully": "Patient admitted successfully",
|
|
72
|
+
"patientAdmittedSuccessfullySubtitle": "{{patientName}} has been successfully admitted and assigned to bed {{bedNumber}}",
|
|
73
|
+
"patientAdmittedWoBed": "Patient admitted successfully to {{location}}",
|
|
74
|
+
"patientAlreadyAdmittedToCurrentLocation": "Patient already admitted to current location",
|
|
75
|
+
"patientAssignedNewBed": "Patient assigned to new bed",
|
|
76
|
+
"patientAssignedNewBedDetail": "{{patientName}} assigned to bed {{bedNumber}}",
|
|
77
|
+
"patientCurrentlyAdmittedToWardLocation": "Patient currently admitted to {{wardLocation}}",
|
|
78
|
+
"patientCurrentlyNotAdmitted": "Patient currently not admitted",
|
|
79
|
+
"patienthasNoActiveVisit": "Patient has no active visit",
|
|
80
|
+
"patientHasPendingAdmissionRequest": "Patient already has a pending admission request to location {{location}}",
|
|
81
|
+
"patientNoteNowVisible": "It should be now visible in the notes history",
|
|
82
|
+
"patientNoteSaveError": "Error saving patient note",
|
|
83
|
+
"patientNotesDidntLoad": "Patient notes didn't load",
|
|
84
|
+
"patients": "Patients",
|
|
85
|
+
"patientsMetricValue": "{{ metricValue }}",
|
|
86
|
+
"patientTransferRequestCreated": "Patient transfer request created",
|
|
87
|
+
"patientUnassignedFromBed": "Patient unassigned from bed",
|
|
88
|
+
"patientUnassignedFromBedDetail": "{{patientName}} is now unassigned from bed",
|
|
89
|
+
"patientWasDischarged": "Patient was discharged",
|
|
90
|
+
"pendingDischarge": "Pending Discharge",
|
|
91
|
+
"pendingOut": "Pending out",
|
|
92
|
+
"pendingOutMetricValue": "{{ metricValue }}",
|
|
93
|
+
"pendingTransfer": "Pending Transfer",
|
|
94
|
+
"pleaseSelectBed": "Please select a bed",
|
|
95
|
+
"pleaseSelectTransferLocation": "Please select transfer location",
|
|
96
|
+
"pleaseSelectTransferType": "Please select transfer type",
|
|
97
|
+
"previousPage": "Previous page",
|
|
98
|
+
"proceedWithPatientDischarge": "Proceed with patient discharge",
|
|
99
|
+
"save": "Save",
|
|
100
|
+
"saving": "Saving...",
|
|
101
|
+
"searchLocations": "Search locations",
|
|
102
|
+
"seconds_one": "{{count}} second",
|
|
103
|
+
"seconds_other": "{{count}} seconds",
|
|
104
|
+
"selectABed": "Select a bed",
|
|
105
|
+
"selectALocation": "Select a location",
|
|
106
|
+
"showingLocations_one": "{{start}}-{{end}} of {{count}} locations",
|
|
107
|
+
"showingLocations_other": "{{start}}-{{end}} of {{count}} locations",
|
|
108
|
+
"somePartsOfTheFormDidntLoad": "Some parts of the form didn't load",
|
|
109
|
+
"timeOnWard": "Time on this ward: {{timeOnWard}}",
|
|
110
|
+
"timeSinceAdmission": "Admitted: {{timeSinceAdmission}}",
|
|
111
|
+
"transfer": "Transfer",
|
|
112
|
+
"transferElsewhere": "Transfer elsewhere",
|
|
113
|
+
"transferPatient": "Transfer patient",
|
|
114
|
+
"transferRequest": "Transfer request",
|
|
115
|
+
"transfers": "Transfers",
|
|
116
|
+
"transferToDispositionLocation": "Transfer to {{location}}",
|
|
117
|
+
"transferType": "Transfer type",
|
|
118
|
+
"typeOfTransfer": "Type of transfer",
|
|
119
|
+
"unknown": "Unknown",
|
|
120
|
+
"visitNoteSaved": "Patient note saved",
|
|
121
|
+
"wardClinicalNotePlaceholder": "Write any notes here",
|
|
122
|
+
"wards": "Wards"
|
|
123
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"admissionRequestCancelled": "Admission request cancelled.",
|
|
3
|
+
"admissionRequests": "Admission requests",
|
|
4
|
+
"admissionRequestsCount_one": "{{count}} admission request",
|
|
5
|
+
"admissionRequestsCount_other": "{{count}} admission requests",
|
|
6
|
+
"admit": "Admit",
|
|
7
|
+
"admitElsewhere": "Admit elsewhere",
|
|
8
|
+
"admitPatient": "Admit patient",
|
|
9
|
+
"admitting": "Admitting...",
|
|
10
|
+
"backToSearchResults": "Back to search results",
|
|
11
|
+
"bedShare": "Bed share",
|
|
12
|
+
"bedSwap": "Bed swap",
|
|
13
|
+
"cancel": "Cancel",
|
|
14
|
+
"cancelAdmissionRequest": "Cancel admission request",
|
|
15
|
+
"capacity": "Capacity",
|
|
16
|
+
"capacityMetricValue": "{{ metricValue }} %",
|
|
17
|
+
"chooseAnOption": "Choose an option",
|
|
18
|
+
"clinicalForms": "Clinical forms",
|
|
19
|
+
"clinicalNoteLabel": "Write your notes",
|
|
20
|
+
"clinicalNotes": "Clinical notes",
|
|
21
|
+
"countItems_one": "{{count}} {{item}}",
|
|
22
|
+
"countItems_other": "{{count}} {{item}}",
|
|
23
|
+
"days_one": "{{count}} day",
|
|
24
|
+
"days_other": "{{count}} days",
|
|
25
|
+
"discharge": "Discharge",
|
|
26
|
+
"emptyBed": "Empty bed",
|
|
27
|
+
"emptyText": "Empty",
|
|
28
|
+
"encounterDisplay": "{{encounterType}} {{encounterDate}}",
|
|
29
|
+
"Error cancelling admission request": "Error cancelling admission request",
|
|
30
|
+
"errorChangingPatientBedAssignment": "Error changing patient bed assignment",
|
|
31
|
+
"errorConfiguringPatientCard": "Error configuring patient card",
|
|
32
|
+
"errorConfiguringPatientCardMessage": "Unable to find configuration for {{elementType}}, id: {{id}}",
|
|
33
|
+
"errorCreatingEncounter": "Failed to admit patient",
|
|
34
|
+
"errorCreatingTransferRequest": "Error creating transfer request",
|
|
35
|
+
"errorDischargingPatient": "Error discharging patient",
|
|
36
|
+
"errorLoadingBedDetails": "Error loading bed details",
|
|
37
|
+
"errorLoadingChildren": "Error loading children info",
|
|
38
|
+
"errorLoadingMother": "Error loading mother info",
|
|
39
|
+
"errorLoadingPatientAdmissionRequests": "Error loading patient admission requests",
|
|
40
|
+
"errorLoadingPatientInfo": "Error loading patient info",
|
|
41
|
+
"errorLoadingPatients": "Error loading admitted patients",
|
|
42
|
+
"errorLoadingWardLocation": "Error loading ward location",
|
|
43
|
+
"female": "Female",
|
|
44
|
+
"fetchingEmrConfigurationFailed": "Fetching EMR configuration failed. Try refreshing the page or contact your system administrator.",
|
|
45
|
+
"fetchingPatientNotesFailed": "Fetching patient notes failed. Try refreshing the page or contact your system administrator.",
|
|
46
|
+
"freeBeds": "Free beds",
|
|
47
|
+
"freeBedsMetricValue": "{{ metricValue }}",
|
|
48
|
+
"hours_one": "{{count}} hour",
|
|
49
|
+
"hours_other": "{{count}} hours",
|
|
50
|
+
"inpatientNotesWorkspaceTitle": "In-patient notes",
|
|
51
|
+
"invalidLocationSpecified": "Invalid location specified",
|
|
52
|
+
"invalidWardLocation": "Invalid ward location: {{location}}",
|
|
53
|
+
"labelColon": "{{label}}:",
|
|
54
|
+
"male": "Male",
|
|
55
|
+
"manage": "Manage",
|
|
56
|
+
"minutes_one": "{{count}} minutes",
|
|
57
|
+
"minutes_other": "{{count}} minutes",
|
|
58
|
+
"motherChildBedShare": "Mother / Child",
|
|
59
|
+
"nextPage": "Next page",
|
|
60
|
+
"noBed": "No bed",
|
|
61
|
+
"noBedsConfigured": "No beds configured for this location",
|
|
62
|
+
"noBedsConfiguredForLocation": "No beds configured for {{location}} location",
|
|
63
|
+
"noLocationsFound": "No locations found",
|
|
64
|
+
"noPendingPatientRequests": "No pending patient requests",
|
|
65
|
+
"note": "Note",
|
|
66
|
+
"notes": "Notes",
|
|
67
|
+
"notesRequiredForCancellingRequest": "Notes required for cancelling admission or transfer request",
|
|
68
|
+
"Orders": "Orders",
|
|
69
|
+
"other": "Other",
|
|
70
|
+
"patientAdmittedButBedNotAssigned": "Patient admitted successfully but fail to assign bed to patient",
|
|
71
|
+
"patientAdmittedSuccessfully": "Patient admitted successfully",
|
|
72
|
+
"patientAdmittedSuccessfullySubtitle": "{{patientName}} has been successfully admitted and assigned to bed {{bedNumber}}",
|
|
73
|
+
"patientAdmittedWoBed": "Patient admitted successfully to {{location}}",
|
|
74
|
+
"patientAlreadyAdmittedToCurrentLocation": "Patient already admitted to current location",
|
|
75
|
+
"patientAssignedNewBed": "Patient assigned to new bed",
|
|
76
|
+
"patientAssignedNewBedDetail": "{{patientName}} assigned to bed {{bedNumber}}",
|
|
77
|
+
"patientCurrentlyAdmittedToWardLocation": "Patient currently admitted to {{wardLocation}}",
|
|
78
|
+
"patientCurrentlyNotAdmitted": "Patient currently not admitted",
|
|
79
|
+
"patienthasNoActiveVisit": "Patient has no active visit",
|
|
80
|
+
"patientHasPendingAdmissionRequest": "Patient already has a pending admission request to location {{location}}",
|
|
81
|
+
"patientNoteNowVisible": "It should be now visible in the notes history",
|
|
82
|
+
"patientNoteSaveError": "Error saving patient note",
|
|
83
|
+
"patientNotesDidntLoad": "Patient notes didn't load",
|
|
84
|
+
"patients": "Patients",
|
|
85
|
+
"patientsMetricValue": "{{ metricValue }}",
|
|
86
|
+
"patientTransferRequestCreated": "Patient transfer request created",
|
|
87
|
+
"patientUnassignedFromBed": "Patient unassigned from bed",
|
|
88
|
+
"patientUnassignedFromBedDetail": "{{patientName}} is now unassigned from bed",
|
|
89
|
+
"patientWasDischarged": "Patient was discharged",
|
|
90
|
+
"pendingDischarge": "Pending Discharge",
|
|
91
|
+
"pendingOut": "Pending out",
|
|
92
|
+
"pendingOutMetricValue": "{{ metricValue }}",
|
|
93
|
+
"pendingTransfer": "Pending Transfer",
|
|
94
|
+
"pleaseSelectBed": "Please select a bed",
|
|
95
|
+
"pleaseSelectTransferLocation": "Please select transfer location",
|
|
96
|
+
"pleaseSelectTransferType": "Please select transfer type",
|
|
97
|
+
"previousPage": "Previous page",
|
|
98
|
+
"proceedWithPatientDischarge": "Proceed with patient discharge",
|
|
99
|
+
"save": "Save",
|
|
100
|
+
"saving": "Saving...",
|
|
101
|
+
"searchLocations": "Search locations",
|
|
102
|
+
"seconds_one": "{{count}} second",
|
|
103
|
+
"seconds_other": "{{count}} seconds",
|
|
104
|
+
"selectABed": "Select a bed",
|
|
105
|
+
"selectALocation": "Select a location",
|
|
106
|
+
"showingLocations_one": "{{start}}-{{end}} of {{count}} locations",
|
|
107
|
+
"showingLocations_other": "{{start}}-{{end}} of {{count}} locations",
|
|
108
|
+
"somePartsOfTheFormDidntLoad": "Some parts of the form didn't load",
|
|
109
|
+
"timeOnWard": "Time on this ward: {{timeOnWard}}",
|
|
110
|
+
"timeSinceAdmission": "Admitted: {{timeSinceAdmission}}",
|
|
111
|
+
"transfer": "Transfer",
|
|
112
|
+
"transferElsewhere": "Transfer elsewhere",
|
|
113
|
+
"transferPatient": "Transfer patient",
|
|
114
|
+
"transferRequest": "Transfer request",
|
|
115
|
+
"transfers": "Transfers",
|
|
116
|
+
"transferToDispositionLocation": "Transfer to {{location}}",
|
|
117
|
+
"transferType": "Transfer type",
|
|
118
|
+
"typeOfTransfer": "Type of transfer",
|
|
119
|
+
"unknown": "Unknown",
|
|
120
|
+
"visitNoteSaved": "Patient note saved",
|
|
121
|
+
"wardClinicalNotePlaceholder": "Write any notes here",
|
|
122
|
+
"wards": "Wards"
|
|
123
|
+
}
|