feat:update all page

This commit is contained in:
TuanVT
2026-05-26 16:43:42 +07:00
parent bce004352c
commit 56e2733d8f
18 changed files with 480 additions and 262 deletions
@@ -29,7 +29,7 @@ import consultationServices, {
ConsultationResponse,
} from "@/services/consultationServices";
import { QUERY_KEY } from "@/constant/config/enum";
import { QUERY_KEY, TYPE_STATUS } from "@/constant/config/enum";
import { toastWarn } from "@/common/funcs/toast";
@@ -111,7 +111,12 @@ const CreatePrescription = () => {
},
});
const examinationSessionOptions = examinationSessionQuery.data?.items || [];
const examinationSessionOptions =
examinationSessionQuery.data?.items?.filter(
(item) =>
item.status === TYPE_STATUS.Draft ||
item.status === TYPE_STATUS.InProgress,
) || [];
/* =========================
CREATE MUTATION
@@ -119,11 +124,17 @@ const CreatePrescription = () => {
const createPrescriptionMutation = useMutation({
mutationFn: async () => {
/**
* CREATE FORMDATA
*/
const formData = new FormData();
formData.append("examinationSessionId", form.examinationSessionId);
/**
* BASIC INFO
*/
formData.append("ExaminationSessionId", form.examinationSessionId);
formData.append("notes", form.notes);
formData.append("Notes", form.notes);
/**
* FILE
@@ -133,22 +144,17 @@ const CreatePrescription = () => {
}
/**
* MEDICINE ITEMS
* ITEMS
* BACKEND EXPECT:
* Items = JSON.stringify([...])
*/
form.items
.filter((x) => x.medicineName.trim() !== "")
.forEach((item, index) => {
formData.append(`items[${index}].medicineName`, item.medicineName);
const validItems = form.items.filter((x) => x.medicineName.trim() !== "");
formData.append(`items[${index}].dosage`, item.dosage);
formData.append(`items[${index}].frequency`, item.frequency);
formData.append(`items[${index}].duration`, item.duration);
formData.append(`items[${index}].instructions`, item.instructions);
});
formData.append("Items", JSON.stringify(validItems));
/**
* API
*/
return await httpRequest({
showMessageFailed: true,
@@ -237,6 +243,10 @@ const CreatePrescription = () => {
========================= */
const handleSubmit = () => {
/**
* VALIDATE
*/
if (!form.examinationSessionId) {
return toastWarn({
msg: "Vui lòng chọn phiên khám",
@@ -249,6 +259,17 @@ const CreatePrescription = () => {
});
}
const validMedicine = form.items.some((x) => x.medicineName.trim() !== "");
if (!validMedicine) {
return toastWarn({
msg: "Vui lòng nhập ít nhất 1 loại thuốc",
});
}
/**
* MUTATE
*/
createPrescriptionMutation.mutate();
};