Skip to content

Commit e3d330b

Browse files
committed
resolve conflicts
2 parents 9a9ea3f + 923ba02 commit e3d330b

File tree

22 files changed

+484
-887
lines changed

22 files changed

+484
-887
lines changed

apps/ehr/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ehr-ui",
3-
"version": "1.22.17",
3+
"version": "1.22.19",
44
"private": true,
55
"type": "module",
66
"engines": {

apps/ehr/src/components/LocationSelect.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { ReactElement, useEffect, useMemo, useState } from 'react';
55
import { useNavigate } from 'react-router-dom';
66
import { LocationWithWalkinSchedule } from 'src/pages/AddPatient';
77
import { isLocationVirtual } from 'utils';
8+
import { getAllFhirSearchPages } from 'utils/lib/fhir/getAllFhirSearchPages';
89
import { dataTestIds } from '../constants/data-test-ids';
910
import { sortLocationsByLabel } from '../helpers';
1011
import { useApiClients } from '../hooks/useAppClients';
@@ -61,15 +62,13 @@ export default function LocationSelect({
6162
setLoadingState(LoadingState.loading);
6263

6364
try {
64-
const searchResults = (
65-
await oystehr.fhir.search<Location | Schedule>({
65+
const searchResults = await getAllFhirSearchPages<Location | Schedule>(
66+
{
6667
resourceType: 'Location',
67-
params: [
68-
{ name: '_count', value: '1000' },
69-
{ name: '_revinclude', value: 'Schedule:actor:Location' },
70-
],
71-
})
72-
).unbundle();
68+
params: [{ name: '_revinclude', value: 'Schedule:actor:Location' }],
69+
},
70+
oystehr
71+
);
7372
const locationsResults = searchResults.filter(
7473
(loc) => loc.resourceType === 'Location' && !isLocationVirtual(loc)
7574
);

apps/ehr/src/features/visits/in-person/components/medication-administration/medication-editable-card/EditableMedicationCard.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ export const EditableMedicationCard: React.FC<{
500500
setInteractionsCheckState({
501501
status: 'done',
502502
medicationId: localValues.medicationId,
503+
medicationName: interactionsCheckState.medicationName,
503504
interactions,
504505
});
505506
}}

apps/ehr/src/features/visits/in-person/layout/InPersonLayout.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Mic } from '@mui/icons-material';
22
import { Container, Fab, Paper } from '@mui/material';
33
import React from 'react';
44
import { Outlet } from 'react-router-dom';
5-
import { getAdmitterPractitionerId } from 'utils';
5+
import { getAdmitterPractitionerId, getAttendingPractitionerId } from 'utils';
66
import { Sidebar } from '../../shared/components/Sidebar';
77
import { useGetAppointmentAccessibility } from '../../shared/hooks/useGetAppointmentAccessibility';
88
import { useResetAppointmentStore } from '../../shared/hooks/useResetAppointmentStore';
@@ -44,6 +44,7 @@ export const InPersonLayout: React.FC = () => {
4444
useResetAppointmentStore();
4545
const { chartData } = useChartData({ shouldUpdateExams: true });
4646
const assignedIntakePerformerId = getAdmitterPractitionerId(encounter);
47+
const assignedProviderId = getAttendingPractitionerId(encounter);
4748

4849
return (
4950
<div style={layoutStyle}>
@@ -92,12 +93,12 @@ export const InPersonLayout: React.FC = () => {
9293
padding: '20px 20px 24px 20px',
9394
}}
9495
>
95-
{isFollowup || assignedIntakePerformerId ? (
96+
{(isFollowup || assignedIntakePerformerId) && assignedProviderId ? (
9697
<>
9798
<Outlet />
9899
</>
99100
) : (
100-
<InfoAlert text="Select an intake performer in order to begin charting." persistent />
101+
<InfoAlert text="Select an intake performer and a provider in order to begin charting." persistent />
101102
)}
102103
</div>
103104
<BottomNavigation />

apps/ehr/src/features/visits/shared/components/assessment-tab/MedicalDecisionField.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,11 @@ export const MedicalDecisionField: FC<MedicalDecisionFieldProps> = ({ loading, s
2626
});
2727

2828
useEffect(() => {
29-
if (!methods.getValues('medicalDecision') && chartData?.medicalDecision?.text) {
30-
methods.setValue('medicalDecision', chartData.medicalDecision.text);
29+
const newValue = chartData?.medicalDecision?.text || '';
30+
const currentValue = methods.getValues('medicalDecision');
31+
32+
if (newValue !== currentValue) {
33+
methods.setValue('medicalDecision', newValue);
3134
}
3235
}, [chartData?.medicalDecision?.text, methods]);
3336

apps/ehr/src/pages/VisitDetailsPage.tsx

Lines changed: 13 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import { useParams } from 'react-router-dom';
3232
import {
3333
createZ3Object,
3434
generatePaperworkPdf,
35-
getOrCreateVisitDetailsPdf,
3635
getPatientVisitDetails,
3736
getPatientVisitFiles,
3837
updatePatientVisitDetails,
@@ -200,7 +199,6 @@ export default function VisitDetailsPage(): ReactElement {
200199
const [toastType, setToastType] = React.useState<AlertColor | undefined>(undefined);
201200
const [snackbarOpen, setSnackbarOpen] = React.useState<boolean>(false);
202201
const [paperworkPdfLoading, setPaperworkPdfLoading] = React.useState<boolean>(false);
203-
const [visitDetailsPdfLoading, setVisitDetailsPdfLoading] = React.useState<boolean>(false);
204202

205203
const [consentAttested, setConsentAttested] = useState<boolean | null>(null);
206204

@@ -739,26 +737,6 @@ export default function VisitDetailsPage(): ReactElement {
739737
}
740738
};
741739

742-
const downloadVisitDetailsPdf = async (): Promise<void> => {
743-
if (!appointmentID) {
744-
enqueueSnackbar('No appointment ID found.', { variant: 'error' });
745-
return;
746-
}
747-
748-
setVisitDetailsPdfLoading(true);
749-
750-
try {
751-
const response = await getOrCreateVisitDetailsPdf(oystehrZambda!, {
752-
appointmentId: appointmentID,
753-
});
754-
await downloadDocument(response.documentReference.split('/')[1]);
755-
} catch (error) {
756-
console.error(error);
757-
enqueueSnackbar('Failed to generate PDF.', { variant: 'error' });
758-
} finally {
759-
setVisitDetailsPdfLoading(false);
760-
}
761-
};
762740
return (
763741
<PageContainer>
764742
<>
@@ -783,21 +761,19 @@ export default function VisitDetailsPage(): ReactElement {
783761
]}
784762
/>
785763
</Grid>
786-
<Grid item container xs={6} justifyContent="flex-end">
787-
<LoadingButton
788-
variant="outlined"
789-
sx={{
790-
borderRadius: '20px',
791-
textTransform: 'none',
792-
}}
793-
loading={visitDetailsPdfLoading}
794-
color="primary"
795-
disabled={isLoadingDocuments || !encounter?.id}
796-
onClick={downloadVisitDetailsPdf}
797-
>
798-
Visit Details PDF
799-
</LoadingButton>
800-
</Grid>
764+
<LoadingButton
765+
variant="outlined"
766+
sx={{
767+
borderRadius: '20px',
768+
textTransform: 'none',
769+
}}
770+
loading={paperworkPdfLoading}
771+
color="primary"
772+
disabled={isLoadingDocuments || !patient?.id}
773+
onClick={downloadPaperworkPdf}
774+
>
775+
Paperwork PDF
776+
</LoadingButton>
801777
</Grid>
802778
{/* page title row */}
803779
<Grid container direction="row" marginTop={1}>
@@ -1213,19 +1189,6 @@ export default function VisitDetailsPage(): ReactElement {
12131189
<Grid container direction="row">
12141190
<Grid item sx={{ marginLeft: { xs: 0, sm: 8 }, marginTop: 2, marginBottom: 50 }}>
12151191
<Stack direction="row" spacing={1} useFlexGap>
1216-
<LoadingButton
1217-
variant="outlined"
1218-
sx={{
1219-
borderRadius: '20px',
1220-
textTransform: 'none',
1221-
}}
1222-
loading={paperworkPdfLoading}
1223-
color="primary"
1224-
disabled={isLoadingDocuments || !patient?.id}
1225-
onClick={downloadPaperworkPdf}
1226-
>
1227-
Patient Paperwork PDF
1228-
</LoadingButton>
12291192
<LoadingButton
12301193
loading={activityLogsLoading}
12311194
variant="outlined"

apps/ehr/tests/e2e/specs/in-person/inHouseMedicationsPage.spec.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import { BrowserContext, Page, test } from '@playwright/test';
22
import { DateTime } from 'luxon';
33
import { InPersonHeader } from 'tests/e2e/page/InPersonHeader';
44
import { SideMenu } from 'tests/e2e/page/SideMenu';
5-
import { getFirstName, getLastName } from 'utils';
5+
import { getFirstName, getLastName, MEDICATION_IDENTIFIER_NAME_SYSTEM } from 'utils';
6+
import InHouseMedicationsConfig from '../../../../../../config/oystehr/in-house-medications.json' assert { type: 'json' };
67
import { ResourceHandler } from '../../../e2e-utils/resource-handler';
78
import { DIAGNOSIS_EMPTY_VALUE, Field, ORDERED_BY_EMPTY_VALUE } from '../../page/EditMedicationCard';
89
import { InHouseMedicationsPage } from '../../page/in-person/InHouseMedicationsPage';
@@ -19,18 +20,33 @@ const resourceHandler = new ResourceHandler(PROCESS_ID, 'in-person');
1920

2021
// cSpell:disable-next inversus
2122
const DIAGNOSIS = 'Situs inversus';
22-
const MEDICATION = 'Acetaminophen (80mg Suppository)';
23-
const MEDICATION_FOR_ADMINISTERED = 'Albuterol';
24-
const MEDICATION_FOR_PARTLY_ADMINISTERED = 'Amoxicillin';
25-
const MEDICATION_FOR_NOT_ADMINISTERED = 'Ventolin HFA';
23+
const MEDICATION =
24+
InHouseMedicationsConfig.fhirResources.MEDICATION_ACETAMINOPHEN_80mg_SUPPOSITORY.resource.identifier.find(
25+
(coding) => coding.system === MEDICATION_IDENTIFIER_NAME_SYSTEM
26+
)?.value || '';
27+
const MEDICATION_FOR_ADMINISTERED =
28+
InHouseMedicationsConfig.fhirResources.MEDICATION_ALBUTEROL.resource.identifier.find(
29+
(coding) => coding.system === MEDICATION_IDENTIFIER_NAME_SYSTEM
30+
)?.value || '';
31+
const MEDICATION_FOR_PARTLY_ADMINISTERED =
32+
InHouseMedicationsConfig.fhirResources.MEDICATION_AMOXICILLIN.resource.identifier.find(
33+
(coding) => coding.system === MEDICATION_IDENTIFIER_NAME_SYSTEM
34+
)?.value || '';
35+
const MEDICATION_FOR_NOT_ADMINISTERED =
36+
InHouseMedicationsConfig.fhirResources.MEDICATION_VENTOLIN_HFA.resource.identifier.find(
37+
(coding) => coding.system === MEDICATION_IDENTIFIER_NAME_SYSTEM
38+
)?.value || '';
2639

2740
const DOSE = '2';
2841
const UNITS = 'mg';
2942
const MANUFACTURER = 'Test';
3043
const ROUTE = 'Sublingual route';
3144
const INSTRUCTIONS = 'Instructions';
3245

33-
const NEW_MEDICATION = 'Acetaminophen (325mg Suppository)';
46+
const NEW_MEDICATION =
47+
InHouseMedicationsConfig.fhirResources.MEDICATION_ACETAMINOPHEN_325mg_SUPPOSITORY.resource.identifier.find(
48+
(coding) => coding.system === MEDICATION_IDENTIFIER_NAME_SYSTEM
49+
)?.value || '';
3450
const NEW_DOSE = '1';
3551
const NEW_UNITS = 'g';
3652
const NEW_MANUFACTURER = 'Edited test';

apps/intake/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "intake-ui",
3-
"version": "1.22.17",
3+
"version": "1.22.19",
44
"private": true,
55
"type": "module",
66
"scripts": {

0 commit comments

Comments
 (0)