Skip to content

Commit 65853ad

Browse files
authored
(feat) U4X-741 : Add Feature in patient queues to toggle viewing of all patients queued in the parent location with tag clinical room (#258)
(feat) U4X-741 : Add Feature in patient queues to toggle viewing of all patients queued in the parent location with tag clinical room (#258)
1 parent b12cca3 commit 65853ad

File tree

4 files changed

+59
-37
lines changed

4 files changed

+59
-37
lines changed

packages/esm-patient-queues-app/src/active-visits/active-visits-table.component.tsx

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,11 @@ import StatusIcon from '../queue-entry-table-components/status-icon.component';
3232
import { getOriginFromPathName } from './active-visits-table.resource';
3333
import styles from './active-visits-table.scss';
3434
import EditActionsMenu from './edit-action-menu.components';
35-
import { usePatientQueuesList } from './patient-queues.resource';
35+
import { useParentLocation, usePatientQueuesList } from './patient-queues.resource';
3636
import PickPatientActionMenu from '../queue-entry-table-components/pick-patient-queue-entry-menu.component';
3737
import ViewActionsMenu from './view-action-menu.components';
3838
import NotesActionsMenu from './notes-action-menu.components';
3939
import { PRIVILEGE_ENABLE_EDIT_DEMOGRAPHICS } from '../constants';
40-
import PatientSearch from '../patient-search/patient-search.component';
4140
import { QueueStatus } from '../utils/utils';
4241
import MovetoNextPointAction from './move-patient-to-next-action-menu.components';
4342

@@ -54,18 +53,18 @@ const ActiveVisitsTable: React.FC<ActiveVisitsTableProps> = ({ status }) => {
5453
const { t } = useTranslation();
5554
const session = useSession();
5655
const layout = useLayoutType();
56+
const [isToggled, setIsToggled] = useState(false);
5757

58-
const { patientQueueEntries, isLoading } = usePatientQueuesList(
59-
session?.sessionLocation?.uuid,
60-
status,
61-
session.user.systemId,
62-
);
58+
const handleToggleChange = () => {
59+
setIsToggled(!isToggled);
60+
};
61+
const { location } = useParentLocation(session?.sessionLocation?.uuid);
62+
63+
const activeLocationUuid = isToggled ? location?.parentLocation?.uuid : session?.sessionLocation?.uuid;
64+
65+
const { patientQueueEntries, isLoading } = usePatientQueuesList(activeLocationUuid || '', status, isToggled);
6366

64-
const [showOverlay, setShowOverlay] = useState(false);
65-
const [view, setView] = useState('');
66-
const [viewState, setViewState] = useState<{ selectedPatientUuid: string }>(null);
6767
const [searchTerm, setSearchTerm] = useState('');
68-
const [overlayHeader, setOverlayTitle] = useState('');
6968

7069
const currentPathName: string = window.location.pathname;
7170
const fromPage: string = getOriginFromPathName(currentPathName);
@@ -227,17 +226,34 @@ const ActiveVisitsTable: React.FC<ActiveVisitsTableProps> = ({ status }) => {
227226
>
228227
{({ rows, headers, getHeaderProps, getTableProps, getRowProps }) => (
229228
<TableContainer className={styles.tableContainer}>
230-
<TableToolbar style={{ position: 'static', height: '3rem', overflow: 'visible', backgroundColor: 'color' }}>
231-
<TableToolbarContent className={styles.toolbarContent}>
232-
<Layer className={styles.toolbarContentLayer}>
233-
<TableToolbarSearch
234-
expanded
235-
className={styles.search}
236-
onChange={handleSearchInputChange}
237-
placeholder={t('searchThisList', 'Search this list')}
238-
size="sm"
239-
/>
240-
</Layer>
229+
<TableToolbar
230+
style={{
231+
position: 'static',
232+
overflow: 'visible',
233+
backgroundColor: 'color',
234+
}}
235+
>
236+
<TableToolbarContent
237+
style={{
238+
display: 'flex',
239+
alignItems: 'center',
240+
}}
241+
>
242+
<TableToolbarSearch
243+
expanded
244+
className={styles.search}
245+
onChange={handleSearchInputChange}
246+
placeholder={t('searchThisList', 'Search this list')}
247+
size="sm"
248+
/>
249+
<Toggle
250+
className={styles.toggle}
251+
labelA="Off"
252+
labelB="On"
253+
id="toggle-1"
254+
toggled={isToggled}
255+
onToggle={handleToggleChange}
256+
/>
241257
</TableToolbarContent>
242258
</TableToolbar>
243259
<Table {...getTableProps()} className={styles.activeVisitsTable}>
@@ -292,16 +308,6 @@ const ActiveVisitsTable: React.FC<ActiveVisitsTableProps> = ({ status }) => {
292308
</TableContainer>
293309
)}
294310
</DataTable>
295-
{showOverlay && (
296-
<PatientSearch
297-
view={view}
298-
closePanel={() => setShowOverlay(false)}
299-
viewState={{
300-
selectedPatientUuid: viewState.selectedPatientUuid,
301-
}}
302-
headerTitle={overlayHeader}
303-
/>
304-
)}
305311
</div>
306312
);
307313
};

packages/esm-patient-queues-app/src/active-visits/active-visits-table.scss

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,16 @@
119119
}
120120
}
121121

122+
.tableFilter {
123+
display: flex;
124+
flex-direction: row;
125+
margin: 4rem;
126+
}
127+
128+
.toggle {
129+
margin: 2rem;
130+
}
131+
122132
.emptyRow {
123133
padding: 0 1rem;
124134
display: flex;

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,18 @@ export interface ChildLocation {
8686
links: Link[];
8787
}
8888

89-
export function usePatientQueuesList(currentQueueLocationUuid: string, status: string, provider: string) {
90-
const apiUrl = `/ws/rest/v1/patientqueue?v=full&status=${status}&room=${currentQueueLocationUuid}`;
91-
return usePatientQueueRequest(apiUrl, provider);
89+
export function usePatientQueuesList(currentQueueLocationUuid: string, status: string, isToggled: boolean) {
90+
let url = '';
91+
92+
if (isToggled) {
93+
url = `/ws/rest/v1/patientqueue?v=full&status=${status}&parentLocation=${currentQueueLocationUuid}`;
94+
} else {
95+
url = `/ws/rest/v1/patientqueue?v=full&status=${status}&room=${currentQueueLocationUuid}`;
96+
}
97+
return usePatientQueueRequest(url);
9298
}
9399

94-
export function usePatientQueueRequest(apiUrl: string, provider) {
100+
export function usePatientQueueRequest(apiUrl: string) {
95101
const { data, error, isLoading, isValidating, mutate } = useSWR<{ data: { results: Array<PatientQueue> } }, Error>(
96102
apiUrl,
97103
openmrsFetch,

packages/esm-patient-queues-app/src/queue-board/queue-board.resource.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { useEffect, useState } from 'react';
77

88
export function usePatientQueuesListByStatus(status: string) {
99
const apiUrl = `/ws/rest/v1/patientqueue?v=full&status=${status}`;
10-
return usePatientQueueRequest(apiUrl, '');
10+
return usePatientQueueRequest(apiUrl);
1111
}
1212

1313
export function usePatientQueuesByParentLocation(status: string) {

0 commit comments

Comments
 (0)