import React from 'react'; import { useTranslation } from 'react-i18next'; import { SkeletonText } from '@carbon/react'; import { useConfig } from '@openmrs/esm-framework'; import { type Observation } from './visit.resource'; import styles from './styles.scss'; interface EncounterObservationsProps { observations: Array; } const EncounterObservations: React.FC = ({ observations }) => { const { t } = useTranslation(); const { obsConceptUuidsToHide = [] } = useConfig(); function getAnswerFromDisplay(display: string): string { const colonIndex = display.indexOf(':'); if (colonIndex === -1) { return ''; } else { return display.substring(colonIndex + 1).trim(); } } if (!observations) { return ; } if (observations) { const filteredObservations = !!obsConceptUuidsToHide.length ? observations?.filter((obs) => { return !obsConceptUuidsToHide.includes(obs?.concept?.uuid); }) : observations; return (
{filteredObservations?.map((obs, index) => { if (obs.groupMembers) { return ( {obs.concept.display} {obs.groupMembers.map((member) => ( {member.concept.display} {getAnswerFromDisplay(member.display)} ))} ); } else { return ( {obs.concept.display} {getAnswerFromDisplay(obs.display)} ); } })}
); } return (

{t('noObservationsFound', 'No observations found')}

); }; export default EncounterObservations;