From 7eb7073bda7fe49f36ebfa71db24fe27db0c5780 Mon Sep 17 00:00:00 2001 From: Jabar Jeremy <24471994+jabahum@users.noreply.github.com> Date: Mon, 27 Nov 2023 10:21:30 +0300 Subject: [PATCH] Ft/reject-order-setup (#16) * ft : reject order setup * ft : add reject order submission * fix : reject order --- src/index.ts | 5 + .../laboratory-patient-list.component.tsx | 37 +++++- .../reject-order-dialog.component.tsx | 114 ++++++++++++++++++ .../reject-order-dialog.resource.ts | 14 +++ src/reject-order/reject-order-dialog.scss | 14 +++ src/routes.json | 4 + src/work-list/work-list.component.tsx | 47 ++++++-- 7 files changed, 225 insertions(+), 10 deletions(-) create mode 100644 src/reject-order/reject-order-dialog.component.tsx create mode 100644 src/reject-order/reject-order-dialog.resource.ts create mode 100644 src/reject-order/reject-order-dialog.scss diff --git a/src/index.ts b/src/index.ts index e42a09e1..8ef22254 100644 --- a/src/index.ts +++ b/src/index.ts @@ -82,6 +82,11 @@ export const reviewItemDialog = getAsyncLifecycle( options ); +export const rejectOrderDialog = getAsyncLifecycle( + () => import("./reject-order/reject-order-dialog.component"), + options +); + export function startupApp() { defineConfigSchema(moduleName, configSchema); } diff --git a/src/queue-list/laboratory-patient-list.component.tsx b/src/queue-list/laboratory-patient-list.component.tsx index 8215e5d8..a691eac0 100644 --- a/src/queue-list/laboratory-patient-list.component.tsx +++ b/src/queue-list/laboratory-patient-list.component.tsx @@ -1,7 +1,6 @@ -import React, { useEffect, useMemo, useState } from "react"; +import React, { useCallback, useEffect, useMemo, useState } from "react"; import { DataTable, - DataTableHeader, DataTableSkeleton, Pagination, Table, @@ -21,13 +20,17 @@ import { Tag, TableExpandedRow, Tile, + Button, } from "@carbon/react"; +import { TrashCan } from "@carbon/react/icons"; + import { useTranslation } from "react-i18next"; import { age, formatDate, formatDatetime, parseDate, + showModal, usePagination, useSession, } from "@openmrs/esm-framework"; @@ -51,6 +54,10 @@ import { EmptyState } from "@openmrs/esm-patient-common-lib"; interface LaboratoryPatientListProps {} +interface RejectOrderProps { + order: string; +} + const LaboratoryPatientList: React.FC = () => { const { t } = useTranslation(); const session = useSession(); @@ -71,16 +78,33 @@ const LaboratoryPatientList: React.FC = () => { currentPage, } = usePagination(patientQueueEntries, currentPageSize); + const RejectOrder: React.FC = ({ order }) => { + const launchRejectOrderModal = useCallback(() => { + const dispose = showModal("reject-order-dialog", { + closeModal: () => dispose(), + order, + }); + }, [order]); + return ( +