Skip to content

Commit

Permalink
ft : add order approval
Browse files Browse the repository at this point in the history
  • Loading branch information
jabahum committed Nov 29, 2023
1 parent d290531 commit d5dc35f
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 3 deletions.
52 changes: 49 additions & 3 deletions src/review-list/dialog/review-item.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import { useGetEncounterById } from "../../patient-chart/laboratory-item/view-la
import styles from "../review-list.scss";
import { GroupMember } from "../../patient-chart/laboratory-order.resource";
import { useGetConceptById } from "../../patient-chart/results-summary/results-summary.resource";
import { ApproverOrder } from "./review-item.resource";
import { showNotification, showToast } from "@openmrs/esm-framework";

interface ReviewItemDialogProps {
encounterUuid: string;
Expand Down Expand Up @@ -50,15 +52,56 @@ const ReviewItem: React.FC<ReviewItemDialogProps> = ({

const [checkedItems, setCheckedItems] = useState({});

const handleCheckboxChange = (test, groupMembers) => {
const handleCheckboxChange = (test, groupMembers, uuid) => {
setCheckedItems((prevCheckedItems) => ({
...prevCheckedItems,
[test]: {
groupMembers,
uuid,
},
}));
};

console.info(checkedItems);

// handle approve
const approveOrder = async (e) => {
e.preventDefault();

let uuids = [];

Object.keys(checkedItems).map((item, index) => {
uuids.push(filteredGroupedResults[item].uuid);
});

const payload = {
orders: uuids.join(","),
};

ApproverOrder(payload).then(
() => {
showToast({
critical: true,
title: t("approveOrder", "Approve Order"),
kind: "success",
description: t(
"successfullyApproved",
`You have successfully approved Order `
),
});
closeModal();
},
(err) => {
showNotification({
title: t(`errorApproving order', 'Error Approving a order`),
kind: "error",
critical: true,
description: err?.message,
});
}
);
};

// get Units
const ValueUnits: React.FC<ValueUnitsProps> = ({ conceptUuid }) => {
const {
Expand Down Expand Up @@ -193,7 +236,8 @@ const ReviewItem: React.FC<ReviewItemDialogProps> = ({
onChange={() =>
handleCheckboxChange(
test,
filteredGroupedResults[test].groupMembers
filteredGroupedResults[test].groupMembers,
filteredGroupedResults[test].uuid
)
}
labelText={test}
Expand Down Expand Up @@ -228,7 +272,9 @@ const ReviewItem: React.FC<ReviewItemDialogProps> = ({
<Button kind="secondary" onClick={closeModal}>
{t("cancel", "Cancel")}
</Button>
<Button type="submit">{t("approveResult", "Approve Result")}</Button>
<Button type="submit" onClick={approveOrder}>
{t("approveResult", "Approve Result")}
</Button>
</ModalFooter>
</Form>
</div>
Expand Down
14 changes: 14 additions & 0 deletions src/review-list/dialog/review-item.resource.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { FetchResponse, openmrsFetch, useConfig } from "@openmrs/esm-framework";

export async function ApproverOrder(body: any) {
const abortController = new AbortController();

return openmrsFetch(`/ws/rest/v1/approveorder`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
signal: abortController.signal,
body: body,
});
}

0 comments on commit d5dc35f

Please sign in to comment.