1IX
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
Och parameters = new HashMap<>();
-
- // Set locale to Vietnamese for number formatting and dates
- parameters.put(JRParameter.REPORT_LOCALE, new Locale("vi", "VN"));
-
- // 2. Sample data parameters
- parameters.put("clinicName", "BSK CLINIC");
- parameters.put("clinicAddress", "123 Main Street, City, Country");
- parameters.put("clinicPhone", "0123-456-789");
-
- parameters.put("patientName", "Nguyễn Thị B");
- parameters.put("patientDOB", "20/07/1985");
- parameters.put("patientGender", "Nữ");
- parameters.put("patientAddress", "456 Đường DEF, Phường UVW, Quận 2, TP.HCM");
- parameters.put("patientDiagnos", "Theo dõi thai kỳ tuần 12");
-
- parameters.put("doctorName", "BS. Trần Văn C");
- parameters.put("checkupDate", "22/12/2024");
-
- // 3. Add the RTF content for the notes, with corrected font sizes.
- // RTF font sizes are in "half-points", so \fs24 = 12pt.
- String rtfContent = "{\\rtf1\\ansi\n" +
- "{\\fonttbl\\f0\\fnil Monospaced;\\f1\\fnil Times New Roman;}\n" +
- "{\\colortbl\\red0\\green0\\blue0;\\red51\\green51\\blue51;\\red0\\green0\\blue255;}\n" +
- "\n" +
- "\\li0\\ri0\\fi0\\f1\\fs28\\i0\\b\\ul0\\cf2 Test\\fs24\\cf1\\par\n" + // Heading at 14pt, main text at 12pt
- "\\par\n" +
- "dawdawd\\par\n" +
- "ad\\par\n" +
- " aw\\par\n" +
- "daw da\\b0 daw dad aw\\ul d awd awd \\par\n" +
- "\\ul0\\tab\\tab\\ul awdawd\\ul0\\par\n" +
- "\\li0\\ri0\\fi0\\ul0\\par\n" +
- "}";
- parameters.put("checkupNote", rtfContent);
- parameters.put("checkupConclusion", "Thai nhi phát triển bình thường, dự kiến sinh trong 3 tháng tới."); // Normal string
- parameters.put("checkupSuggestion", "Bổ sung sắt và canxi, tái khám sau 4 tuần."); // Normal string
-
-
- // 4. Add the re-checkup date
- parameters.put("reCheckupDate", "ngày 29 tháng 12 năm 2024");
-
- // 5. Add barcode number
- parameters.put("barcodeNumber", "2024001235");
-
- // 6. Set the number of images to display
- int numberOfImages = 4;
- parameters.put("numberImage", numberOfImages);
-
- // 7. Add logo image path
- String projectDir = System.getProperty("user.dir");
- String logoPath = projectDir + "/src/main/java/BsK/client/ui/assets/icon/logo.jpg";
- parameters.put("logoImage", logoPath);
-
- // 8. Add paths for the 6 ultrasound images
- String imageDir = projectDir + "/img_db/8/";
- String[] imageFiles = {
- "IMG_8_20250619_033320.jpg",
- "IMG_8_20250619_033621.jpg",
- "IMG_8_20250619_033622.jpg",
- "IMG_8_20250619_033623.jpg",
- "IMG_8_20250628_220921.jpg",
- "IMG_9_20250619_034013.jpg"
- };
-
- for (int i = 0; i < 6; i++) {
- if (i < numberOfImages) {
- parameters.put("image" + (i + 1), imageDir + imageFiles[i]);
- } else {
- parameters.put("image" + (i + 1), null); // Pass null for unused image slots
- }
- }
-
- // 9. Load and compile the report
- String jrxmlPath = projectDir + "/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jrxml";
- InputStream inputStream = new FileInputStream(new File(jrxmlPath));
-
- JasperDesign jasperDesign = JRXmlLoader.load(inputStream);
- JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
-
- // 10. Fill the report. Since there's no table, we use an JREmptyDataSource.
- JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
-
- // 11. View the report
- JasperViewer.viewReport(jasperPrint, false); // `false` to prevent app exit on close
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jasper b/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jasper
deleted file mode 100644
index 85a7db4825c4ffdd7d59c382cf683719187b7346..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 43444
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 CAST(strftime('%s', date('now', 'localtime', 'start of day')) AS INTEGER) * 1000
- AND
- a.checkup_date < CAST(strftime('%s', date('now', 'localtime', 'start of day', '+1 day')) AS INTEGER) * 1000"""
+ date(a.checkup_date / 1000, 'unixepoch', '+7 hours') = date('now', '+7 hours')"""
);
if (!rs.isBeforeFirst()) {
@@ -2196,15 +2194,22 @@ public class ServerHandler extends SimpleChannelInboundHandler= CAST(strftime('%s', date('now', 'localtime', 'start of day')) AS INTEGER) * 1000\n" +
- "AND a.checkup_date < CAST(strftime('%s', date('now', 'localtime', 'start of day', '+1 day')) AS INTEGER) * 1000"
+ """
+ SELECT
+ a.checkup_id, a.checkup_date, c.customer_last_name, c.customer_first_name,
+ d.doctor_first_name, d.doctor_last_name, a.suggestion, a.diagnosis, a.notes,
+ a.status, a.customer_id, c.customer_number, c.customer_address,
+ a.customer_weight, a.customer_height, c.customer_gender, c.customer_dob,
+ a.checkup_type, a.conclusion, a.reCheckupDate, c.cccd_ddcn, a.heart_beat,
+ a.blood_pressure, c.drive_url, a.doctor_ultrasound_id, a.queue_number
+ FROM
+ checkup AS a
+ JOIN
+ customer AS c ON a.customer_id = c.customer_id
+ JOIN
+ Doctor D ON a.doctor_id = D.doctor_id
+ WHERE
+ date(a.checkup_date / 1000, 'unixepoch', '+7 hours') = date('now', '+7 hours')"""
);
String[][] resultArray;
diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/medserinvoice.jrxml b/src/main/resources/print_forms/medserinvoice.jrxml
similarity index 95%
rename from src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/medserinvoice.jrxml
rename to src/main/resources/print_forms/medserinvoice.jrxml
index b08e504..c95111c 100644
--- a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/medserinvoice.jrxml
+++ b/src/main/resources/print_forms/medserinvoice.jrxml
@@ -35,7 +35,7 @@
-
+
@@ -61,7 +61,6 @@
-
@@ -69,6 +68,7 @@
+
@@ -563,45 +563,41 @@
-
-
-
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jrxml b/src/main/resources/print_forms/ultrasoundresult.jrxml
similarity index 100%
rename from src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult.jrxml
rename to src/main/resources/print_forms/ultrasoundresult.jrxml
diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult_potrait.jrxml b/src/main/resources/print_forms/ultrasoundresult_potrait.jrxml
similarity index 100%
rename from src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/print_forms/ultrasoundresult_potrait.jrxml
rename to src/main/resources/print_forms/ultrasoundresult_potrait.jrxml
diff --git a/temp-jar-extract/META-INF/MANIFEST.MF b/temp-jar-extract/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c76b615
--- /dev/null
+++ b/temp-jar-extract/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Created-By: Maven Archiver 3.6.1
+Build-Jdk-Spec: 21
+Main-Class: BsK.client.Client
+
diff --git a/temp/barcodes/invoice_barcode.png b/temp/barcodes/invoice_barcode.png
new file mode 100644
index 0000000000000000000000000000000000000000..5bcacfa4ab0163c904fc80d617979febc67012b4
GIT binary patch
literal 103
zcmeAS@N?(olHy`uVBq!ia0vp^CxF<95lAo?YOVAEQhJ^)jv*Cs$v^)8|8HOR^WXn7
x^86>v|NS^z@u0r>Xmiy9jl(O>Kw!sYMur9I?pOY9wKM{m;OXk;vd$@?2>`;NCx`$5
literal 0
HcmV?d00001
diff --git a/temp/qrcodes/invoice_qrcode.png b/temp/qrcodes/invoice_qrcode.png
new file mode 100644
index 0000000000000000000000000000000000000000..2053e46bc0858c6f22ed3c0a65e0374eb935fabd
GIT binary patch
literal 519
zcmV+i0{H!jP)RU0005bNklMn0Hvyl$;&YS!@A>
zVM0oyb)tofvOkEefY`ZdvnKW?boGOt3K)9QnheFxJ_*Jkg`0~0Y$ve{F(Hf*c3>^y
zk3++)fJhHBIDsWbC@N}S3Gv`cGCWgewl0O+rH!FoPyCE}7{%TYj}