From f97578ad6b11b599371261fc0cc5815641e6ecd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=AA=20Th=C3=A0nh=20=C4=90=E1=BA=A1t?= <91755733+lds217@users.noreply.github.com> Date: Thu, 19 Jun 2025 03:42:41 +0700 Subject: [PATCH] [update] Enhance CheckUpPage and TemplateDialog by integrating image upload functionality and template management features. Implement background image uploading with timeout handling, and improve template selection and application processes. Update server-side handling for image uploads, ensuring proper storage and response management. --- .gitignore | 4 + .../ui/component/CheckUpPage/CheckUpPage.java | 205 +++++- .../HistoryViewDialog/HistoryViewDialog.java | 650 ++++++++++++++++++ .../TemplateDialog/TemplateDialog.java | 124 ++-- .../packet/req/UploadCheckupImageRequest.java | 18 + .../res/UploadCheckupImageResponse.java | 18 + src/main/java/BsK/server/Server.java | 2 +- .../server/network/handler/ServerHandler.java | 43 ++ src/main/resources/database/BSK.db | Bin 1175552 -> 1175552 bytes 9 files changed, 983 insertions(+), 81 deletions(-) create mode 100644 src/main/java/BsK/client/ui/component/CheckUpPage/HistoryViewDialog/HistoryViewDialog.java create mode 100644 src/main/java/BsK/common/packet/req/UploadCheckupImageRequest.java create mode 100644 src/main/java/BsK/common/packet/res/UploadCheckupImageResponse.java diff --git a/.gitignore b/.gitignore index 340c491..6b0636e 100644 --- a/.gitignore +++ b/.gitignore @@ -128,6 +128,10 @@ buildNumber.properties # https://github.com/takari/maven-wrapper#usage-without-binary-jar .mvn/wrapper/maven-wrapper.jar +# User-generated content +img_db/ +src/main/resources/image/checkup_media/ + # Eclipse m2e generated files # Eclipse Core .project diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java index 2e7f09e..6cb0169 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java @@ -4,6 +4,7 @@ import BsK.client.LocalStorage; import BsK.client.network.handler.ClientHandler; import BsK.client.network.handler.ResponseListener; import BsK.client.ui.component.CheckUpPage.AddDialog.AddDialog; +import BsK.client.ui.component.CheckUpPage.HistoryViewDialog.HistoryViewDialog; import BsK.client.ui.component.CheckUpPage.MedicineDialog.MedicineDialog; import BsK.client.ui.component.CheckUpPage.PrintDialog.MedicineInvoice; import BsK.client.ui.component.CheckUpPage.ServiceDialog.ServiceDialog; @@ -15,6 +16,7 @@ import BsK.client.ui.component.common.RoundedPanel; import BsK.client.ui.component.QueueViewPage.QueueViewPage; import BsK.common.entity.Patient; import BsK.common.entity.Status; +import BsK.common.entity.Template; import BsK.common.packet.req.*; import BsK.common.packet.res.*; import BsK.common.util.network.NetworkUtil; @@ -81,7 +83,10 @@ import static org.bytedeco.opencv.global.opencv_core.cvFlip; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import javax.swing.JFrame; import javax.swing.JTextPane; import javax.swing.JToolBar; @@ -101,6 +106,15 @@ import java.io.InputStream; import BsK.common.entity.PatientHistory; import BsK.common.packet.req.GetPatientHistoryRequest; import BsK.common.packet.res.GetPatientHistoryResponse; +import BsK.common.packet.req.SaveCheckupRequest; +import BsK.common.packet.req.SearchAllRole; +import BsK.common.packet.req.SearchAllUser; +import BsK.common.packet.req.UploadCheckupImageRequest; +import BsK.common.packet.res.AddCheckupResponse; +import BsK.common.packet.res.AddPatientResponse; +import BsK.common.packet.res.RegisterSuccessResponse; +import BsK.common.packet.res.SaveCheckupRes; +import BsK.common.packet.res.UploadCheckupImageResponse; @Slf4j public class CheckUpPage extends JPanel { @@ -117,10 +131,12 @@ public class CheckUpPage extends JPanel { private final ResponseListener wardResponseListener = this::handleGetWardResponse; private final ResponseListener callPatientResponseListener = this::handleCallPatientResponse; private final ResponseListener orderInfoByCheckupListener = this::handleGetOrderInfoByCheckupResponse; + private final ResponseListener getAllTemplatesListener = this::handleGetAllTemplatesResponse; + private final ResponseListener uploadImageResponseListener = this::handleUploadImageResponse; private JTextField checkupIdField, customerLastNameField, customerFirstNameField,customerAddressField, customerPhoneField, customerIdField; private JTextArea suggestionField, diagnosisField, conclusionField; // Changed symptomsField to suggestionField private JTextPane notesField; - private JComboBox doctorComboBox, statusComboBox, genderComboBox, provinceComboBox, districtComboBox, wardComboBox, checkupTypeComboBox; + private JComboBox doctorComboBox, statusComboBox, genderComboBox, provinceComboBox, districtComboBox, wardComboBox, checkupTypeComboBox, templateComboBox; private JSpinner customerWeightSpinner, customerHeightSpinner; private JDatePickerImpl datePicker, dobPicker; private String[][] medicinePrescription = new String[0][0]; // Initialize to empty @@ -136,6 +152,7 @@ public class CheckUpPage extends JPanel { private JButton callPatientButton; private JLabel callingStatusLabel; private JPanel rightContainer; // Add this field + private List