Skip to content

Commit

Permalink
Refactor Retrieval of lab tests (#5)
Browse files Browse the repository at this point in the history
Refactor Retrieval of lab tests (#5)
  • Loading branch information
jabahum authored Apr 19, 2024
1 parent 1102440 commit ea128f0
Show file tree
Hide file tree
Showing 13 changed files with 432 additions and 659 deletions.
14 changes: 10 additions & 4 deletions src/completed-list/completed-list.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import {
} from "@carbon/react";
import styles from "./completed-list.scss";
import { getStatusColor } from "../utils/functions";
import dayjs from "dayjs";

interface CompletedListProps {
fulfillerStatus: string;
Expand All @@ -34,8 +35,12 @@ interface CompletedListProps {
const CompletedList: React.FC<CompletedListProps> = ({ fulfillerStatus }) => {
const { t } = useTranslation();

const { data: completedOrderList, isLoading } =
useGetOrdersWorklist(fulfillerStatus);
const today = dayjs(new Date()).format("YYYY-MM-DD");

const { data: completedOrderList, isLoading } = useGetOrdersWorklist(
fulfillerStatus,
today
);

const pageSizes = [10, 20, 30, 40, 50];
const [currentPageSize, setPageSize] = useState(10);
Expand Down Expand Up @@ -65,8 +70,9 @@ const CompletedList: React.FC<CompletedListProps> = ({ fulfillerStatus }) => {
return paginatedCompletedOrderEntries
?.filter(
(item) =>
(item?.action === "DISCONTINUE" || item?.action === "REVISE") &&
item?.fulfillerStatus === fulfillerStatus
item?.fulfillerStatus === fulfillerStatus ||
item?.action === "NEW" ||
item?.action === "REVISE"
)
.map((entry) => ({
...entry,
Expand Down
5 changes: 4 additions & 1 deletion src/lab-tiles/completed-tile.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@ import React from "react";
import { useTranslation } from "react-i18next";
import SummaryTile from "../summary-tiles/summary-tile.component";
import { useLabTestsStats } from "../summary-tiles/laboratory-summary.resource";
import dayjs from "dayjs";

const ReferredTileComponent = () => {
const { t } = useTranslation();

const { data } = useLabTestsStats("COMPLETED");
const today = dayjs(new Date()).format("YYYY-MM-DD");

const { data } = useLabTestsStats("COMPLETED", today);

return (
<SummaryTile
Expand Down
2 changes: 1 addition & 1 deletion src/lab-tiles/rejected-tile.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const ReferredTileComponent = () => {
const { data } = useLabTestsStats("");

const filteredData = data?.filter(
(item) => item?.fulfillerStatus === "EXCEPTION"
(item) => item?.fulfillerStatus === "EXCEPTION" || item?.action === "REVISE"
);

return (
Expand Down
4 changes: 3 additions & 1 deletion src/lab-tiles/worklist-tile.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ import React from "react";
import { useTranslation } from "react-i18next";
import SummaryTile from "../summary-tiles/summary-tile.component";
import { useLabTestsStats } from "../summary-tiles/laboratory-summary.resource";
import dayjs from "dayjs";

const WorklistTileComponent = () => {
const { t } = useTranslation();
const today = dayjs(new Date()).format("YYYY-MM-DD");

const { data } = useLabTestsStats("IN_PROGRESS");
const { data } = useLabTestsStats("IN_PROGRESS", today);

const filteredData = data?.filter(
(item) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ import {
TableExpandRow,
TableExpandedRow,
Button,
IconButton,
InlineLoading,
} from "@carbon/react";

Expand All @@ -58,7 +57,6 @@ import { OrderTagStyle, useGetPatientByUuid } from "../../utils/functions";
import {
ResourceRepresentation,
Result,
getOrderColor,
} from "../patient-laboratory-order-results.resource";
import { useLaboratoryOrderResultsPages } from "../patient-laboratory-order-results-table.resource";
import {
Expand Down Expand Up @@ -98,8 +96,6 @@ const LaboratoryActiveTestOrderResults: React.FC<
laboratoryEncounterTypeUuid: laboratoryEncounterTypeUuid,
});

console.info(items);

const pageSizes = [10, 20, 30, 40, 50];
const [currentPageSize, setPageSize] = useState(10);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,12 @@ import {
TableExpandRow,
TableExpandedRow,
Button,
IconButton,
InlineLoading,
} from "@carbon/react";

import {
Printer,
MailAll,
Add,
Checkmark,
SendAlt,
NotSent,
Expand All @@ -56,7 +54,6 @@ import { OrderTagStyle, useGetPatientByUuid } from "../../utils/functions";
import {
ResourceRepresentation,
Result,
getOrderColor,
} from "../patient-laboratory-order-results.resource";
import { useLaboratoryOrderResultsPages } from "../patient-laboratory-order-results-table.resource";
import {
Expand Down Expand Up @@ -96,7 +93,6 @@ const LaboratoryOrderReferalResults: React.FC<

const {
items,
tableHeaders,
currentPage,
pageSizes,
totalItems,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ import {
TableExpandRow,
TableExpandedRow,
Button,
IconButton,
InlineLoading,
} from "@carbon/react";

Expand Down
32 changes: 11 additions & 21 deletions src/patient-chart/patient-laboratory-order-results.resource.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
import {
formatDate,
openmrsFetch,
restBaseUrl,
useConfig,
} from "@openmrs/esm-framework";
import { openmrsFetch, restBaseUrl, useConfig } from "@openmrs/esm-framework";
import useSWR from "swr";

export interface LaboratoryResponse {
Expand Down Expand Up @@ -401,20 +396,6 @@ export interface OrderType {
resourceVersion: string;
}

export const getOrderColor = (activated: string, stopped: string) => {
const numAct = formatWaitTime(activated);
let testStopped: Number;
if (stopped === null) {
testStopped = 0;
}

if (numAct >= 0 && testStopped === 0) {
return "#6F6F6F"; // #6F6F6F
} else {
return "green"; // green
}
};

export const formatWaitTime = (waitTime: string) => {
const num = parseInt(waitTime);
const hours = num / 60;
Expand Down Expand Up @@ -473,7 +454,16 @@ export function usePatientLaboratoryOrders(filter: LaboratoryOrderFilter) {
>(apiUrl, openmrsFetch, { refreshInterval: 3000 });

return {
items: data?.data ? data?.data?.results : [],
items: data?.data
? data?.data?.results.filter(
(item) =>
item?.orders.length !== 0 &&
item.orders.filter(
(item) =>
item?.orderType?.uuid !== "131168f4-15f5-102d-96e4-000c29c2a5d7"
)
)
: [],
isLoading,
isError: error,
};
Expand Down
2 changes: 1 addition & 1 deletion src/reject-order/rejected-tests-list.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ const RejectedTestsList: React.FC = () => {
const { data: pickedOrderList, isLoading } = useGetOrdersWorklist("");

const data = pickedOrderList.filter(
(item) => item?.fulfillerStatus === "EXCEPTION"
(item) => item?.fulfillerStatus === "EXCEPTION" || item?.action === "REVISE"
);

const pageSizes = [10, 20, 30, 40, 50];
Expand Down
14 changes: 10 additions & 4 deletions src/review-list/review-list.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import {
import styles from "./review-list.scss";
import { Add } from "@carbon/react/icons";
import { getStatusColor } from "../utils/functions";
import dayjs from "dayjs";

interface ReviewlistProps {
fulfillerStatus: string;
Expand Down Expand Up @@ -66,15 +67,20 @@ const ApproveTestMenu: React.FC<ApproveResultMenuProps> = ({
const ReviewList: React.FC<ReviewlistProps> = ({ fulfillerStatus }) => {
const { t } = useTranslation();

const { data: reviewOrderEntries, isLoading } =
useGetOrdersWorklist(fulfillerStatus);
const today = dayjs(new Date()).format("YYYY-MM-DD");

const { data: reviewOrderEntries, isLoading } = useGetOrdersWorklist(
fulfillerStatus,
today
);

const filtered = reviewOrderEntries?.filter(
(item) =>
item?.action === "REVISE" &&
item?.fulfillerStatus === "IN_PROGRESS" &&
item?.dateStopped !== null &&
item?.instructions !== "REFER TO cphl"
(item?.instructions !== "REFER TO cphl" ||
item?.instructions === null ||
item?.instructions === undefined)
);

const pageSizes = [10, 20, 30, 40, 50];
Expand Down
12 changes: 8 additions & 4 deletions src/summary-tiles/laboratory-summary.resource.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,24 @@ export function useServices() {
}

// worklist
export function useLabTestsStats(fulfillerStatus: string) {
export function useLabTestsStats(fulfillerStatus: string, date?: string) {
const { laboratoryOrderTypeUuid } = useConfig();

const orderTypeQuery =
laboratoryOrderTypeUuid !== ""
? `orderTypes=${laboratoryOrderTypeUuid}`
: "";

const apiUrl = `${restBaseUrl}/order?${orderTypeQuery}&fulfillerStatus=${fulfillerStatus}&v=full`;
let apiUrl = `${restBaseUrl}/order?${orderTypeQuery}&fulfillerStatus=${fulfillerStatus}&v=full`;

const { data, error, isLoading } = useSWR<
if (date) {
apiUrl += `&activatedOnOrAfterDate=${date}`;
}

const { data, error, isLoading, mutate } = useSWR<
{ data: { results: Array<Result> } },
Error
>(apiUrl, openmrsFetch);
>(apiUrl, openmrsFetch, { refreshInterval: 3000 });
return {
data: data?.data ? data?.data?.results : [],
isLoading,
Expand Down
9 changes: 7 additions & 2 deletions src/work-list/work-list.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import {
import { launchOverlay } from "../components/overlay/hook";
import ResultForm from "../results/result-form.component";
import { getStatusColor } from "../utils/functions";
import dayjs from "dayjs";

interface WorklistProps {
fulfillerStatus: string;
Expand All @@ -53,8 +54,12 @@ interface RejectOrderProps {
const WorkList: React.FC<WorklistProps> = ({ fulfillerStatus }) => {
const { t } = useTranslation();

const { data: pickedOrderEntries, isLoading } =
useGetOrdersWorklist(fulfillerStatus);
const today = dayjs(new Date()).format("YYYY-MM-DD");

const { data: pickedOrderEntries, isLoading } = useGetOrdersWorklist(
fulfillerStatus,
today
);

const pageSizes = [10, 20, 30, 40, 50];
const [currentPageSize, setPageSize] = useState(10);
Expand Down
Loading

0 comments on commit ea128f0

Please sign in to comment.