Skip to content
This repository was archived by the owner on Mar 29, 2026. It is now read-only.

Commit 0be999a

Browse files
authored
Update routes json file
1 parent 4a76a9b commit 0be999a

File tree

7 files changed

+89
-41
lines changed

7 files changed

+89
-41
lines changed

packages/esm-patient-queues-app/src/active-visits/patient-queues.resource.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
import dayjs from 'dayjs';
22
import useSWR from 'swr';
3-
import { openmrsFetch, restBaseUrl, usePagination } from '@openmrs/esm-framework';
3+
import {
4+
Workspace2DefinitionProps,
5+
launchWorkspace2,
6+
openmrsFetch,
7+
restBaseUrl,
8+
usePagination,
9+
} from '@openmrs/esm-framework';
410
import { PatientQueue } from '../types/patient-queues';
511
import { NewVisitPayload, ProviderResponse } from '../types';
612
import { ResourceFilterCriteria, ResourceRepresentation, toQueryParams } from '../resource-filter-criteria';
713
import { PageableResult } from '../pageable-result';
814
import { useEffect, useState } from 'react';
915
import last from 'lodash-es/last';
16+
export const patientQueueStartVisitFormWorkspace = 'patient-queues-start-visit-form-workspace';
1017

1118
export interface PatientQueueFilter extends ResourceFilterCriteria {
1219
status?: string;
@@ -398,3 +405,26 @@ export function getPatientQueueUuid(uuid: string) {
398405
},
399406
});
400407
}
408+
409+
export const launchStartVisitForm = () => {
410+
launchWorkspace2(
411+
'patient-queues-patient-search-workspace',
412+
{
413+
initialQuery: '',
414+
workspaceTitle: 'Start Visit',
415+
onPatientSelected(
416+
patientUuid: string,
417+
patient: fhir.Patient,
418+
launchChildWorkspace: Workspace2DefinitionProps['launchChildWorkspace'],
419+
closeWorkspace: Workspace2DefinitionProps['closeWorkspace'],
420+
) {
421+
launchChildWorkspace(patientQueueStartVisitFormWorkspace, {
422+
patientUuid: patient.id,
423+
});
424+
},
425+
},
426+
{
427+
startVisitWorkspaceName: 'patient-queues-start-visit-form-workspace',
428+
},
429+
);
430+
};

packages/esm-patient-queues-app/src/active-visits/start-visit-form-button.component.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ interface StartVisitFormProps {
99

1010
const StartVisitButton: React.FC<StartVisitFormProps> = ({ patientUuid }) => {
1111
const { t } = useTranslation();
12-
1312
const handleLaunchWorkspace = () => {
1413
launchWorkspace2('patient-queues-start-visit-form-workspace', {
15-
patientUuid,
14+
patientUuid: patientUuid,
15+
showPatientHeader: true,
1616
});
1717
};
18+
1819
return (
1920
<Button onClick={handleLaunchWorkspace} aria-label={t('startAVisit', 'Start a Visit')}>
2021
{t('startAVisit', 'Start a Visit')}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import React from 'react';
2+
import { Button } from '@carbon/react';
3+
import styles from './check-in.scss';
4+
import { launchStartVisitForm } from '../../active-visits/patient-queues.resource';
5+
6+
const CheckInLauncher: React.FC = () => {
7+
8+
return (
9+
<div className={styles.launcherContainer}>
10+
<Button
11+
kind="primary"
12+
iconDescription="Check in"
13+
onClick={() => {
14+
launchStartVisitForm();
15+
}}
16+
>
17+
Check In
18+
</Button>
19+
</div>
20+
);
21+
};
22+
23+
export default CheckInLauncher;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.launcherContainer {
2+
display: flex;
3+
flex-direction: row-reverse;
4+
}

packages/esm-patient-queues-app/src/components/visit-form/start-a-visit-form.workspace.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import {
1212
InlineNotification,
1313
} from '@carbon/react';
1414
import {
15-
DefaultWorkspaceProps,
1615
ExtensionSlot,
16+
Workspace2DefinitionProps,
1717
restBaseUrl,
1818
showNotification,
1919
showSnackbar,
@@ -42,11 +42,19 @@ import {
4242
import { QueueStatus, handleMutate } from '../../utils/utils';
4343
import { type PatientQueueConfig } from '../../config-schema';
4444

45-
type VisitFormProps = DefaultWorkspaceProps & {
45+
type VisitFormProps = {
4646
patientUuid: string;
4747
};
4848

49-
const StartVisitForm: React.FC<VisitFormProps> = ({ closeWorkspace, patientUuid }) => {
49+
const StartVisitForm: React.FC<
50+
Workspace2DefinitionProps<
51+
VisitFormProps,
52+
{
53+
startVisitWorkspaceName: string;
54+
},
55+
{}
56+
>
57+
> = ({ closeWorkspace, workspaceProps: { patientUuid } }) => {
5058
const { t } = useTranslation();
5159
const isTablet = useLayoutType() === 'tablet';
5260
const sessionUser = useSession();

packages/esm-patient-queues-app/src/queue-reception-home.component.tsx

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
usePatientQueuePages,
1212
} from './active-visits/patient-queues.resource';
1313
import { useServicePointCount } from './components/patient-queue-metrics/clinic-metrics.resource';
14-
import { ExtensionSlot, useSession, closeWorkspace } from '@openmrs/esm-framework';
14+
import { useSession } from '@openmrs/esm-framework';
1515
import {
1616
buildStatusString,
1717
formatWaitTime,
@@ -44,15 +44,14 @@ import PrintActionsMenu from './active-visits/print-action-menu.components';
4444
import StatusIcon from './utils/utils';
4545
import SummaryTile from './summary-tiles/summary-tile.component';
4646
import usePatientSearchVisibility from './utils/usePatientSearchVisibility';
47+
import CheckInLauncher from './components/check-in/check-in.component';
4748

4849
const ReceptionHome: React.FC = () => {
4950
const { t } = useTranslation();
5051
const session = useSession();
5152
const { location } = useParentLocation(session?.sessionLocation?.uuid);
5253
const [tick, setTick] = useState(0);
5354

54-
const { isPatientSearchOpen, hidePatientSearch, showPatientSearch } = usePatientSearchVisibility();
55-
5655
const { stats } = useServicePointCount(
5756
location?.parentLocation?.uuid,
5857
dayjs(new Date()).format('YYYY-MM-DD'),
@@ -73,11 +72,6 @@ const ReceptionHome: React.FC = () => {
7372
setSearchTerm(searchText);
7473
}, []);
7574

76-
const handleReturnToSearchList = useCallback(() => {
77-
showPatientSearch();
78-
closeWorkspace('start-visit-form-workspace');
79-
}, [showPatientSearch]);
80-
8175
const tableHeaders = useMemo(
8276
() => [
8377
{ id: 0, header: t('visitNumber', 'Visit Number'), key: 'visitNumber' },
@@ -183,21 +177,7 @@ const ReceptionHome: React.FC = () => {
183177
<div className={styles.headerContainer}>
184178
<QueueLauncher />
185179
<div className={styles.headerButtons}>
186-
<ExtensionSlot
187-
name="patient-search-button-slot"
188-
state={{
189-
buttonText: t('checkIn', 'CheckIn'),
190-
overlayHeader: t('checkIn', 'CheckIn'),
191-
handleReturnToSearchList,
192-
hidePatientSearch,
193-
isOpen: isPatientSearchOpen,
194-
selectPatientAction: (selectedPatientUuid) => {
195-
selectedPatientUuid;
196-
hidePatientSearch();
197-
},
198-
showPatientSearch,
199-
}}
200-
/>
180+
<CheckInLauncher />
201181
</div>
202182
</div>
203183
<div>

packages/esm-patient-queues-app/src/routes.json

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
{
3131
"name": "start-visit-form-button",
3232
"component": "startVisitFormButton",
33-
"slot": "start-visit-button-slot"
33+
"slot": "start-visit-button-slot2"
3434
},
3535
{
3636
"name": "end-visit-form-button",
@@ -137,27 +137,29 @@
137137
{
138138
"name": "move-to-next-service-point-form-workspace",
139139
"component": "moveToNextServicePointFormWorkspace",
140-
"window": "patient-chart-clinical-forms"
140+
"window": "patient-queues-manage-queues-windows"
141141
},
142142
{
143-
"name": "patient-queues-start-visit-form-workspace",
144-
"component": "startVisitFormWorkspace",
145-
"window": "patient-chart-clinical-forms"
143+
"name": "patient-queues-patient-search-workspace",
144+
"component": "@openmrs/esm-patient-search-app#patientSearchWorkspace2",
145+
"window": "patient-queues-manage-queues-windows"
146146
},
147147
{
148-
"name": "patient-form-entry-workspace",
148+
"name": "patient-queues-start-visit-form-workspace",
149149
"component": "startVisitFormWorkspace",
150-
"window": "patient-chart-clinical-forms"
150+
"window": "patient-queues-manage-queues-windows"
151151
}
152152
],
153153
"workspaceWindows2": [
154154
{
155-
"name": "patient-chart-clinical-forms",
156-
"icon": "clinicalFormActionButton",
157-
"order": 3,
155+
"name": "patient-queues-manage-queues-windows",
158156
"width": "extra-wide",
159-
"group": "patient-chart",
160-
"canMaximize": true
157+
"group": "patient-queues-manage-queues-group"
158+
}
159+
],
160+
"workspaceGroups2": [
161+
{
162+
"name": "patient-queues-manage-queues-group"
161163
}
162164
]
163165
}

0 commit comments

Comments
 (0)