Skip to content

Commit

Permalink
U4X-301 : Add provider tag showing the provider's name in the datatab…
Browse files Browse the repository at this point in the history
…le (#141)

* set up provider

* add provider
  • Loading branch information
jabahum authored Jan 10, 2024
1 parent 38dffd7 commit 7c0dc82
Show file tree
Hide file tree
Showing 10 changed files with 71 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -135,16 +135,21 @@ const ActiveVisitsTable: React.FC<ActiveVisitsTableProps> = ({ status }) => {
},
{
id: 2,
header: t('provider', 'Provider'),
key: 'provider',
},
{
id: 3,
header: t('status', 'Status'),
key: 'status',
},
{
id: 2,
id: 4,
header: t('waitTime', 'Wait time'),
key: 'waitTime',
},
{
id: 4,
id: 5,
header: t('actions', 'Actions'),
key: 'actions',
},
Expand All @@ -160,6 +165,9 @@ const ActiveVisitsTable: React.FC<ActiveVisitsTableProps> = ({ status }) => {
name: {
content: entry.name,
},
provider: {
content: entry.provider,
},
status: {
content: (
<span className={styles.statusContainer}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,7 @@ export async function addQueueEntry(
visitUuid: string,
queueUuid: string,
patientUuid: string,
provider: string,
priority: number,
encounter: string,
status: string,
Expand All @@ -421,7 +422,7 @@ export async function addQueueEntry(
signal: abortController.signal,
body: {
patient: patientUuid,
provider: '',
provider: provider,
locationFrom: locationUuid,
locationTo: queueUuid !== undefined ? queueUuid : 'Not Set',
status: status ? status : 'pending',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { MappedQueueEntry } from '../types';
import { ArrowUp, ArrowDown } from '@carbon/react/icons';

import styles from './change-status-dialog.scss';
import { useProviders } from '../queue-patient-linelists/queue-linelist.resource';

interface ChangeStatusDialogProps {
queueEntry: MappedQueueEntry;
Expand All @@ -34,6 +35,8 @@ const ChangeStatus: React.FC<ChangeStatusDialogProps> = ({ queueEntry, currentEn

const locations = useLocations();

const { providers } = useProviders();

const [selectedLocation, setSelectedLocation] = useState('');

const [contentSwitcherIndex, setContentSwitcherIndex] = useState(1);
Expand All @@ -53,8 +56,11 @@ const ChangeStatus: React.FC<ChangeStatusDialogProps> = ({ queueEntry, currentEn
const [selectedNextQueueLocation, setSelectedNextQueueLocation] = useState(queueRoomLocations[0]?.uuid);

const [provider, setProvider] = useState('');

const [priorityComment, setPriorityComment] = useState('');

const [selectedProvider, setSelectedProvider] = useState('');

useEffect(() => {
getCareProvider(sessionUser?.user?.systemId).then(
(response) => {
Expand Down Expand Up @@ -110,6 +116,8 @@ const ChangeStatus: React.FC<ChangeStatusDialogProps> = ({ queueEntry, currentEn

const filteredlocations = queueRoomLocations?.filter((location) => location.uuid != selectedLocation);

const filteredProviders = providers?.filter((provider) => provider !== null);

// endVisit
const endVisitStatus = useCallback(
(event) => {
Expand Down Expand Up @@ -198,6 +206,7 @@ const ChangeStatus: React.FC<ChangeStatusDialogProps> = ({ queueEntry, currentEn
queueEntry?.id,
nextQueueLocationUuid,
queueEntry?.patientUuid,
selectedProvider,
contentSwitcherIndex,
'',
'pending',
Expand Down Expand Up @@ -256,6 +265,7 @@ const ChangeStatus: React.FC<ChangeStatusDialogProps> = ({ queueEntry, currentEn
closeModal,
mutate,
contentSwitcherIndex,
selectedProvider,
selectedLocation,
currentEntry?.id,
currentEntry.patientUuid,
Expand Down Expand Up @@ -334,6 +344,24 @@ const ChangeStatus: React.FC<ChangeStatusDialogProps> = ({ queueEntry, currentEn
</ContentSwitcher>
</section>

<section className={styles.section}>
<Select
labelText={t('selectProvider', 'Select a provider')}
id="providers-list"
name="providers-list"
invalidText="Required"
value={selectedProvider}
onChange={(event) => setSelectedProvider(event.target.value)}
>
{!selectedProvider ? <SelectItem text={t('selectProvider', 'Select a provider')} value="" /> : null}
{filteredProviders.map((provider) => (
<SelectItem key={provider.uuid} text={provider.display} value={provider.uuid}>
{provider.display}
</SelectItem>
))}
</Select>
</section>

{status === 'completed' && (
<section className={styles.section}>
<Select
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ export function usePatientQueueRequest(apiUrl: string) {
...queue,
id: queue.uuid,
name: queue.patient?.person.display,
provider: queue.provider?.person.display,
patientUuid: queue.patient?.uuid,
priorityComment: queue.priorityComment,
priority: queue.priorityComment === 'Urgent' ? 'Priority' : queue.priorityComment,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ const AddVisitToQueue: React.FC<AddVisitToQueueDialogProps> = ({ visitDetails, c
visitUuid,
queueUuid,
patientUuid,
'',
priority,
'',
'pending',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,15 @@ import {
useVisitTypes,
} from '@openmrs/esm-framework';
import dayjs from 'dayjs';
import isEmpty from 'lodash-es/isEmpty';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { first } from 'rxjs/operators';
import { addQueueEntry, useVisitQueueEntries } from '../../active-visits/active-visits-table.resource';
import { amPm, convertTime12to24 } from '../../helpers/time-helpers';
import { useQueueLocations } from '../../patient-search/hooks/useQueueLocations';
import { NewVisitPayload, PatientProgram, SearchTypes } from '../../types';
import { useActivePatientEnrollment } from '../hooks/useActivePatientEnrollment';
import { useDefaultLoginLocation } from '../hooks/useDefaultLocation';
import { useQueueRoomLocations } from '../hooks/useQueueRooms';
import styles from './visit-form.scss';
import { useProviders } from '../../queue-patient-linelists/queue-linelist.resource';
interface VisitFormProps {
toggleSearchType: (searchMode: SearchTypes, patientUuid) => void;
patientUuid: string;
Expand All @@ -49,9 +46,7 @@ interface VisitFormProps {
const StartVisitForm: React.FC<VisitFormProps> = ({ patientUuid, toggleSearchType, closePanel, mode }) => {
const { t } = useTranslation();
const isTablet = useLayoutType() === 'tablet';
const locations = useLocations();
const sessionUser = useSession();

const config = useConfig() as ConfigObject;
const [contentSwitcherIndex, setContentSwitcherIndex] = useState(0);
const [isMissingVisitType, setIsMissingVisitType] = useState(false);
Expand All @@ -62,18 +57,15 @@ const StartVisitForm: React.FC<VisitFormProps> = ({ patientUuid, toggleSearchTyp
const state = useMemo(() => ({ patientUuid }), [patientUuid]);
const allVisitTypes = useVisitTypes();
const [ignoreChanges, setIgnoreChanges] = useState(true);
const { activePatientEnrollment, isLoading } = useActivePatientEnrollment(patientUuid);
const [enrollment, setEnrollment] = useState<PatientProgram>(activePatientEnrollment[0]);
const { mutate } = useVisitQueueEntries('', '');
const [selectedLocation, setSelectedLocation] = useState('');
const [visitType, setVisitType] = useState('');
const [priorityComment, setPriorityComment] = useState('');
const priorityLevels = [1, 2, 3];
const [priorityLevel, setPriorityLevel] = useState();

const { providers } = useProviders();
const { queueRoomLocations } = useQueueRoomLocations(sessionUser?.sessionLocation?.uuid);

const [selectedNextQueueLocation, setSelectedNextQueueLocation] = useState('');
const [selectedProvider, setSelectedProvider] = useState('');

useEffect(() => {
if (queueRoomLocations?.length && sessionUser) {
Expand Down Expand Up @@ -101,14 +93,15 @@ const StartVisitForm: React.FC<VisitFormProps> = ({ patientUuid, toggleSearchTyp

const filteredlocations = queueRoomLocations?.filter((location) => location.display != selectedLocation);

const filteredProviders = providers?.filter((provider) => provider !== null);

const handleSubmit = useCallback(
(event) => {
event.preventDefault();

// retrieve values from queue extension
const nextQueueLocationUuid = event?.target['nextQueueLocation']?.value;
const status = 'pending';
const level = event?.target['priority-levels']?.value;
const comment = event?.target['nextNotes']?.value;

if (!visitType) {
Expand Down Expand Up @@ -144,6 +137,7 @@ const StartVisitForm: React.FC<VisitFormProps> = ({ patientUuid, toggleSearchTyp
response.data.uuid,
nextQueueLocationUuid,
patientUuid,
selectedProvider,
contentSwitcherIndex,
'',
status,
Expand Down Expand Up @@ -195,6 +189,7 @@ const StartVisitForm: React.FC<VisitFormProps> = ({ patientUuid, toggleSearchTyp
priorityComment,
selectedLocation,
selectedNextQueueLocation,
selectedProvider,
t,
timeFormat,
visitDate,
Expand Down Expand Up @@ -239,6 +234,24 @@ const StartVisitForm: React.FC<VisitFormProps> = ({ patientUuid, toggleSearchTyp
/>
</section>

<section className={styles.section}>
<Select
labelText={t('selectProvider', 'Select a provider')}
id="providers-list"
name="providers-list"
invalidText="Required"
value={selectedProvider}
onChange={(event) => setSelectedProvider(event.target.value)}
>
{!selectedProvider ? <SelectItem text={t('selectProvider', 'Select a provider')} value="" /> : null}
{filteredProviders.map((provider) => (
<SelectItem key={provider.uuid} text={provider.display} value={provider.uuid}>
{provider.display}
</SelectItem>
))}
</Select>
</section>

<section className={styles.section}>
<TextArea
labelText={t('notes', 'Enter notes ')}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const IpdAdmissionSubmissionAction: PostSubmissionAction = {
encounter.uuid,
encounterLocation,
patient?.id,
'',
2,
encounter.uuid,
'pending',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export const LabSubmissionAction: PostSubmissionAction = {
encounter.uuid,
encounterLocation,
patient?.id,
'',
2,
encounter.uuid,
'pending',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const MedicationsSubmissionAction: PostSubmissionAction = {
encounter.uuid,
encounterLocation,
patient?.id,
'',
2,
encounter.uuid,
'pending',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const RadiologySubmissionAction: PostSubmissionAction = {
encounter.uuid,
encounterLocation,
patient?.id,
'',
2,
encounter.uuid,
'pending',
Expand Down

0 comments on commit 7c0dc82

Please sign in to comment.