Skip to content

Commit

Permalink
(feat) added ability send back patient to new queue
Browse files Browse the repository at this point in the history
  • Loading branch information
its-kios09 committed Sep 18, 2024
1 parent 9d02db3 commit 8865b27
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/common/groupedOrdersTable.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import {
import ListOrderDetails from "./listOrderDetails.component";
import Overlay from "../components/overlay/overlay.component";
import { GroupedOrdersTableProps, OrderStatusFilterType } from "../types";
import TransitionLatestQueueEntryButton from "../procedures-ordered/transition-patient-new-queue/transition-latest-queue-entry-button.component";

// render Grouped by patient Orders in procedures app
const GroupedOrdersTable: React.FC<GroupedOrdersTableProps> = (props) => {
Expand Down Expand Up @@ -102,13 +103,26 @@ const GroupedOrdersTable: React.FC<GroupedOrdersTableProps> = (props) => {
patientName: patient.orders[0].patient?.display?.split("-")[1],
orders: patient.orders,
totalOrders: patient.orders?.length,
fulfillerStatus: patient.orders[0].fulfillerStatus,
action:
patient.orders[0].fulfillerStatus === "COMPLETED" ? (
<TransitionLatestQueueEntryButton patientUuid={patient.patientId} />
) : null,
}));
}, [paginatedResults]);

const showActionColumn = filteredEntries.some(
(order) => order.fulfillerStatus === "COMPLETED"
);

const tableColumns = [
{ id: 0, header: t("patient", "Patient"), key: "patientName" },
{ id: 1, header: t("totalorders", "Total Orders"), key: "totalOrders" },
...(showActionColumn
? [{ id: 2, header: t("actionButton", "Action"), key: "action" }]
: []),
];

return (
<div>
<DataTable
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import React from "react";
import { useTranslation } from "react-i18next";
import styles from "./transition-latest-queue-entry-button.scss";
import { showModal } from "@openmrs/esm-framework";
import { Button } from "@carbon/react";
import { AirlineManageGates } from "@carbon/react/icons";

interface TransitionLatestQueueEntryButtonProps {
patientUuid: string;
}

const TransitionLatestQueueEntryButton: React.FC<
TransitionLatestQueueEntryButtonProps
> = ({ patientUuid }) => {
const { t } = useTranslation();

const launchModal = () => {
const dispose = showModal("transition-patient-to-latest-queue-modal", {
closeModal: () => dispose(),
patientUuid,
});
};

return (
<Button
kind="tertiary"
className={styles.addPatientToQueue}
onClick={launchModal}
size="sm"
renderIcon={() => <AirlineManageGates size={18} />}
>
{t("transition", "Transition")}
</Button>
);
};

export default TransitionLatestQueueEntryButton;
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
@use '@carbon/layout';
@use '@carbon/styles/scss/type';

.addPatientToQueue {
--cds-layout-size-height-context: var(--cds-layout-size-height-sm, 2rem);
--cds-layout-size-height: var(--cds-layout-size-height-context);
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 0 layout.$spacing-04;
gap: 1rem;
}

0 comments on commit 8865b27

Please sign in to comment.