From 64a6aeeb154fac3896321476c97fa9f99ed5a58c 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: Mon, 21 Jul 2025 00:52:13 +0700 Subject: [PATCH] [update] Enhance CheckUpPage and HistoryViewDialog by adding comprehensive patient vitals including height, weight, heart rate, and blood pressure. Update data handling and UI components to reflect these changes, ensuring a more detailed patient history and improved user experience. Revise database queries and report generation to accommodate new fields. --- .../ui/component/CheckUpPage/CheckUpPage.java | 72 ++++++++++++------ .../HistoryViewDialog/HistoryViewDialog.java | 58 +++++++++++++- .../PrintDialog/UltrasoundResult.java | 19 ++++- .../print_forms/ultrasoundresult.jrxml | 32 +++++++- .../component/common/DateLabelFormatter.java | 26 ++++--- .../packet/res/GetPatientHistoryResponse.java | 34 --------- .../server/network/handler/ServerHandler.java | 12 ++- src/main/resources/database/BSK.db | Bin 1196032 -> 1196032 bytes 8 files changed, 179 insertions(+), 74 deletions(-) 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 10de395..7fb714a 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java @@ -1230,7 +1230,7 @@ public class CheckUpPage extends JPanel { new Font("Arial", Font.BOLD, 16), new Color(63, 81, 181) ) )); - String historyColumns[] = {"Ngày Tháng","Mã khám bệnh", "Triệu chứng", "Chẩn đoán", "Ghi chú"}; + String historyColumns[] = {"Ngày khám", "Loại khám", "Kết luận", "Cao (cm)", "Nặng (kg)", "Nhịp tim", "Huyết áp"}; historyModel = new DefaultTableModel(this.history, historyColumns) { @Override public boolean isCellEditable(int row, int column) { return false; } }; @@ -1246,8 +1246,8 @@ public class CheckUpPage extends JPanel { // Check if the row index is valid for our data array if (selectedRow >= 0 && history != null && selectedRow < history.length) { String[] selectedHistory = history[selectedRow]; - // Ensure the selected record has enough data fields - if (selectedHistory != null && selectedHistory.length >= 11) { + // Ensure the selected record has enough data fields (now need 15 for vitals) + if (selectedHistory != null && selectedHistory.length >= 15) { String checkupId = selectedHistory[1]; String patientName = customerFirstNameField.getText() + " " + customerLastNameField.getText(); String checkupDate = selectedHistory[0]; @@ -1257,8 +1257,12 @@ public class CheckUpPage extends JPanel { String conclusion = selectedHistory[7]; String reCheckupDate = selectedHistory[8]; String doctorName = selectedHistory[9] + " " + selectedHistory[10]; - - openHistoryViewDialog(checkupId, patientName, checkupDate, suggestion, diagnosis, conclusion, notes, reCheckupDate, doctorName); + String customerHeight = selectedHistory[11]; // customer_height + String customerWeight = selectedHistory[12]; // customer_weight + String heartRate = selectedHistory[13]; // heart_beat + String bloodPressure = selectedHistory[14]; // blood_pressure + + openHistoryViewDialog(checkupId, patientName, checkupDate, suggestion, diagnosis, conclusion, notes, reCheckupDate, doctorName, customerHeight, customerWeight, heartRate, bloodPressure); } else { log.warn("Selected history record has incomplete data. Length: {}", (selectedHistory != null ? selectedHistory.length : "null")); } @@ -1598,7 +1602,11 @@ public class CheckUpPage extends JPanel { recheckupDatePicker.getJFormattedTextField().getText(), selectedImagesForPrint, printType, - templateTitle + templateTitle, + customerHeightSpinner.getValue().toString(), + customerWeightSpinner.getValue().toString(), + patientHeartRateSpinner.getValue().toString(), + bloodPressureSystolicSpinner.getValue() + "/" + bloodPressureDiastolicSpinner.getValue() ); JasperPrint jasperPrintToPrint; @@ -1659,7 +1667,11 @@ public class CheckUpPage extends JPanel { recheckupDatePicker.getJFormattedTextField().getText(), selectedImagesForPrint, printType, - templateTitle + templateTitle, + customerHeightSpinner.getValue().toString(), + customerWeightSpinner.getValue().toString(), + patientHeartRateSpinner.getValue().toString(), + bloodPressureSystolicSpinner.getValue() + "/" + bloodPressureDiastolicSpinner.getValue() ); JasperPrint jasperPrintToView; @@ -2031,23 +2043,33 @@ public class CheckUpPage extends JPanel { private void handleGetPatientHistoryResponse(GetPatientHistoryResponse response) { SwingUtilities.invokeLater(() -> { - log.info("Received patient history"); - this.history = response.getHistory(); // Keep original 6-column data for the dialog - - // Prepare data specifically for the 5-column table view - String[][] tableData = new String[this.history.length][5]; - for (int i = 0; i < this.history.length; i++) { - if (this.history[i] != null && this.history[i].length >= 6) { - // 0: checkup_date, 1: checkup_id, 2: suggestion, 3: diagnosis, 4: prescription_id, 5: notes, 6: checkup_type, 7: conclusion - // display 0, 1, 6, 7 - tableData[i][0] = this.history[i][0]; - tableData[i][1] = this.history[i][1]; - tableData[i][2] = this.history[i][6]; - tableData[i][3] = this.history[i][7]; + log.info("Received patient history"); + this.history = response.getHistory(); // Keep original data for the dialog + + if (this.history != null && this.history.length > 0) { + // Prepare data specifically for the 7-column table view + String[] historyColumns = {"Ngày khám", "Loại khám", "Kết luận", "Cao (cm)", "Nặng (kg)", "Nhịp tim", "Huyết áp"}; + String[][] tableData = new String[this.history.length][7]; + + for (int i = 0; i < this.history.length; i++) { + if (this.history[i] != null && this.history[i].length >= 15) { + // 0: checkup_date, 1: checkup_id, 2: suggestion, 3: diagnosis, 4: prescription_id, 5: notes, 6: checkup_type, + // 7: conclusion, 8: reCheckupDate, 9: doctor_last_name, 10: doctor_first_name, 11: customer_height, 12: customer_weight, + // 13: heart_beat, 14: blood_pressure + tableData[i][0] = this.history[i][0]; // Ngày khám + tableData[i][1] = this.history[i][6]; // Loại khám + tableData[i][2] = this.history[i][7]; // Kết luận + tableData[i][3] = this.history[i][11]; // Cao (cm) + tableData[i][4] = this.history[i][12]; // Nặng (kg) + tableData[i][5] = this.history[i][13]; // Nhịp tim + tableData[i][6] = this.history[i][14]; // Huyết áp + } } + historyModel.setDataVector(tableData, historyColumns); + } else { + // Clear the table if there is no history + historyModel.setRowCount(0); } - - historyModel.setDataVector(tableData, new String[]{"Ngày Tháng","Mã khám bệnh", "Loại khám", "Kết luận"}); }); } @@ -3686,10 +3708,10 @@ public class CheckUpPage extends JPanel { /** * Opens the history view dialog for the selected checkup */ - private void openHistoryViewDialog(String checkupId, String patientName, String checkupDate, String suggestion, String diagnosis, String conclusion, String notes, String reCheckupDate, String doctorName) { + private void openHistoryViewDialog(String checkupId, String patientName, String checkupDate, String suggestion, String diagnosis, String conclusion, String notes, String reCheckupDate, String doctorName, String customerHeight, String customerWeight, String heartRate, String bloodPressure) { try { - // Pass all the necessary details to the dialog - HistoryViewDialog historyDialog = new HistoryViewDialog(mainFrame, checkupId, patientName, checkupDate, suggestion, diagnosis, conclusion, notes, reCheckupDate, doctorName); + // Pass all the necessary details to the dialog including vitals + HistoryViewDialog historyDialog = new HistoryViewDialog(mainFrame, checkupId, patientName, checkupDate, suggestion, diagnosis, conclusion, notes, reCheckupDate, doctorName, customerHeight, customerWeight, heartRate, bloodPressure); historyDialog.setVisible(true); } catch (Exception e) { log.error("Error opening history view dialog", e); diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/HistoryViewDialog/HistoryViewDialog.java b/src/main/java/BsK/client/ui/component/CheckUpPage/HistoryViewDialog/HistoryViewDialog.java index 10c3262..694d32d 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/HistoryViewDialog/HistoryViewDialog.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/HistoryViewDialog/HistoryViewDialog.java @@ -10,6 +10,8 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; @@ -49,6 +51,12 @@ public class HistoryViewDialog extends JDialog { private String[][] medicinePrescription; private String[][] servicePrescription; + // Vitals data + private String customerHeight; + private String customerWeight; + private String heartRate; + private String bloodPressure; + // UI Components private JLabel imagePreviewLabel; private JPanel imageListPanel; @@ -76,7 +84,7 @@ public class HistoryViewDialog extends JDialog { private final ResponseListener orderInfoListener = this::handleGetOrderInfoResponse; private final ResponseListener imagesListener = this::handleGetImagesResponse; - public HistoryViewDialog(Frame parent, String checkupId, String patientName, String checkupDate, String suggestion, String diagnosis, String conclusion, String notes, String reCheckupDate, String doctorName) { + public HistoryViewDialog(Frame parent, String checkupId, String patientName, String checkupDate, String suggestion, String diagnosis, String conclusion, String notes, String reCheckupDate, String doctorName, String customerHeight, String customerWeight, String heartRate, String bloodPressure) { super(parent, "Xem chi tiết lịch sử khám - " + patientName, true); this.checkupId = checkupId; this.patientName = patientName; @@ -90,6 +98,10 @@ public class HistoryViewDialog extends JDialog { this.conclusion = conclusion; this.reCheckupDate = reCheckupDate; this.doctorName = doctorName; + this.customerHeight = customerHeight; + this.customerWeight = customerWeight; + this.heartRate = heartRate; + this.bloodPressure = bloodPressure; initializeDialog(parent); setupUI(); @@ -288,6 +300,50 @@ public class HistoryViewDialog extends JDialog { JLabel checkupIdLabel = new JLabel(checkupId); checkupIdLabel.setFont(valueFont); patientInfoPanel.add(checkupIdLabel, gbc); + + // --- ROW 4 - Vitals Information --- + gbc.gridy = 4; + gbc.gridx = 0; + JLabel heightLabel = new JLabel("Chiều cao:"); + heightLabel.setFont(labelFont); + patientInfoPanel.add(heightLabel, gbc); + + gbc.gridx = 1; + JLabel heightValueLabel = new JLabel(getDisplayableString(this.customerHeight) + " cm"); + heightValueLabel.setFont(valueFont); + patientInfoPanel.add(heightValueLabel, gbc); + + gbc.gridx = 2; + JLabel weightLabel = new JLabel("Cân nặng:"); + weightLabel.setFont(labelFont); + patientInfoPanel.add(weightLabel, gbc); + + gbc.gridx = 3; + JLabel weightValueLabel = new JLabel(getDisplayableString(this.customerWeight) + " kg"); + weightValueLabel.setFont(valueFont); + patientInfoPanel.add(weightValueLabel, gbc); + + // --- ROW 5 - Heart Rate and Blood Pressure --- + gbc.gridy = 5; + gbc.gridx = 0; + JLabel heartRateLabel = new JLabel("Nhịp tim:"); + heartRateLabel.setFont(labelFont); + patientInfoPanel.add(heartRateLabel, gbc); + + gbc.gridx = 1; + JLabel heartRateValueLabel = new JLabel(getDisplayableString(this.heartRate) + " bpm"); + heartRateValueLabel.setFont(valueFont); + patientInfoPanel.add(heartRateValueLabel, gbc); + + gbc.gridx = 2; + JLabel bloodPressureLabel = new JLabel("Huyết áp:"); + bloodPressureLabel.setFont(labelFont); + patientInfoPanel.add(bloodPressureLabel, gbc); + + gbc.gridx = 3; + JLabel bloodPressureValueLabel = new JLabel(getDisplayableString(this.bloodPressure) + " mmHg"); + bloodPressureValueLabel.setFont(valueFont); + patientInfoPanel.add(bloodPressureValueLabel, gbc); headerPanel.add(patientInfoPanel, BorderLayout.CENTER); diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/UltrasoundResult.java b/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/UltrasoundResult.java index ea1de65..c0b6bbb 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/UltrasoundResult.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/UltrasoundResult.java @@ -77,6 +77,12 @@ public class UltrasoundResult { private final List selectedImages; private final String printType; // "ngang" or "dọc" private final String templateTitle; + + // Vitals data + private final String customerHeight; + private final String customerWeight; + private final String heartRate; + private final String bloodPressure; private static final String PDF_PATH = "ultrasound_result.pdf"; @@ -84,7 +90,8 @@ public class UltrasoundResult { String patientAddress, String doctorName, String checkupDate, String rtfContent, String conclusion, String suggestion, String recheckupDate, List selectedImages, - String printType, String templateTitle) { + String printType, String templateTitle, String customerHeight, + String customerWeight, String heartRate, String bloodPressure) { // Defensive null checks to prevent JasperReports from crashing on null parameters this.checkupId = checkupId != null ? checkupId : ""; @@ -101,6 +108,10 @@ public class UltrasoundResult { this.selectedImages = selectedImages != null ? selectedImages : new ArrayList<>(); this.printType = printType != null ? printType : ""; this.templateTitle = templateTitle != null ? templateTitle : ""; + this.customerHeight = customerHeight != null ? customerHeight : ""; + this.customerWeight = customerWeight != null ? customerWeight : ""; + this.heartRate = heartRate != null ? heartRate : ""; + this.bloodPressure = bloodPressure != null ? bloodPressure : ""; } public void showDirectJasperViewer() { @@ -153,6 +164,12 @@ public class UltrasoundResult { parameters.put("checkupConclusion", this.conclusion); parameters.put("checkupSuggestion", this.suggestion); parameters.put("reCheckupDate", this.recheckupDate); + + // Vitals data + parameters.put("checkupHeight", this.customerHeight); + parameters.put("checkupWeight", this.customerWeight); + parameters.put("checkupHeartBeat", this.heartRate); + parameters.put("checkupBloodPressure", this.bloodPressure); // Handle images int numberOfImages = this.selectedImages.size(); diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jrxml b/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jrxml index 9b391b7..3cf54a2 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jrxml +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jrxml @@ -36,10 +36,14 @@ + + + + @@ -111,12 +115,36 @@ <element kind="textField" uuid="5ae67e13-7a79-437f-bfb8-c720d896720d" x="60" y="124" width="340" height="26" fontName="Times New Roman" fontSize="10.0"> <expression><![CDATA[$P{patientDiagnos}]]></expression> </element> - <element kind="staticText" uuid="b1fa845a-48da-4e45-82b8-8b9d972650f6" x="0" y="146" width="100" height="30" forecolor="#FF0905" fontName="Times New Roman" fontSize="15.0" bold="true"> + <element kind="staticText" uuid="b1fa845a-48da-4e45-82b8-8b9d972650f6" x="0" y="184" width="100" height="30" forecolor="#FF0905" fontName="Times New Roman" fontSize="15.0" bold="true"> <text><![CDATA[II.Nội dung]]></text> </element> - <element kind="textField" uuid="6d652a25-b701-45bd-91ba-750842650004" x="0" y="164" width="400" height="376" markup="rtf" fontName="Times New Roman" fontSize="10.0"> + <element kind="textField" uuid="6d652a25-b701-45bd-91ba-750842650004" x="0" y="200" width="400" height="340" markup="rtf" fontName="Times New Roman" fontSize="10.0"> <expression><![CDATA[$P{checkupNote}]]></expression> </element> + <element kind="staticText" uuid="8f720f6a-0257-4556-b3bc-3b81ad4f8099" x="1" y="150" width="59" height="16" fontName="Times New Roman" fontSize="10.0" bold="true" hTextAlign="Left"> + <text><![CDATA[Chiều cao:]]></text> + </element> + <element kind="staticText" uuid="a57e7a9d-4ac7-4219-b268-cd08ce943327" x="100" y="150" width="59" height="16" fontName="Times New Roman" fontSize="10.0" bold="true" hTextAlign="Left"> + <text><![CDATA[Cân nặng:]]></text> + </element> + <element kind="staticText" uuid="2b9cfd9d-ec8f-4036-9c96-039fd7855e24" x="200" y="150" width="59" height="16" fontName="Times New Roman" fontSize="10.0" bold="true" hTextAlign="Left"> + <text><![CDATA[Nhịp tim:]]></text> + </element> + <element kind="staticText" uuid="c1356370-11ce-4b68-97d6-ce6e18e306c5" x="290" y="150" width="59" height="16" fontName="Times New Roman" fontSize="10.0" bold="true" hTextAlign="Left"> + <text><![CDATA[Huyết áp:]]></text> + </element> + <element kind="textField" uuid="3e1069a6-daea-45c2-b21f-935b49baba45" x="50" y="150" width="50" height="16" fontName="Times New Roman" fontSize="10.0"> + <expression><![CDATA[$P{checkupHeight} +" cm"]]></expression> + </element> + <element kind="textField" uuid="fb080012-3196-4535-bcd2-e87274c66fa5" x="150" y="150" width="50" height="16" fontName="Times New Roman" fontSize="10.0"> + <expression><![CDATA[$P{checkupWeight} + " kg"]]></expression> + </element> + <element kind="textField" uuid="e4185ffe-8712-41e3-a9ff-2be6569dff15" x="243" y="150" width="47" height="16" fontName="Times New Roman" fontSize="10.0"> + <expression><![CDATA[$P{checkupHeartBeat} + " bpm"]]></expression> + </element> + <element kind="textField" uuid="6b0b21be-2ca3-4594-bbe9-34868e13eb1e" x="335" y="150" width="63" height="16" fontName="Times New Roman" fontSize="10.0"> + <expression><![CDATA[$P{checkupBloodPressure} +" mmHg"]]></expression> + </element> </element> <element kind="frame" uuid="a72ffc70-007e-43af-a566-b34e6e07b312" x="400" y="0" width="400" height="540"> <element kind="staticText" uuid="246a04b0-2565-4987-b7f3-dd369703035c" x="0" y="340" width="100" height="30" forecolor="#FF0905" fontName="Times New Roman" fontSize="15.0" bold="true"> diff --git a/src/main/java/BsK/client/ui/component/common/DateLabelFormatter.java b/src/main/java/BsK/client/ui/component/common/DateLabelFormatter.java index c8a3f98..78eee0f 100644 --- a/src/main/java/BsK/client/ui/component/common/DateLabelFormatter.java +++ b/src/main/java/BsK/client/ui/component/common/DateLabelFormatter.java @@ -24,33 +24,41 @@ public class DateLabelFormatter extends JFormattedTextField.AbstractFormatter { if (text == null || text.trim().isEmpty()) { return null; } - + // Clean up the input text text = text.trim(); - + java.util.Date parsedDate; + // Handle different input formats that users might type if (text.matches("\\d{1,2}/\\d{1,2}/\\d{4}")) { // Standard format: dd/mm/yyyy or d/m/yyyy - return dateFormatter.parseObject(text); + parsedDate = (java.util.Date) dateFormatter.parseObject(text); } else if (text.matches("\\d{1,2}-\\d{1,2}-\\d{4}")) { // Handle dash format: dd-mm-yyyy text = text.replace("-", "/"); - return dateFormatter.parseObject(text); + parsedDate = (java.util.Date) dateFormatter.parseObject(text); } else if (text.matches("\\d{1,2}\\.\\d{1,2}\\.\\d{4}")) { // Handle dot format: dd.mm.yyyy text = text.replace(".", "/"); - return dateFormatter.parseObject(text); + parsedDate = (java.util.Date) dateFormatter.parseObject(text); } else if (text.matches("\\d{8}")) { // Handle compact format: ddmmyyyy String day = text.substring(0, 2); String month = text.substring(2, 4); String year = text.substring(4, 8); text = day + "/" + month + "/" + year; - return dateFormatter.parseObject(text); + parsedDate = (java.util.Date) dateFormatter.parseObject(text); + } else { + // If none of the formats match, try default parsing + parsedDate = (java.util.Date) dateFormatter.parseObject(text); } - - // If none of the formats match, try default parsing - return dateFormatter.parseObject(text); + + if (parsedDate != null) { + Calendar cal = Calendar.getInstance(); + cal.setTime(parsedDate); + return cal; + } + return null; } @Override diff --git a/src/main/java/BsK/common/packet/res/GetPatientHistoryResponse.java b/src/main/java/BsK/common/packet/res/GetPatientHistoryResponse.java index 1f5f044..1d9d508 100644 --- a/src/main/java/BsK/common/packet/res/GetPatientHistoryResponse.java +++ b/src/main/java/BsK/common/packet/res/GetPatientHistoryResponse.java @@ -14,38 +14,4 @@ import java.util.List; @Slf4j public class GetPatientHistoryResponse implements Packet { private String[][] history; - private transient List<PatientHistory> patientHistoryList; - - public GetPatientHistoryResponse(String[][] history) { - this.history = history; - this.patientHistoryList = convertToPatientHistoryList(history); - } - - /** - * Converts the raw string array data to a list of PatientHistory objects - * @param history Raw patient history data as string arrays - * @return List of PatientHistory objects - */ - private List<PatientHistory> convertToPatientHistoryList(String[][] history) { - List<PatientHistory> result = new ArrayList<>(); - if (history != null) { - for (String[] data : history) { - if (data.length >= 6) { - result.add(new PatientHistory(data)); - } - } - } - return result; - } - - /** - * Returns the patient history list, converting from raw data if needed - * @return List of PatientHistory objects - */ - public List<PatientHistory> getPatientHistoryList() { - if (patientHistoryList == null && history != null) { - patientHistoryList = convertToPatientHistoryList(history); - } - return patientHistoryList; - } } \ No newline at end of file diff --git a/src/main/java/BsK/server/network/handler/ServerHandler.java b/src/main/java/BsK/server/network/handler/ServerHandler.java index 039e232..a881f59 100644 --- a/src/main/java/BsK/server/network/handler/ServerHandler.java +++ b/src/main/java/BsK/server/network/handler/ServerHandler.java @@ -294,7 +294,11 @@ public class ServerHandler extends SimpleChannelInboundHandler<TextWebSocketFram C.conclusion, C.reCheckupDate, D.doctor_last_name, - D.doctor_first_name + D.doctor_first_name, + C.customer_height, + C.customer_weight, + C.heart_beat, + C.blood_pressure FROM Checkup C JOIN Doctor D ON C.doctor_id = D.doctor_id WHERE C.status = ? AND C.customer_id = ? ORDER BY C.checkup_date DESC; """; @@ -311,7 +315,7 @@ public class ServerHandler extends SimpleChannelInboundHandler<TextWebSocketFram } else { ArrayList<String[]> resultList = new ArrayList<>(); while (rs.next()) { - String[] historyEntry = new String[11]; // Corrected size from 9 to 11 + String[] historyEntry = new String[15]; String checkupDateStr = rs.getString("checkup_date"); try { @@ -334,6 +338,10 @@ public class ServerHandler extends SimpleChannelInboundHandler<TextWebSocketFram historyEntry[8] = rs.getString("reCheckupDate"); historyEntry[9] = rs.getString("doctor_last_name"); historyEntry[10] = rs.getString("doctor_first_name"); + historyEntry[11] = rs.getString("customer_height"); + historyEntry[12] = rs.getString("customer_weight"); + historyEntry[13] = rs.getString("heart_beat"); + historyEntry[14] = rs.getString("blood_pressure"); resultList.add(historyEntry); } diff --git a/src/main/resources/database/BSK.db b/src/main/resources/database/BSK.db index 01a4932ee8199f6f2b57a24c425cd6a010617082..156d1364a958d9203aa0b640ed77b4fdefb97d26 100644 GIT binary patch delta 863 zcmY+CKWGzS7{<RZ_a}ErE|)i#OPfotA;u^g4`Y(jp{al9l(7~S2Qh+zP?2DVDk7$L zmb$5ANS6*mK_`bsy-A6SxLHATsi+ymrp2YuRo}~9f*F2r@I2r1z0dnyy<Vx;E02>@ zelj*g<)!MYD*YsL&*cx&trq0pgzUXB`o*W56w;Iukx3Tvg$W}+X%zA+TPce85C&lp z4&f0$A|N6XK!QjJk&rMVBN2Nm1=)5=+#n)fCVW{^!mGi(K-K>(a6o=1X#5CU_w6<y zf8Bog1731*Yg|$|B2s2fg=Hz7PzfP|YTy0?D|EDYyjYrwML9w#lgUYvgrXxir@N44 z9o5!;!zyJ1YoykEy$v^FWwmdYhwX_{FHPyo|D`Qrn&7B}(DU}wE+i<6pBI~NcVHrJ z>JcUFOmNwdEq`wUXTnw&c&a(4EMFKapkb1bWhvv$Xz%aBylXHI$*$pwN-P+3+}r`# z?KmCpO+_*~4&6(@j_<eO@IfcvX&oX9gl+_Gl7;YBuFTiiWBxU1%J)L}99+k3o{gAh znQ<4H!As`T&)PqMHXi9*v)zGEbF&zYHotd(*I6d(gf88oo;`=H28-4ILZ?^Cyc=+I zkuio!8NcAFS4#4`h6{vP{(kGm_~<_G<eMiNXEcSXt#g{@9XQInH(pc0f{gdltz1I! z^pb!&u5ocl@5Xgkw?=}lKC8lm`~5ApPDSh9`J&I&4Fjy1f!@`}yz{Y;d;g`OMj!Lh ed!8X7x&al{dB^^Mv#LpZ|5~e-JVMu_r~d&-4YNf6 delta 221 zcmZo@@N8)CoFL7}Gf~Ewk*6_XYXaj%e%2HGD|m}G3mWX@+5TCE@fwq`4TmBlBLgS1 zw2^_4sjh*!uAxQy9eG9|W&&bnAZ7t#Rv=~rVs;?r0Afxc<^p1FAm#yLULfWJVtybN z*nUS|Q1yU30|NsmhZF-}63+wfU0idylDRZF-*Il@kYW>OX<&LYS<oP3d&dL8Ev(zw zO@u-jCtHbjZkKu?ID>KfCQBhdHUVCs0Xz&-8Ti?Gukg&|F4!)hAoPWQD~r${djLX7 BM56!z