Skip to content

Commit d1f0dd9

Browse files
authored
Merge pull request #5355 from masslight/bholyshevskyi/host-409-ehr-extra-language-options-displayed-in-preferred-language
EHR. Filter language options by presence in the questionnaire
2 parents 551038e + 906fe92 commit d1f0dd9

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

apps/ehr/src/features/visits/shared/components/patient/PatientDetailsContainer.tsx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Box, Divider, MenuItem, Select, Stack, Typography, useTheme } from '@mui/material';
2-
import { HumanName, Patient } from 'fhir/r4b';
2+
import { HumanName, Patient, QuestionnaireItem } from 'fhir/r4b';
33
import { FC, useState } from 'react';
44
import { Controller, useFormContext } from 'react-hook-form';
55
import { FormSelect, FormTextField } from 'src/components/form';
@@ -14,6 +14,7 @@ import {
1414
} from 'src/constants';
1515
import { dataTestIds } from 'src/constants/data-test-ids';
1616
import { LANGUAGE_OPTIONS, REQUIRED_FIELD_ERROR_MESSAGE } from 'utils';
17+
import inPersonIntakeQuestionnaire from '../../../../../../../../config/oystehr/in-person-intake-questionnaire.json';
1718
import ShowMoreButton from './ShowMoreButton';
1819

1920
const FormFields = AllFormFields.patientDetails;
@@ -35,6 +36,13 @@ export const PatientDetailsContainer: FC<PatientDetailsContainerProps> = ({ pati
3536
const isNonBinaryGender = genderIdentityCurrentValue === 'Non-binary gender identity';
3637
const languageValue = watch(FormFields.language.key);
3738

39+
const questionnaireLanguageOptions =
40+
(
41+
Object.values(inPersonIntakeQuestionnaire.fhirResources)[0]
42+
.resource.item.find((item) => item.linkId === 'patient-details-page')
43+
?.item.find((item) => item.linkId === 'preferred-language') as QuestionnaireItem | undefined
44+
)?.answerOption?.map((option) => option.valueString) ?? [];
45+
3846
return (
3947
<Section title="Patient details">
4048
<Row label="Previous name">
@@ -199,11 +207,13 @@ export const PatientDetailsContainer: FC<PatientDetailsContainerProps> = ({ pati
199207
sx={{ width: '100%' }}
200208
data-testid={dataTestIds.patientDetailsContainer.preferredLanguage}
201209
>
202-
{Object.entries(LANGUAGE_OPTIONS).map(([key, value]) => (
203-
<MenuItem key={value} value={value}>
204-
{key}
205-
</MenuItem>
206-
))}
210+
{Object.entries(LANGUAGE_OPTIONS)
211+
.filter(([_key, value]) => questionnaireLanguageOptions.includes(value))
212+
.map(([key, value]) => (
213+
<MenuItem key={value} value={value}>
214+
{key}
215+
</MenuItem>
216+
))}
207217
</Select>
208218
)}
209219
/>

0 commit comments

Comments
 (0)