From b37ff06b1f18cf6fb563597ea0540f88e38b6f88 Mon Sep 17 00:00:00 2001 From: lds217 Date: Tue, 4 Feb 2025 02:48:01 -0500 Subject: [PATCH] [add]: parse address when select patient --- medical_invoice.pdf | Bin 28408 -> 28553 bytes .../CheckUpPage/AddDialog/AddDialog.java | 162 +++++++++++++++--- .../ui/component/CheckUpPage/CheckUpPage.java | 1 + .../ui/component/LandingPage/LandingPage.java | 2 +- src/main/resources/database/BSK.db | Bin 1445888 -> 1445888 bytes 5 files changed, 141 insertions(+), 24 deletions(-) diff --git a/medical_invoice.pdf b/medical_invoice.pdf index c56ccd0ead57238fb1c6a973e9e7f63dee7deb99..dd4f5da6e739744d2a5225cd0957b57e76590f7a 100644 GIT binary patch delta 12570 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 delta 12441 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 DNfg6l diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/AddDialog/AddDialog.java b/src/main/java/BsK/client/ui/component/CheckUpPage/AddDialog/AddDialog.java index 5e103b5..cf4fe0d 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/AddDialog/AddDialog.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/AddDialog/AddDialog.java @@ -3,8 +3,10 @@ package BsK.client.ui.component.CheckUpPage.AddDialog; import BsK.client.LocalStorage; import BsK.client.network.handler.ClientHandler; import BsK.client.network.handler.ResponseListener; +import BsK.common.packet.req.GetDistrictRequest; import BsK.common.packet.req.GetDoctorGeneralInfo; import BsK.common.packet.req.GetRecentPatientRequest; +import BsK.common.packet.req.GetWardRequest; import BsK.common.packet.res.GetDoctorGeneralInfoResponse; import BsK.common.packet.res.GetMedInfoResponse; import BsK.common.packet.res.GetRecentPatientResponse; @@ -17,10 +19,7 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.table.DefaultTableModel; import java.awt.*; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; +import java.awt.event.*; @Slf4j @@ -30,8 +29,8 @@ public class AddDialog extends JDialog { private JTextField patientIdField; private JTextField patientPhoneField; private JComboBox patientGenderField; - private JComboBox villageComboBox, districtComboBox, provinceComboBox; - private String[] villagesOptions, districtOptions, provinceOptions; + private JComboBox wardComboBox, districtComboBox, provinceComboBox; + private JTextField customerAddressField; private DefaultTableModel patientTableModel; private JTable patientTable; private String[] patientColumns = {"Patient ID", "Patient Name", "Patient Year", "Patient Phone" ,"Patient Address"}; @@ -52,6 +51,32 @@ public class AddDialog extends JDialog { patientTableModel.setDataVector(patientData, patientColumns); } + private int findProvinceIndex(String province) { + for (int i = 0; i < LocalStorage.provinces.length; i++) { + if (TextUtils.removeAccents(LocalStorage.provinces[i]).equals(TextUtils.removeAccents(province))) { + return i; + } + } + return -1; + } + + private int findDistrictIndex(String district) { + for (int i = 0; i < LocalStorage.districts.length; i++) { + if (TextUtils.removeAccents(LocalStorage.districts[i]).equals(TextUtils.removeAccents(district))) { + return i; + } + } + return -1; + } + + private int findWardIndex(String ward) { + for (int i = 0; i < LocalStorage.wards.length; i++) { + if (TextUtils.removeAccents(LocalStorage.wards[i]).equals(TextUtils.removeAccents(ward))) { + return i; + } + } + return -1; + } public AddDialog(Frame parent) { super(parent, "Add Patient", true); @@ -220,24 +245,97 @@ public class AddDialog extends JDialog { gbc.gridx = 0; gbc.gridy++; - inputPanel.add(new JLabel("Address:"), gbc); - + gbc.gridwidth = 1; + inputPanel.add(new JLabel("Địa chỉ"), gbc); + gbc.gridwidth = 3; gbc.gridx = 1; - provinceOptions = new String[]{"Province 1", "Province 2", "Province 3"}; - provinceComboBox = new JComboBox(provinceOptions); + customerAddressField = new JTextField(15); + inputPanel.add(customerAddressField, gbc); + + gbc.gridy++; + gbc.gridx = 1; + gbc.gridwidth = 1; + provinceComboBox = new JComboBox<>(LocalStorage.provinces); inputPanel.add(provinceComboBox, gbc); + gbc.gridx = 2; - districtOptions = new String[]{"District 1", "District 2", "District 3"}; - districtComboBox = new JComboBox(districtOptions); + districtComboBox = new JComboBox<>(new String[]{"Huyện 1", "Huyện 2", "Huyện 3"}); inputPanel.add(districtComboBox, gbc); + // set not editable + districtComboBox.setEnabled(false); + gbc.gridx = 3; - villagesOptions = new String[]{"Village 1", "Village 2", "Village 3"}; - villageComboBox = new JComboBox(villagesOptions); - inputPanel.add(villageComboBox, gbc); + wardComboBox = new JComboBox<>(new String[]{"Phường 1", "Phường 2", "Phường 3"}); + inputPanel.add(wardComboBox, gbc); + // set not editable + wardComboBox.setEnabled(false); + + // Province ComboBox Listener + provinceComboBox.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + int selectedIndex = provinceComboBox.getSelectedIndex(); + DefaultComboBoxModel districtModel = new DefaultComboBoxModel<>(new String[]{"Quận/Huyện"}); + districtComboBox.setModel(districtModel); // Set district combo box model + if (selectedIndex != 0) { // If the selected index is not 0 (which corresponds to "Tỉnh/Thành phố") + NetworkUtil.sendPacket(ClientHandler.ctx.channel(), new GetDistrictRequest(LocalStorage.provinceToId + .get(provinceComboBox.getSelectedItem().toString()))); + while (LocalStorage.districts == null || districtComboBox.getItemCount() <= 1) { + try { + Thread.sleep(100); // Wait for the district data to be fetched + if(LocalStorage.districts != null) { + districtModel = new DefaultComboBoxModel<>(LocalStorage.districts); + districtComboBox.setModel(districtModel); + } + } catch (InterruptedException interruptedException) { + interruptedException.printStackTrace(); + } + } + // Set district combo box model + districtComboBox.setEnabled(true); // Enable district combo box + wardComboBox.setSelectedItem("Xã/Phường"); // Set ward combo box to default value + wardComboBox.setEnabled(false); + } else { + districtComboBox.setEnabled(false); // Disable district combo box if "Tỉnh/Thành phố" is selected + wardComboBox.setEnabled(false); // Disable ward combo box as well + } + } + }); + // District ComboBox Listener + districtComboBox.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + int selectedIndex = districtComboBox.getSelectedIndex(); + DefaultComboBoxModel wardModel = new DefaultComboBoxModel<>(new String[]{"Xã/Phường"}); + wardComboBox.setModel(wardModel); // Set district combo box model + if (selectedIndex != 0) { // If the selected index is not 0 (which corresponds to "Quận/Huyện") + NetworkUtil.sendPacket(ClientHandler.ctx.channel(), new GetWardRequest(LocalStorage.districtToId + .get(districtComboBox.getSelectedItem().toString()))); + log.info("Sending GetWardRequest with district ID: {}", LocalStorage.districtToId + .get(districtComboBox.getSelectedItem().toString())); + while (LocalStorage.wards == null || wardComboBox.getItemCount() <= 1) { + try { + Thread.sleep(100); // Wait for the district data to be fetched + if(LocalStorage.wards != null) { + wardModel = new DefaultComboBoxModel<>(LocalStorage.wards); + wardComboBox.setModel(wardModel); + } + } catch (InterruptedException interruptedException) { + interruptedException.printStackTrace(); + } + } + wardComboBox.setSelectedItem("Xã/Phường"); // Set ward combo box to default value + wardComboBox.setEnabled(true); // Enable ward combo box + } else { + districtComboBox.setEnabled(false); // Disable district combo box if "Tỉnh/Thành phố" is selected + wardComboBox.setEnabled(false); // Disable ward combo box as well + } + } + }); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, inputPanel, scrollPane); splitPane.setResizeWeight(0.1); @@ -277,16 +375,34 @@ public class AddDialog extends JDialog { patientPhoneField.setText(patientPhone); patientGenderField.setSelectedItem(patientGender); - // Extract province, district, village from the address + // Extract province, district, ward from the address String[] addressParts = patientAddress.split(", "); - if (addressParts.length == 3) { - String village = addressParts[0]; - String district = addressParts[1]; - String province = addressParts[2]; + if (addressParts.length == 4) { + String address = addressParts[0]; + String ward = addressParts[1]; + String district = addressParts[2]; + String province = addressParts[3]; + customerAddressField.setText(address); + provinceComboBox.setSelectedIndex(findProvinceIndex(province)); + try { + Thread.sleep(100); + while(!districtComboBox.isEditable()) { + districtComboBox.setSelectedIndex(findDistrictIndex(district)); + break; + } + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + try { + Thread.sleep(100); + while(!wardComboBox.isEditable()) { + wardComboBox.setSelectedIndex(findWardIndex(ward)); + break; + } + } catch (InterruptedException e) { + throw new RuntimeException(e); + } - villageComboBox.setSelectedItem(village); - districtComboBox.setSelectedItem(district); - provinceComboBox.setSelectedItem(province); } } 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 445e4a8..7286cb7 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java @@ -314,6 +314,7 @@ public class CheckUpPage extends JPanel { dobPicker.setPreferredSize(new Dimension(100, 30)); inputPanel.add(dobPicker, gbc); + // Địa chỉ gbc.gridx = 0; gbc.gridy++; gbc.gridwidth = 1; diff --git a/src/main/java/BsK/client/ui/component/LandingPage/LandingPage.java b/src/main/java/BsK/client/ui/component/LandingPage/LandingPage.java index 908b12b..2492368 100644 --- a/src/main/java/BsK/client/ui/component/LandingPage/LandingPage.java +++ b/src/main/java/BsK/client/ui/component/LandingPage/LandingPage.java @@ -17,7 +17,7 @@ public class LandingPage extends JPanel { protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; - ImageIcon icon = new ImageIcon("/Users/lethanhdat/Documents/GitHub/ldS_BsK/src/main/java/BsK/client/ui/image/landingpagebg.jpeg"); + ImageIcon icon = new ImageIcon("src/main/java/BsK/client/ui/image/landingpagebg.jpeg"); Image image = icon.getImage(); g2d.drawImage(image, 0, 0, getWidth(), getHeight(), this); Color tint = new Color(0, 0, 0, 100); // Black tint with transparency diff --git a/src/main/resources/database/BSK.db b/src/main/resources/database/BSK.db index fca44f77a837010054a134bf7efacb29102f95ab..70f1bf71e3ca17ffb6ce8852372225fd338b570f 100644 GIT binary patch delta 306 zcmZoz5Yez8VuCc|*NHODj9)hiJ_cz~MkZE4 zMa}HV{c?sv-WjC|jm${GnIK^)kZ?i9!`%}VOm!5FOnA6^WwL@t{^12W3X>z`lqHO; z3=Kity!1v!7O0WJikg{|)#Qwj^crF6)#6{($i@VB1w--VcXDBqUFB8z^BRR1`4}XH z!LCy;o?IcHIQf>mTJwMT_W$yXK+FWh%s|Wn#H>Kf2E^<@%mKulK+FZi+(66&#JoVv a2gLk9EC9rUKr95r!ayvt{lB~@;|BniR%Lwv delta 232 zcmZoz5Yez8VuCc|=ZP}TjGs3qEam6slVsq};(Nf?#3#8~(BL(%c6Js^1`8j9v^XOZ ztFWS`DTA?aNXEn6-3l|lIm2T6%Sr6y;}8BNxcQx-9{GBNi#yeftnDk-R_DLr|C ztl?y9IYnM}Cb%d=>Ew5EVT@dpUF22y8ig787$k*(W(g{)mrkybPXtQblvis~Xj5Qp zQ($USU~W@jX;WZrQ($XTU~g04Xj9;9Q{ZY-;BHgkX;a{BQ{Zb;;BQk9Xj2euQxIxX N5N=ZtS*9TR0RYQ@I1>N>