import React from 'react'; import { useTranslation } from 'react-i18next'; import { ExtensionSlot, formatDate, parseDate, showModal } from '@openmrs/esm-framework'; import { type ListOrdersDetailsProps } from './grouped-imaging-types'; import { Accordion, AccordionItem, Button, StructuredListBody, StructuredListCell, StructuredListRow, StructuredListWrapper, Tag, TextArea, InlineLoading, } from '@carbon/react'; import { Printer } from '@carbon/react/icons'; import capitalize from 'lodash-es/capitalize'; import ActionButton from './action-button/action-button.component'; import styles from './list-order-details.scss'; import usePatientDiagnosis from './list-order-details.resource'; const ListOrderDetails: React.FC = ({ groupedOrders, showActions, actions }) => { const { t } = useTranslation(); const orders = groupedOrders?.orders || []; const patientUuid = orders[0]?.patient?.uuid; const { diagnoses, isLoading } = usePatientDiagnosis(patientUuid); if (isLoading) { return ; } return (
{orders.map((row) => (
{t('orderNumbers', 'Order number:')} {row.orderNumber} {t('orderDate', 'Order date:')} {row.dateActivated ? formatDate(parseDate(row.dateActivated)) : '--'}
{t('orderStatus', 'Status:')} {capitalize(row.fulfillerStatus) || t('orderNotPicked', 'Order not picked')}
{t('diagnosis', 'Diagnosis: ')} {diagnoses.length > 0 ? ( diagnoses.map((diagnosis) => ( {diagnosis.text ? capitalize(diagnosis.text) : t('noDiagnosis', 'No available diagnosis')} )) ) : ( {t('noDiagnosis', 'No available diagnosis')} )} {t('urgencyStatus', 'Urgency: ')} {capitalize(row.urgency || '--')}
{t('testOrdered', 'Test ordered')} {capitalize(row.display || '--')} {t('orderInStruction', 'Instructions')} {capitalize(row.instructions) || ( {t('NoInstructionLeft', 'No instructions are provided.')} )} {t('orderReason', 'Order reason ')} {capitalize(row.orderReasonNonCoded || '--')} {row.isApproved && row.procedures?.[0]?.procedureReport && ( {t('viewReport', 'View Report')}}>