import React from 'react'; import styles from './program-summary.scss'; import { useProgramSummary } from '../hooks/useProgramSummary'; import { useTranslation } from 'react-i18next'; import { formatDate, useLayoutType } from '@openmrs/esm-framework'; import { StructuredListSkeleton, Tile } from '@carbon/react'; import { ProgramType, RegimenType } from '../types'; import RegimenButton from '../regimen-editor/regimen-button.component'; import { useRegimenEncounter } from '../hooks/useRegimenEncounter'; export interface ProgramSummaryProps { patientUuid: string; programName: string; } const ProgramSummary: React.FC = ({ patientUuid, programName }) => { const { data, isError, isLoading } = useProgramSummary(patientUuid); const { t } = useTranslation(); const { regimenEncounter } = useRegimenEncounter(RegimenType[programName], patientUuid); const isTablet = useLayoutType() == 'tablet'; if (isLoading) { return ; } if (isError) { return {t('errorProgramSummary', 'Error loading HIV summary')}; } if (Object.keys(data ?? {})?.length === 0) { return; } if (Object.keys(data ?? {}).length > 0) { return ( <> {Object.entries(data).map(([key, val]) => key == ProgramType.HIV && programName == ProgramType.HIV ? (

{t('currentStatus', 'Current status')}

{t('lastViralLoad', 'Last viral load')}

{' '} {data?.HIV?.ldlValue ? data?.HIV?.ldlValue : '--'} {data?.HIV?.ldlDate ? ({formatDate(new Date(data?.HIV?.ldlDate))}) : ''}

{t('lastCd4Count', 'Last CD4 count')}

{data?.HIV?.cd4 ? data?.HIV?.cd4 : '--'} {data?.HIV?.cd4Date ? ({formatDate(new Date(data?.HIV?.cd4Date))}) : ''}

{t('CD4Percentage', 'CD4 percentage')}

{data?.HIV?.cd4Percent ? data?.HIV?.cd4Percent : '--'} {data?.HIV?.cd4PercentDate ? ( ({formatDate(new Date(data?.HIV?.cd4PercentDate))}) ) : ( '' )}

{t('lastWhoStage', 'Last WHO stage')}

{t('whoStage', 'WHO STAGE')} {data?.HIV?.whoStage ? data?.HIV?.whoStage : '--'} {data?.HIV?.whoStageDate ? ({formatDate(new Date(data?.HIV?.whoStageDate))}) : ''}

{t('regimen', 'Regimen')}

{data?.HIV?.lastEncDetails?.regimenShortDisplay ? data?.HIV?.lastEncDetails?.regimenShortDisplay : t('neverOnArvRegimen', 'Never on ARVs')}

{t('regimenStartDate', ' Date started regimen')}

{data?.HIV?.lastEncDetails?.startDate ? formatDate(new Date(data?.HIV?.lastEncDetails?.startDate)) : '--'}

) : key == ProgramType.TB && programName == ProgramType.TB ? (

{t('currentStatus', 'Current status')}

{t('treatmentNumber:', 'Treatment number')}

{data?.TB?.tbTreatmentNumber ? data?.TB?.tbTreatmentNumber : '--'}

{t('diseaseClassification', 'Disease classification')}

{data?.TB?.tbDiseaseClassification ? data?.TB?.tbDiseaseClassification : '--'} {data?.TB?.tbDiseaseClassificationDate ? ( ({formatDate(new Date(data?.TB?.tbDiseaseClassificationDate.toString()))}) ) : ( '' )}

{t('patientClassification', 'Patient classification')}

{data?.TB?.tbPatientClassification ? data?.TB?.tbPatientClassification : '--'}

{t('regimen', 'Regimen')}

{data?.TB?.lastTbEncounter ? data?.TB?.lastTbEncounter?.regimenShortDisplay : t('neverOnTbRegimen', 'Never on TB regimen')}

{t('regimenStartDate', ' Date started regimen')}

{data?.TB?.lastTbEncounter?.startDate ? formatDate(new Date(data?.TB?.lastTbEncounter?.startDate)) : '--'}

) : key == ProgramType.MCHMOTHER && programName == ProgramType.MCHMOTHER ? (

{t('currentStatus', 'Current status')}

{t('hivStatus:', 'HIV status')}

{data?.mchMother?.hivStatus ? data?.mchMother?.hivStatus : '--'} {data?.mchMother?.hivStatusDate ? ( ({formatDate(new Date(data?.mchMother?.hivStatusDate))}) ) : ( '' )}

{t('onART', 'On ART')}

{data?.mchMother?.onHaart ? data?.mchMother?.onHaart : '--'} {data?.mchMother?.onHaartDate ? ( ({formatDate(new Date(data?.mchMother?.onHaartDate))}) ) : ( '' )}

) : key == ProgramType.MCHCHILD && programName == ProgramType.MCHCHILD ? (

{t('currentStatus', 'Current status')}

{t('currentProphylaxisUsed:', 'Current prophylaxis used')}

{data?.mchChild?.currentProphylaxisUsed ? data?.mchChild?.currentProphylaxisUsed : '--'} {data?.mchChild?.currentProphylaxisUsedDate ? ( {formatDate(new Date(data?.mchChild?.currentProphylaxisUsedDate))} ) : ( '' )}

{t('currentFeedingOption', 'Current feeding option')}

{data?.mchChild?.currentFeedingOption ? data?.mchChild?.currentFeedingOption : '--'} {data?.mchChild?.currentFeedingOptionDate ? ( {formatDate(new Date(data?.mchChild?.currentFeedingOptionDate))} ) : ( '' )}

{t('milestonesAttained', 'Milestones Attained')}

{data?.mchChild?.milestonesAttained ? data?.mchChild?.milestonesAttained : '--'} {data?.mchChild?.milestonesAttainedDate ? ( {formatDate(new Date(data?.mchChild?.milestonesAttainedDate))} ) : ( '' )}

{t('heiOutcome', 'HEI Outcome')}

{data?.mchChild?.heiOutcome ? data?.mchChild?.heiOutcome : '--'} {data?.mchChild?.heiOutcomeDate ? ( ({formatDate(new Date(data?.mchChild?.heiOutcomeDate))}) ) : ( '' )}

{t('hivStatus', 'HIV Status')}

{data?.mchChild?.hivStatus ? data?.mchChild?.hivStatus : '--'} {data?.mchChild?.hivStatusDate ? ( ({formatDate(new Date(data?.mchChild?.hivStatusDate))}) ) : ( '' )}

) : null, )} ); } }; export default ProgramSummary;