From 9cc2eb2354bfaf91b59457dbe2d1fe7ea6304d89 Mon Sep 17 00:00:00 2001 From: Sahil Sinha Date: Tue, 24 Sep 2024 15:01:14 +0530 Subject: [PATCH 1/7] made a reusable component for table in routine and nursing care procedures --- .../ConsultationNursingTab.tsx | 68 ++--------------- .../Facility/Consultations/NursingPlot.tsx | 72 ++++++++---------- .../Consultations/components/SharedTable.tsx | 73 +++++++++++++++++++ 3 files changed, 113 insertions(+), 100 deletions(-) create mode 100644 src/Components/Facility/Consultations/components/SharedTable.tsx diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx index 2f689c82d19..0ce1b5f7370 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx @@ -6,9 +6,9 @@ import request from "../../../Utils/request/request"; import routes from "../../../Redux/api"; import { RoutineAnalysisRes, RoutineFields } from "../models"; import Loading from "../../Common/Loading"; -import { classNames, formatDate, formatTime } from "../../../Utils/utils"; import Pagination from "../../Common/Pagination"; import { PAGINATION_LIMIT } from "../../../Common/constants"; +import SharedSectionTable from "../Consultations/components/SharedTable"; const PageTitle = lazy(() => import("../../Common/PageTitle")); @@ -153,65 +153,13 @@ const RoutineSection = ({ consultationId }: ConsultationTabProps) => { return (
-
- - - - - ))} - - - - {ROUTINE_ROWS.map((row) => ( - - - {row.field && - Object.values(results).map((obj, idx) => ( - - ))} - - ))} - -
- {Object.keys(results).map((date) => ( - -

{formatDate(date)}

-

{formatTime(date)}

-
- {row.title ?? t(`LOG_UPDATE_FIELD_LABEL__${row.field!}`)} - - {(() => { - const value = obj[row.field]; - if (value == null) { - return "-"; - } - if (typeof value === "boolean") { - return t(value ? "yes" : "no"); - } - const choices = REVERSE_CHOICES[row.field]; - const choice = `${row.field.toUpperCase()}__${choices[value as keyof typeof choices]}`; - return t(choice); - })()} -
-
+ {totalCount != null && totalCount > PAGINATION_LIMIT && (
diff --git a/src/Components/Facility/Consultations/NursingPlot.tsx b/src/Components/Facility/Consultations/NursingPlot.tsx index c747ec60d26..850d215f469 100644 --- a/src/Components/Facility/Consultations/NursingPlot.tsx +++ b/src/Components/Facility/Consultations/NursingPlot.tsx @@ -5,7 +5,7 @@ import { NURSING_CARE_PROCEDURES, PAGINATION_LIMIT, } from "../../../Common/constants"; - +import SharedSectionTable from "./components/SharedTable"; import Pagination from "../../Common/Pagination"; import { formatDateTime } from "../../../Utils/utils"; import { useTranslation } from "react-i18next"; @@ -71,50 +71,42 @@ export const NursingPlot = ({ consultationId }: any) => { else return false; }; + const rows = NURSING_CARE_PROCEDURES.filter((f) => filterEmpty(f)).map( + (procedure) => ({ + field: procedure, + title: t(`NURSING_CARE_PROCEDURE__${procedure}`), + }), + ); + + const mappedData = dataToDisplay.reduce( + (acc: Record, item: any) => { + if (!acc[item.date]) acc[item.date] = {}; + acc[item.date][item.procedure] = item.description; + return acc; + }, + {}, + ); + return (
-
- {areFieldsEmpty() && ( -
-
- {t("no_data_found")} -
+ {areFieldsEmpty() && ( +
+
+ {t("no_data_found")}
- )} - {NURSING_CARE_PROCEDURES.map( - (f) => - filterEmpty(f) && ( -
-
-
-

- {t(`NURSING_CARE_PROCEDURE__${f}`)} -

-
-
-
- {dataToDisplay - .filter((i: any) => i.procedure === f) - .map((care: any, index: number) => ( -
-
- {care.date} -
-
- {care.description} -
-
- ))} -
-
- ), - )} -
+
+ )} + + {!areFieldsEmpty() && ( + + )}
diff --git a/src/Components/Facility/Consultations/components/SharedTable.tsx b/src/Components/Facility/Consultations/components/SharedTable.tsx new file mode 100644 index 00000000000..c65cffac608 --- /dev/null +++ b/src/Components/Facility/Consultations/components/SharedTable.tsx @@ -0,0 +1,73 @@ +import React from "react"; +import { formatDate, formatTime } from "../../../../Utils/utils"; +import { classNames } from "../../../../Utils/utils"; + +interface SharedSectionTableProps { + data: Record; + rows: Array<{ title?: string; field?: string; subField?: boolean }>; + choices?: Record>; + translateKey: string; + t: (key: string) => string; +} + +const SharedSectionTable: React.FC = ({ + data, + rows, + choices = {}, + translateKey, + t, +}) => { + return ( +
+ + + + + ))} + + + + {rows.map((row) => ( + + + {Object.values(data).map((obj, idx) => ( + + ))} + + ))} + +
+ {Object.keys(data).map((date) => ( + +

{formatDate(date)}

+

{formatTime(date)}

+
+ {row.title ?? t(`${translateKey}__${row.field}`)} + + {row.field + ? choices[row.field] + ? (choices[row.field][obj[row.field]] ?? "-") + : (obj[row.field] ?? "-") + : "-"} +
+
+ ); +}; + +export default SharedSectionTable; From 38712fd18ddb491f9612b6a3d0625e13be8be6f3 Mon Sep 17 00:00:00 2001 From: Sahil Sinha Date: Thu, 26 Sep 2024 18:23:33 +0530 Subject: [PATCH 2/7] Merged NursingTab Section into ConsultationNursingTab --- .../ConsultationNursingTab.tsx | 165 ++++++++++++++---- .../Facility/Consultations/NursingPlot.tsx | 125 ------------- .../Consultations/components/SharedTable.tsx | 17 +- 3 files changed, 140 insertions(+), 167 deletions(-) delete mode 100644 src/Components/Facility/Consultations/NursingPlot.tsx diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx index 0ce1b5f7370..67c17c3b070 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx @@ -1,42 +1,23 @@ import { lazy, useEffect, useState } from "react"; -import { ConsultationTabProps } from "./index"; -import { NursingPlot } from "../Consultations/NursingPlot"; import { useTranslation } from "react-i18next"; import request from "../../../Utils/request/request"; import routes from "../../../Redux/api"; -import { RoutineAnalysisRes, RoutineFields } from "../models"; +import { + RoutineAnalysisRes, + RoutineFields, + NursingPlotFields, +} from "../models"; import Loading from "../../Common/Loading"; import Pagination from "../../Common/Pagination"; -import { PAGINATION_LIMIT } from "../../../Common/constants"; -import SharedSectionTable from "../Consultations/components/SharedTable"; +import { + PAGINATION_LIMIT, + NURSING_CARE_PROCEDURES, +} from "../../../Common/constants"; +import LogUpdateAnalayseTable from "../Consultations/components/SharedTable"; +import { formatDateTime } from "../../../Utils/utils"; const PageTitle = lazy(() => import("../../Common/PageTitle")); -export default function ConsultationNursingTab(props: ConsultationTabProps) { - const { t } = useTranslation(); - return ( -
- -
-

{t("routine")}

- -
-
-

{t("nursing_care")}

- -
-
- ); -} - const REVERSE_CHOICES = { appetite: { 1: "INCREASED", @@ -109,7 +90,104 @@ const ROUTINE_ROWS = [ { subField: true, field: "appetite" } as const, ]; -const RoutineSection = ({ consultationId }: ConsultationTabProps) => { +const NursingPlot = ({ consultationId }: any) => { + const { t } = useTranslation(); + const [results, setResults] = useState({}); + const [currentPage, setCurrentPage] = useState(1); + const [totalCount, setTotalCount] = useState(0); + + useEffect(() => { + const fetchDailyRounds = async ( + currentPage: number, + consultationId: string, + ) => { + const { res, data } = await request(routes.dailyRoundsAnalyse, { + body: { page: currentPage, fields: NursingPlotFields }, + pathParams: { consultationId }, + }); + if (res && res.ok && data) { + setResults(data.results); + setTotalCount(data.count); + } + }; + + fetchDailyRounds(currentPage, consultationId); + }, [consultationId, currentPage]); + + const handlePagination = (page: number) => setCurrentPage(page); + + const data = Object.entries(results).map((key: any) => ({ + date: formatDateTime(key[0]), + nursing: key[1]["nursing"], + })); + + const dataToDisplay = data + .map((x) => + x.nursing.map((f: any) => { + f["date"] = x.date; + return f; + }), + ) + .reduce((accumulator, value) => accumulator.concat(value), []); + + const filterEmpty = (field: (typeof NURSING_CARE_PROCEDURES)[number]) => { + const filtered = dataToDisplay.filter((i: any) => i.procedure === field); + return filtered.length > 0; + }; + + const areFieldsEmpty = () => { + let emptyFieldCount = 0; + for (const field of NURSING_CARE_PROCEDURES) { + if (!filterEmpty(field)) emptyFieldCount++; + } + return emptyFieldCount === NURSING_CARE_PROCEDURES.length; + }; + + const rows = NURSING_CARE_PROCEDURES.filter((f) => filterEmpty(f)).map( + (procedure) => ({ + field: procedure, + title: t(`NURSING_CARE_PROCEDURE__${procedure}`), + }), + ); + + const mappedData = dataToDisplay.reduce( + (acc: Record, item: any) => { + if (!acc[item.date]) acc[item.date] = {}; + acc[item.date][item.procedure] = item.description; + return acc; + }, + {}, + ); + + return ( +
+
+ {areFieldsEmpty() ? ( +
+
+ {t("no_data_found")} +
+
+ ) : ( + + )} +
+ + {totalCount > PAGINATION_LIMIT && !areFieldsEmpty() && ( +
+ +
+ )} +
+ ); +}; + +const RoutineSection = ({ consultationId }: any) => { const { t } = useTranslation(); const [page, setPage] = useState(1); const [totalCount, setTotalCount] = useState(); @@ -153,12 +231,10 @@ const RoutineSection = ({ consultationId }: ConsultationTabProps) => { return (
- {totalCount != null && totalCount > PAGINATION_LIMIT && ( @@ -174,3 +250,24 @@ const RoutineSection = ({ consultationId }: ConsultationTabProps) => {
); }; + +export default function ConsultationNursingTab({ consultationId }: any) { + const { t } = useTranslation(); + return ( +
+ +
+

{t("routine")}

+ +
+
+

{t("nursing_care")}

+ +
+
+ ); +} diff --git a/src/Components/Facility/Consultations/NursingPlot.tsx b/src/Components/Facility/Consultations/NursingPlot.tsx deleted file mode 100644 index 850d215f469..00000000000 --- a/src/Components/Facility/Consultations/NursingPlot.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import { useEffect, useState } from "react"; -import routes from "../../../Redux/api"; -import request from "../../../Utils/request/request"; -import { - NURSING_CARE_PROCEDURES, - PAGINATION_LIMIT, -} from "../../../Common/constants"; -import SharedSectionTable from "./components/SharedTable"; -import Pagination from "../../Common/Pagination"; -import { formatDateTime } from "../../../Utils/utils"; -import { useTranslation } from "react-i18next"; -import { NursingPlotFields } from "../models"; - -export const NursingPlot = ({ consultationId }: any) => { - const { t } = useTranslation(); - const [results, setResults] = useState({}); - const [currentPage, setCurrentPage] = useState(1); - const [totalCount, setTotalCount] = useState(0); - - useEffect(() => { - const fetchDailyRounds = async ( - currentPage: number, - consultationId: string, - ) => { - const { res, data } = await request(routes.dailyRoundsAnalyse, { - body: { page: currentPage, fields: NursingPlotFields }, - pathParams: { - consultationId, - }, - }); - if (res && res.ok && data) { - setResults(data.results); - setTotalCount(data.count); - } - }; - - fetchDailyRounds(currentPage, consultationId); - }, [consultationId, currentPage]); - - const handlePagination = (page: number) => { - setCurrentPage(page); - }; - - const data = Object.entries(results).map((key: any) => { - return { - date: formatDateTime(key[0]), - nursing: key[1]["nursing"], - }; - }); - - const dataToDisplay = data - .map((x) => - x.nursing.map((f: any) => { - f["date"] = x.date; - return f; - }), - ) - .reduce((accumulator, value) => accumulator.concat(value), []); - - const filterEmpty = (field: (typeof NURSING_CARE_PROCEDURES)[number]) => { - const filtered = dataToDisplay.filter((i: any) => i.procedure === field); - return filtered.length > 0; - }; - - const areFieldsEmpty = () => { - let emptyFieldCount = 0; - for (const field of NURSING_CARE_PROCEDURES) { - if (!filterEmpty(field)) emptyFieldCount++; - } - if (emptyFieldCount === NURSING_CARE_PROCEDURES.length) return true; - else return false; - }; - - const rows = NURSING_CARE_PROCEDURES.filter((f) => filterEmpty(f)).map( - (procedure) => ({ - field: procedure, - title: t(`NURSING_CARE_PROCEDURE__${procedure}`), - }), - ); - - const mappedData = dataToDisplay.reduce( - (acc: Record, item: any) => { - if (!acc[item.date]) acc[item.date] = {}; - acc[item.date][item.procedure] = item.description; - return acc; - }, - {}, - ); - - return ( -
-
-
- {areFieldsEmpty() && ( -
-
- {t("no_data_found")} -
-
- )} - - {!areFieldsEmpty() && ( - - )} -
-
- - {!areFieldsEmpty() && totalCount > PAGINATION_LIMIT && ( -
- -
- )} -
- ); -}; diff --git a/src/Components/Facility/Consultations/components/SharedTable.tsx b/src/Components/Facility/Consultations/components/SharedTable.tsx index c65cffac608..fd19d829620 100644 --- a/src/Components/Facility/Consultations/components/SharedTable.tsx +++ b/src/Components/Facility/Consultations/components/SharedTable.tsx @@ -1,22 +1,20 @@ import React from "react"; import { formatDate, formatTime } from "../../../../Utils/utils"; import { classNames } from "../../../../Utils/utils"; +import { useTranslation } from "react-i18next"; interface SharedSectionTableProps { data: Record; rows: Array<{ title?: string; field?: string; subField?: boolean }>; choices?: Record>; - translateKey: string; - t: (key: string) => string; } -const SharedSectionTable: React.FC = ({ +const LogUpdateAnalayseTable: React.FC = ({ data, rows, choices = {}, - translateKey, - t, }) => { + const { t } = useTranslation(); return (
@@ -48,7 +46,7 @@ const SharedSectionTable: React.FC = ({ row.subField ? "pl-4 font-medium" : "font-bold", )} > - {row.title ?? t(`${translateKey}__${row.field}`)} + {row.title ?? t(`LOG_UPDATE_FIELD_LABEL__${row.field!}`)} {Object.values(data).map((obj, idx) => ( @@ -70,4 +71,4 @@ const SharedSectionTable: React.FC = ({ ); }; -export default SharedSectionTable; +export default LogUpdateAnalayseTable; From 13bf013164ee7192160b40f7049d0a5521b75d51 Mon Sep 17 00:00:00 2001 From: Sahil Sinha Date: Fri, 27 Sep 2024 13:25:16 +0530 Subject: [PATCH 3/7] resolved is_dysuria_block --- .../Consultations/components/SharedTable.tsx | 58 ++++++++++++------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/src/Components/Facility/Consultations/components/SharedTable.tsx b/src/Components/Facility/Consultations/components/SharedTable.tsx index fd19d829620..f669546a6ec 100644 --- a/src/Components/Facility/Consultations/components/SharedTable.tsx +++ b/src/Components/Facility/Consultations/components/SharedTable.tsx @@ -15,17 +15,37 @@ const LogUpdateAnalayseTable: React.FC = ({ choices = {}, }) => { const { t } = useTranslation(); + + // Helper function to get the display value + const getDisplayValue = (value: any, field?: string): string => { + if (value == null) { + return "-"; + } + if (typeof value === "boolean") { + return t(value ? "yes" : "no"); + } + if (field && choices[field]) { + const choice = + choices[field][value as keyof (typeof choices)[typeof field]]; + return choice ? t(`${field.toUpperCase()}__${choice}`) : "-"; + } + if (value) return value; + + return "-"; + }; + return (
-
= ({ > {row.field ? choices[row.field] - ? (choices[row.field][obj[row.field]] ?? "-") + ? t( + `${row.field.toUpperCase()}__${choices[row.field][obj[row.field]]}` ?? + "-", + ) : (obj[row.field] ?? "-") : "-"}
- +
+ - {Object.keys(data).map((date) => ( @@ -40,29 +60,25 @@ const LogUpdateAnalayseTable: React.FC = ({ row.title && "border-t-2 border-t-secondary-600", )} > - - {Object.values(data).map((obj, idx) => ( - - ))} + + {Object.values(data).map((obj, idx) => { + const value = obj[row.field!]; + return ( + + ); + })} ))} From c96bfcb3f8135aa2b74dec4bb8976a146a780a03 Mon Sep 17 00:00:00 2001 From: Sahil Sinha Date: Sat, 28 Sep 2024 20:30:34 +0530 Subject: [PATCH 4/7] bug resolved for iinvalid date --- .../Consultations/components/SharedTable.tsx | 56 +++++++++++++++---- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/src/Components/Facility/Consultations/components/SharedTable.tsx b/src/Components/Facility/Consultations/components/SharedTable.tsx index f669546a6ec..35f411a3e66 100644 --- a/src/Components/Facility/Consultations/components/SharedTable.tsx +++ b/src/Components/Facility/Consultations/components/SharedTable.tsx @@ -19,8 +19,9 @@ const LogUpdateAnalayseTable: React.FC = ({ // Helper function to get the display value const getDisplayValue = (value: any, field?: string): string => { if (value == null) { - return "-"; + return " "; } + if (typeof value === "boolean") { return t(value ? "yes" : "no"); } @@ -29,11 +30,34 @@ const LogUpdateAnalayseTable: React.FC = ({ choices[field][value as keyof (typeof choices)[typeof field]]; return choice ? t(`${field.toUpperCase()}__${choice}`) : "-"; } - if (value) return value; + if (value && typeof value == "string") return value; return "-"; }; + const isddm_mm = (str: string) => { + let ct = 0; + for (let i = 0; i < str.length; i++) { + if (str[i] == "/") ct++; + } + + if (ct == 2) return true; + return false; + }; + + const ddmm_mmdd = (str: string) => { + const time = str.split(";")[0].trim(); + + const date = str.split(";")[1].trim(); + + const dd = date.split("/")[0]; + const mm = date.split("/")[1]; + + const yyyy = date.split("/")[2]; + + return time + ";" + mm + "/" + dd + "/" + yyyy; + }; + return (
+ + {date}

{formatDate(date)}

{formatTime(date)}

{row.title ?? t(`LOG_UPDATE_FIELD_LABEL__${row.field!}`)} - - {row.field - ? choices[row.field] - ? t( - `${row.field.toUpperCase()}__${choices[row.field][obj[row.field]]}` ?? - "-", - ) - : (obj[row.field] ?? "-") - : "-"} - + {getDisplayValue(value, row.field)} +
@@ -41,14 +65,24 @@ const LogUpdateAnalayseTable: React.FC = ({ {Object.keys(data).map((date) => ( - + <> + + ))} @@ -73,7 +107,7 @@ const LogUpdateAnalayseTable: React.FC = ({ return ( From e82d0d0be843a171236cdb9449b638d069f23665 Mon Sep 17 00:00:00 2001 From: Sahil-Sinha-11 <138860859+Sahil-Sinha-11@users.noreply.github.com> Date: Wed, 9 Oct 2024 22:16:35 +0530 Subject: [PATCH 5/7] Update src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx Co-authored-by: Khavin Shankar --- .../Facility/ConsultationDetails/ConsultationNursingTab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx index 1c658dec2e5..883de678ba3 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx @@ -1,4 +1,4 @@ -import { lazy, useEffect, useState } from "react"; +import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import request from "../../../Utils/request/request"; import routes from "../../../Redux/api"; From aca95b7527646b1cfc667859b515916dd72033ce Mon Sep 17 00:00:00 2001 From: Sahil-Sinha-11 Date: Wed, 9 Oct 2024 23:11:12 +0530 Subject: [PATCH 6/7] fixed function names and tried to remove any from some parts --- .../ConsultationNursingTab.tsx | 16 ++++++++++------ .../Consultations/components/SharedTable.tsx | 17 ++++++++++------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx index 883de678ba3..6f69bc78557 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx @@ -17,6 +17,8 @@ import LogUpdateAnalayseTable from "../Consultations/components/SharedTable"; import { formatDateTime } from "../../../Utils/utils"; import PageTitle from "@/Components/Common/PageTitle"; +import { ConsultationTabProps } from "."; +import { ProcedureType } from "@/Components/Common/prescription-builder/ProcedureBuilder"; const REVERSE_CHOICES = { appetite: { @@ -90,7 +92,7 @@ const ROUTINE_ROWS = [ { subField: true, field: "appetite" } as const, ]; -const NursingPlot = ({ consultationId }: any) => { +const NursingPlot = ({ consultationId }: ConsultationTabProps) => { const { t } = useTranslation(); const [results, setResults] = useState({}); const [currentPage, setCurrentPage] = useState(1); @@ -131,7 +133,9 @@ const NursingPlot = ({ consultationId }: any) => { .reduce((accumulator, value) => accumulator.concat(value), []); const filterEmpty = (field: (typeof NURSING_CARE_PROCEDURES)[number]) => { - const filtered = dataToDisplay.filter((i: any) => i.procedure === field); + const filtered = dataToDisplay.filter( + (i: ProcedureType) => i.procedure === field, + ); return filtered.length > 0; }; @@ -187,7 +191,7 @@ const NursingPlot = ({ consultationId }: any) => { ); }; -const RoutineSection = ({ consultationId }: any) => { +const RoutineSection = ({ consultationId }: ConsultationTabProps) => { const { t } = useTranslation(); const [page, setPage] = useState(1); const [totalCount, setTotalCount] = useState(); @@ -251,7 +255,7 @@ const RoutineSection = ({ consultationId }: any) => { ); }; -export default function ConsultationNursingTab({ consultationId }: any) { +export default function ConsultationNursingTab(props: ConsultationTabProps) { const { t } = useTranslation(); return (
@@ -262,11 +266,11 @@ export default function ConsultationNursingTab({ consultationId }: any) { />

{t("routine")}

- +

{t("nursing_care")}

- +
); diff --git a/src/Components/Facility/Consultations/components/SharedTable.tsx b/src/Components/Facility/Consultations/components/SharedTable.tsx index 35f411a3e66..07a18261c7d 100644 --- a/src/Components/Facility/Consultations/components/SharedTable.tsx +++ b/src/Components/Facility/Consultations/components/SharedTable.tsx @@ -17,7 +17,10 @@ const LogUpdateAnalayseTable: React.FC = ({ const { t } = useTranslation(); // Helper function to get the display value - const getDisplayValue = (value: any, field?: string): string => { + const getDisplayValue = ( + value: string | boolean | null | undefined, + field?: string, + ): string => { if (value == null) { return " "; } @@ -35,7 +38,7 @@ const LogUpdateAnalayseTable: React.FC = ({ return "-"; }; - const isddm_mm = (str: string) => { + const isValidDate = (str: string) => { let ct = 0; for (let i = 0; i < str.length; i++) { if (str[i] == "/") ct++; @@ -45,7 +48,7 @@ const LogUpdateAnalayseTable: React.FC = ({ return false; }; - const ddmm_mmdd = (str: string) => { + const dateConversion = (str: string) => { const time = str.split(";")[0].trim(); const date = str.split(";")[1].trim(); @@ -72,13 +75,13 @@ const LogUpdateAnalayseTable: React.FC = ({ > {/* DD/MM/YYYY -> MM/DD/YYYY */}

- {isddm_mm(date) - ? formatDate(ddmm_mmdd(date)) + {isValidDate(date) + ? formatDate(dateConversion(date)) : formatDate(date)}

- {isddm_mm(date) - ? formatTime(ddmm_mmdd(date)) + {isValidDate(date) + ? formatTime(dateConversion(date)) : formatTime(date)}

From 6168b73ef85b3d39bd09f8da1a68b54ed300a21f Mon Sep 17 00:00:00 2001 From: Sahil-Sinha-11 Date: Thu, 17 Oct 2024 22:30:00 +0530 Subject: [PATCH 7/7] changes file name from sharedtable to LogAnalayseTable --- .../Facility/ConsultationDetails/ConsultationNursingTab.tsx | 2 +- .../SharedTable.tsx => LogUpdateAnalayseTable.tsx} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/Components/Facility/Consultations/{components/SharedTable.tsx => LogUpdateAnalayseTable.tsx} (96%) diff --git a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx index 6f69bc78557..0a8ee625ba6 100644 --- a/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx +++ b/src/Components/Facility/ConsultationDetails/ConsultationNursingTab.tsx @@ -13,7 +13,7 @@ import { PAGINATION_LIMIT, NURSING_CARE_PROCEDURES, } from "../../../Common/constants"; -import LogUpdateAnalayseTable from "../Consultations/components/SharedTable"; +import LogUpdateAnalayseTable from "../Consultations/LogUpdateAnalayseTable"; import { formatDateTime } from "../../../Utils/utils"; import PageTitle from "@/Components/Common/PageTitle"; diff --git a/src/Components/Facility/Consultations/components/SharedTable.tsx b/src/Components/Facility/Consultations/LogUpdateAnalayseTable.tsx similarity index 96% rename from src/Components/Facility/Consultations/components/SharedTable.tsx rename to src/Components/Facility/Consultations/LogUpdateAnalayseTable.tsx index 07a18261c7d..6a8708d14b6 100644 --- a/src/Components/Facility/Consultations/components/SharedTable.tsx +++ b/src/Components/Facility/Consultations/LogUpdateAnalayseTable.tsx @@ -1,6 +1,6 @@ import React from "react"; -import { formatDate, formatTime } from "../../../../Utils/utils"; -import { classNames } from "../../../../Utils/utils"; +import { formatDate, formatTime } from "../../../Utils/utils"; +import { classNames } from "../../../Utils/utils"; import { useTranslation } from "react-i18next"; interface SharedSectionTableProps {
- {date} -

{formatDate(date)}

-

{formatTime(date)}

-
+ {/* DD/MM/YYYY -> MM/DD/YYYY */} +

+ {isddm_mm(date) + ? formatDate(ddmm_mmdd(date)) + : formatDate(date)} +

+

+ {isddm_mm(date) + ? formatTime(ddmm_mmdd(date)) + : formatTime(date)} +

+
{getDisplayValue(value, row.field)}