From f595511b33290a5f6b74af77f94c78bb15fb134e Mon Sep 17 00:00:00 2001 From: rithviknishad Date: Thu, 4 Apr 2024 12:12:19 +0530 Subject: [PATCH 1/4] replace `getPatient` --- src/Components/Patient/DailyRounds.tsx | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Components/Patient/DailyRounds.tsx b/src/Components/Patient/DailyRounds.tsx index 288d46f7359..3b66493477f 100644 --- a/src/Components/Patient/DailyRounds.tsx +++ b/src/Components/Patient/DailyRounds.tsx @@ -16,7 +16,6 @@ import { createDailyReport, getConsultationDailyRoundsDetails, getDailyReport, - getPatient, updateDailyReport, } from "../../Redux/actions"; import { DraftSection, useAutoSaveReducer } from "../../Utils/AutoSave"; @@ -37,6 +36,8 @@ import TextFormField from "../Form/FormFields/TextFormField"; import { FieldChangeEvent } from "../Form/FormFields/Utils"; import PatientCategorySelect from "./PatientCategorySelect"; import RadioFormField from "../Form/FormFields/RadioFormField"; +import request from "../../Utils/request/request"; +import routes from "../../Redux/api"; const Loading = lazy(() => import("../Common/Loading")); const initForm: any = { @@ -172,16 +173,18 @@ export const DailyRounds = (props: any) => { } setIsLoading(false); if (patientId) { - const res = await dispatchAction(getPatient({ id: patientId })); - if (res.data) { - setPatientName(res.data.name); - setFacilityName(res.data.facility_object.name); - setConsultationSuggestion(res.data.last_consultation?.suggestion); + const { data } = await request(routes.getPatient, { + pathParams: { id: patientId }, + }); + if (data) { + setPatientName(data.name!); + setFacilityName(data.facility_object!.name); + setConsultationSuggestion(data.last_consultation?.suggestion); setPreviousReviewInterval( - Number(res.data.last_consultation.review_interval) + Number(data.last_consultation?.review_interval) ); const getAction = - TELEMEDICINE_ACTIONS.find((action) => action.id === res.data.action) + TELEMEDICINE_ACTIONS.find((action) => action.id === data.action) ?.text || "NO_ACTION"; setPreviousAction(getAction); setInitialData({ From 9e6786e404033ed4032acae1878f722fa25d33d8 Mon Sep 17 00:00:00 2001 From: rithviknishad Date: Thu, 4 Apr 2024 12:35:58 +0530 Subject: [PATCH 2/4] replace create and update daily round --- src/Components/Patient/DailyRounds.tsx | 41 +++++++++++++------------- src/Redux/actions.tsx | 7 ----- src/Redux/api.tsx | 4 +++ 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/Components/Patient/DailyRounds.tsx b/src/Components/Patient/DailyRounds.tsx index 3b66493477f..19c65a9665d 100644 --- a/src/Components/Patient/DailyRounds.tsx +++ b/src/Components/Patient/DailyRounds.tsx @@ -13,10 +13,8 @@ import { import useAppHistory from "../../Common/hooks/useAppHistory"; import { statusType, useAbortableEffect } from "../../Common/utils"; import { - createDailyReport, getConsultationDailyRoundsDetails, getDailyReport, - updateDailyReport, } from "../../Redux/actions"; import { DraftSection, useAutoSaveReducer } from "../../Utils/AutoSave"; import * as Notification from "../../Utils/Notifications"; @@ -316,20 +314,16 @@ export const DailyRounds = (props: any) => { data = baseData; } - let res; if (id) { - res = await dispatchAction( - updateDailyReport(data, { consultationId, id }) - ); - } else { - res = await dispatchAction(createDailyReport(data, { consultationId })); - } + const { data: obj } = await request(routes.updateDailyReport, { + body: data, + pathParams: { consultationId, id }, + }); - setIsLoading(false); - if (res && res.data && (res.status === 201 || res.status === 200)) { - dispatch({ type: "set_form", form: initForm }); + setIsLoading(false); - if (id) { + if (obj) { + dispatch({ type: "set_form", form: initForm }); Notification.Success({ msg: "Consultation Updates details updated successfully", }); @@ -339,17 +333,26 @@ export const DailyRounds = (props: any) => { ); } else { navigate( - `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily_rounds/${res.data.external_id}/update` + `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily_rounds/${obj.id}/update` ); } - } else { + } + } else { + const { data: obj } = await request(routes.createDailyRounds, { + pathParams: { consultationId }, + body: data, + }); + setIsLoading(false); + if (obj) { + dispatch({ type: "set_form", form: initForm }); + Notification.Success({ msg: "Consultation Updates details created successfully", }); if (["NORMAL", "TELEMEDICINE"].includes(state.form.rounds_type)) { if (data.clone_last) { navigate( - `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily-rounds/${res.data.external_id}/update` + `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily-rounds/${obj.id}/update` ); } else { navigate( @@ -359,17 +362,15 @@ export const DailyRounds = (props: any) => { } else { if (data.clone_last) { navigate( - `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily-rounds/${res.data.external_id}/update` + `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily-rounds/${obj.id}/update` ); } else { navigate( - `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily_rounds/${res.data.external_id}/update` + `/facility/${facilityId}/patient/${patientId}/consultation/${consultationId}/daily_rounds/${obj.id}/update` ); } } } - } else { - setIsLoading(false); } } }; diff --git a/src/Redux/actions.tsx b/src/Redux/actions.tsx index 01be9a94e05..ea478090918 100644 --- a/src/Redux/actions.tsx +++ b/src/Redux/actions.tsx @@ -75,13 +75,6 @@ export const downloadSampleTests = (params: object) => { }; // Daily Rounds - -export const createDailyReport = (params: object, pathParam: object) => { - return fireRequest("createDailyRounds", [], params, pathParam); -}; -export const updateDailyReport = (params: object, pathParam: object) => { - return fireRequest("updateDailyReport", [], params, pathParam); -}; export const getDailyReport = (params: object, pathParam: object) => { return fireRequest("getDailyReports", [], params, pathParam); }; diff --git a/src/Redux/api.tsx b/src/Redux/api.tsx index e1ed6161cc3..6f9a33851e0 100644 --- a/src/Redux/api.tsx +++ b/src/Redux/api.tsx @@ -550,10 +550,14 @@ const routes = { }, createDailyRounds: { path: "/api/v1/consultation/{consultationId}/daily_rounds/", + TBody: Type(), + TRes: Type(), method: "POST", }, updateDailyReport: { path: "/api/v1/consultation/{consultationId}/daily_rounds/{id}/", + TBody: Type(), + TRes: Type(), method: "PUT", }, updateDailyRound: { From c45b78b1ebb0be2f76688548f07ae7307d9c9f53 Mon Sep 17 00:00:00 2001 From: rithviknishad Date: Thu, 4 Apr 2024 12:47:10 +0530 Subject: [PATCH 3/4] replace getDailyReport --- src/Components/Patient/DailyRounds.tsx | 29 ++++++-------------------- src/Redux/actions.tsx | 3 --- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/Components/Patient/DailyRounds.tsx b/src/Components/Patient/DailyRounds.tsx index 19c65a9665d..cf5f7d42d81 100644 --- a/src/Components/Patient/DailyRounds.tsx +++ b/src/Components/Patient/DailyRounds.tsx @@ -12,10 +12,7 @@ import { } from "../../Common/constants"; import useAppHistory from "../../Common/hooks/useAppHistory"; import { statusType, useAbortableEffect } from "../../Common/utils"; -import { - getConsultationDailyRoundsDetails, - getDailyReport, -} from "../../Redux/actions"; +import { getConsultationDailyRoundsDetails } from "../../Redux/actions"; import { DraftSection, useAutoSaveReducer } from "../../Utils/AutoSave"; import * as Notification from "../../Utils/Notifications"; import { formatDateTime } from "../../Utils/utils"; @@ -196,25 +193,11 @@ export const DailyRounds = (props: any) => { setFacilityName(""); } if (consultationId && !id) { - const res = await dispatchAction( - getDailyReport({ limit: 1, offset: 0 }, { consultationId }) - ); - setHasPreviousLog(res.data.count > 0); - formData = { - ...formData, - ...{ - patient_category: res.data.patient_category - ? PATIENT_CATEGORIES.find( - (i) => i.text === res.data.patient_category - )?.id ?? "" - : "", - rhythm: - (res.data.rhythm && - RHYTHM_CHOICES.find((i) => i.text === res.data.rhythm)?.id) || - "0", - temperature: parseFloat(res.data.temperature), - }, - }; + const { data } = await request(routes.getDailyReports, { + pathParams: { consultationId }, + query: { limit: 1, offset: 0 }, + }); + setHasPreviousLog(!!data?.count); } dispatch({ type: "set_form", form: formData }); setInitialData(formData); diff --git a/src/Redux/actions.tsx b/src/Redux/actions.tsx index ea478090918..42f9e55e39a 100644 --- a/src/Redux/actions.tsx +++ b/src/Redux/actions.tsx @@ -75,9 +75,6 @@ export const downloadSampleTests = (params: object) => { }; // Daily Rounds -export const getDailyReport = (params: object, pathParam: object) => { - return fireRequest("getDailyReports", [], params, pathParam); -}; export const getConsultationDailyRoundsDetails = (pathParam: object) => { return fireRequest("getDailyReport", [], {}, pathParam); }; From a1e320c9a755a5850fd3e625676d50dc58ec7988 Mon Sep 17 00:00:00 2001 From: rithviknishad Date: Thu, 4 Apr 2024 12:52:03 +0530 Subject: [PATCH 4/4] replace getConsultationDailyRoundsDetails --- src/Components/Patient/DailyRounds.tsx | 138 +++++++++++-------------- src/Redux/actions.tsx | 5 - 2 files changed, 62 insertions(+), 81 deletions(-) diff --git a/src/Components/Patient/DailyRounds.tsx b/src/Components/Patient/DailyRounds.tsx index cf5f7d42d81..f285007da0a 100644 --- a/src/Components/Patient/DailyRounds.tsx +++ b/src/Components/Patient/DailyRounds.tsx @@ -1,8 +1,7 @@ import { navigate } from "raviger"; import dayjs from "dayjs"; -import { lazy, useCallback, useState } from "react"; -import { useDispatch } from "react-redux"; +import { lazy, useCallback, useEffect, useState } from "react"; import { CONSCIOUSNESS_LEVEL, PATIENT_CATEGORIES, @@ -11,8 +10,6 @@ import { TELEMEDICINE_ACTIONS, } from "../../Common/constants"; import useAppHistory from "../../Common/hooks/useAppHistory"; -import { statusType, useAbortableEffect } from "../../Common/utils"; -import { getConsultationDailyRoundsDetails } from "../../Redux/actions"; import { DraftSection, useAutoSaveReducer } from "../../Utils/AutoSave"; import * as Notification from "../../Utils/Notifications"; import { formatDateTime } from "../../Utils/utils"; @@ -101,7 +98,6 @@ const DailyRoundsFormReducer = (state = initialState, action: any) => { export const DailyRounds = (props: any) => { const { goBack } = useAppHistory(); - const dispatchAction: any = useDispatch(); const { facilityId, patientId, consultationId, id } = props; const [state, dispatch] = useAutoSaveReducer( DailyRoundsFormReducer, @@ -136,80 +132,70 @@ export const DailyRounds = (props: any) => { "consciousness_level", ]; - const fetchRoundDetails = useCallback( - async (status: statusType) => { - setIsLoading(true); - let formData: any = initialData; - if (id) { - const res = await dispatchAction( - getConsultationDailyRoundsDetails({ consultationId, id }) - ); - - if (!status.aborted) { - if (res?.data) { - const data = { - ...res.data, - patient_category: res.data.patient_category - ? PATIENT_CATEGORIES.find( - (i) => i.text === res.data.patient_category - )?.id ?? "" - : "", - rhythm: - (res.data.rhythm && - RHYTHM_CHOICES.find((i) => i.text === res.data.rhythm)?.id) || - "0", - admitted_to: res.data.admitted_to - ? res.data.admitted_to - : "Select", - }; - formData = { ...formData, ...data }; - } - } - } - setIsLoading(false); - if (patientId) { - const { data } = await request(routes.getPatient, { - pathParams: { id: patientId }, - }); - if (data) { - setPatientName(data.name!); - setFacilityName(data.facility_object!.name); - setConsultationSuggestion(data.last_consultation?.suggestion); - setPreviousReviewInterval( - Number(data.last_consultation?.review_interval) - ); - const getAction = - TELEMEDICINE_ACTIONS.find((action) => action.id === data.action) - ?.text || "NO_ACTION"; - setPreviousAction(getAction); - setInitialData({ - ...initialData, - action: getAction, - }); - formData = { ...formData, ...{ action: getAction } }; - } - } else { - setPatientName(""); - setFacilityName(""); + const fetchRoundDetails = useCallback(async () => { + setIsLoading(true); + let formData: any = initialData; + if (id) { + const { data } = await request(routes.getDailyReport, { + pathParams: { consultationId, id }, + }); + + if (data) { + formData = { + ...formData, + ...data, + patient_category: data.patient_category + ? PATIENT_CATEGORIES.find((i) => i.text === data.patient_category) + ?.id ?? "" + : "", + rhythm: + (data.rhythm && + RHYTHM_CHOICES.find((i) => i.text === data.rhythm)?.id) || + "0", + admitted_to: data.admitted_to ? data.admitted_to : "Select", + }; } - if (consultationId && !id) { - const { data } = await request(routes.getDailyReports, { - pathParams: { consultationId }, - query: { limit: 1, offset: 0 }, + } + setIsLoading(false); + if (patientId) { + const { data } = await request(routes.getPatient, { + pathParams: { id: patientId }, + }); + if (data) { + setPatientName(data.name!); + setFacilityName(data.facility_object!.name); + setConsultationSuggestion(data.last_consultation?.suggestion); + setPreviousReviewInterval( + Number(data.last_consultation?.review_interval) + ); + const getAction = + TELEMEDICINE_ACTIONS.find((action) => action.id === data.action) + ?.text || "NO_ACTION"; + setPreviousAction(getAction); + setInitialData({ + ...initialData, + action: getAction, }); - setHasPreviousLog(!!data?.count); + formData = { ...formData, ...{ action: getAction } }; } - dispatch({ type: "set_form", form: formData }); - setInitialData(formData); - }, - [consultationId, id, dispatchAction, patientId] - ); - useAbortableEffect( - (status: statusType) => { - fetchRoundDetails(status); - }, - [dispatchAction, fetchRoundDetails] - ); + } else { + setPatientName(""); + setFacilityName(""); + } + if (consultationId && !id) { + const { data } = await request(routes.getDailyReports, { + pathParams: { consultationId }, + query: { limit: 1, offset: 0 }, + }); + setHasPreviousLog(!!data?.count); + } + dispatch({ type: "set_form", form: formData }); + setInitialData(formData); + }, [consultationId, id, patientId]); + + useEffect(() => { + fetchRoundDetails(); + }, [fetchRoundDetails]); const validateForm = () => { const errors = { ...initError }; diff --git a/src/Redux/actions.tsx b/src/Redux/actions.tsx index 42f9e55e39a..0a5f3ad4f03 100644 --- a/src/Redux/actions.tsx +++ b/src/Redux/actions.tsx @@ -74,11 +74,6 @@ export const downloadSampleTests = (params: object) => { return fireRequest("getTestSampleList", [], { ...params, csv: 1 }); }; -// Daily Rounds -export const getConsultationDailyRoundsDetails = (pathParam: object) => { - return fireRequest("getDailyReport", [], {}, pathParam); -}; - // Consultation export const createConsultation = (params: object) => { return fireRequest("createConsultation", [], params);