import React from 'react'; import { formatDate, parseDate, useLayoutType } from '@openmrs/esm-framework'; import { useTranslation } from 'react-i18next'; import { DataTable, Table, TableHead, TableRow, TableHeader, TableBody, TableCell, DataTableSkeleton, TableContainer, TableExpandHeader, TableExpandRow, TableExpandedRow, Button, } from '@carbon/react'; import { mutate } from 'swr'; import { Renew } from '@carbon/react/icons'; import { CardHeader, EmptyState } from '@openmrs/esm-patient-common-lib'; import { usePatientImagingResults } from './imaging-resource'; import styles from './imaging-results.scss'; type ImagingResultsComponentProps = { patientUuid: string; }; const ImagingResultsComponent: React.FC = ({ patientUuid }) => { const { t } = useTranslation(); const responseSize = useLayoutType() === 'tablet' ? 'md' : 'sm'; const { orders, isLoading } = usePatientImagingResults(patientUuid); const handleRefresh = () => { mutate((key) => typeof key === 'string' && key.includes('/order?'), undefined, { revalidate: true, }); }; if (isLoading) { return ; } const headers = [ { header: t('orderNo', 'Order No'), key: 'orderNumber' }, { header: t('orderDate', 'Order Date'), key: 'orderDate' }, { header: t('orderType', 'Order Type'), key: 'orderType' }, { header: t('performer', 'Performer'), key: 'performer' }, ]; const rows = orders.map((order) => ({ id: order.uuid, orderNumber: order.orderNumber, orderDate: formatDate(parseDate(order.dateActivated), { mode: 'standard', noToday: true }), orderType: order.concept.display, performer: order.orderer.display, report: order.procedures.map((procedure) => procedure.procedureReport).join(', '), })); if (orders.length === 0) { return ( ); } return (
{({ rows, headers, getHeaderProps, getRowProps, getExpandedRowProps, getTableProps, getTableContainerProps, }) => ( {headers.map((header, i) => ( {header.header} ))} {rows.map((row, index) => ( {row.cells.map((cell) => ( {cell.value} ))}
{orders[index].procedures.map((procedure) => (

{t('findings', 'Findings')}

{procedure.procedureReport}

{t('impressions')}

{procedure.impressions}

))}
))}
)}
); }; export default ImagingResultsComponent;