From 106fc04a3d2775ee6c8b2bd32f649c423931cfdd Mon Sep 17 00:00:00 2001 From: mikael-zakaria Date: Wed, 26 Feb 2025 11:17:40 +0700 Subject: [PATCH] Update Desain & Birthdate Label untuk PBMC Bali --- app/Controllers/PrintLabel.php | 39 +++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/app/Controllers/PrintLabel.php b/app/Controllers/PrintLabel.php index 6da7abd..da966c3 100644 --- a/app/Controllers/PrintLabel.php +++ b/app/Controllers/PrintLabel.php @@ -31,6 +31,7 @@ class PrintLabel extends BaseController { return ['line1' => $line1, 'line2' => $line2]; } + // Untuk Ruang Laboratorium public function labelPostekCollection($access) { $time = microtime(true); @@ -41,10 +42,10 @@ class PrintLabel extends BaseController { $networkPath = ""; $db = \Config\Database::connect(); - $sql = "select p.PATNUMBER as UHID, sr.HOSTORDERNUMBER as BV, p.NAME, p.SEX, + $sql = "select p.PATNUMBER as UHID, sr.HOSTORDERNUMBER as BV, concat (p.FIRSTNAMESK, ' ', p.NAME) as NAME, p.SEX, DATEDIFF(YEAR, BirthDate, GETDATE()) - CASE WHEN MONTH(BirthDate) > MONTH(GETDATE()) OR (MONTH(BirthDate) = MONTH(GETDATE()) AND DAY(BirthDate) > DAY(GETDATE())) THEN 1 - ELSE 0 END AS AGE, sr.COLLECTIONDATE + ELSE 0 END AS AGE, sr.COLLECTIONDATE, p.BIRTHDATE from SP_REQUESTS sr left join SP_REQUESTS st on sr.SP_ACCESSNUMBER=st.SP_ACCESSNUMBER left join PATIENTS p on p.PATID=sr.PATID @@ -59,6 +60,14 @@ class PrintLabel extends BaseController { $title = $item['SEX'] == 1 ? "Mr" : "Mrs"; $name = $item['NAME']; $age = $item['AGE']; + $birthdate = $item['BIRTHDATE']; + $date = \DateTime::createFromFormat('Y-m-d H:i:s.v', $birthdate); + if ($date) { + $birthdate = $date->format('d/m/Y'); + } else { + $birthdate = ""; + } + $collectiondate = $item['COLLECTIONDATE']; $date = \DateTime::createFromFormat('Y-m-d H:i:s.v', $collectiondate); if ($date) { @@ -85,9 +94,10 @@ I8,A,001 D10 A4,3,0,2,1,1,N,\"$title.$name1\" A$jarak,20,0,2,1,1,N,\"$name2\" -A325,25,0,2,1,1,N,\"$sex {$age}Y\" -B15,50,0,1,4,8,70,N,\"$access\" -A120,125,0,2,1,1,N,\"REQ# $access\" +A4,42,0,1,1,1,N,\"DoB: $birthdate\" +A337,42,0,1,1,1,N,\"$sex {$age}Y\" +B15,57,0,1,4,8,70,N,\"$access\" +A120,132,0,1,1,1,N,\"REQ# $access\" A4,164,0,2,1,1,N,\"RM:$uhid\" A4,147,0,2,1,1,N,\"VN:$bv\" A195,164,0,2,1,1,N,\"$collectiondate\" @@ -135,7 +145,8 @@ P1 } - public function labelPostek($sample, $title, $name, $sex, $age, $barcode, $uhid, $bv, $collection_date) { + // Untuk Ruang Laboratorium + public function labelPostek($sample, $title, $name, $sex, $age, $barcode, $uhid, $bv, $collection_date, $birthdate) { $fixName = $this->splitName($name); $name1 = $fixName['line1']; $name2 = $fixName['line2']; @@ -157,7 +168,7 @@ A4,3,0,2,1,1,N,\"$title.$name1\" A$jarak,20,0,2,1,1,N,\"$name2\" A325,25,0,2,1,1,N,\"$sex {$age}Y\" A4,47,0,2,1,1,N,\"$sample\" -A265,47,0,2,1,1,N,\"Chapter\" +A204,47,0,2,1,1,N,\"DoB: $birthdate\" B37,68,0,1,4,8,70,N,\"$barcode\" A115,143,0,2,1,1,N,\"SAM# $barcode\" A4,165,0,2,1,1,N,\"RM:$uhid\" @@ -187,6 +198,7 @@ P1 return $sampleLabel; } + // Untuk Ruang Sampling public function labelZebra($sample, $title, $name, $sex, $age, $barcode, $uhid, $bv, $collection_date) { $sampleLabel ="N OD @@ -232,11 +244,11 @@ P1 $networkPath = ""; $db = \Config\Database::connect(); - $sql = "select p.PATNUMBER as UHID, sr.HOSTORDERNUMBER as BV, p.NAME, p.SEX, + $sql = "select p.PATNUMBER as UHID, sr.HOSTORDERNUMBER as BV, concat (p.FIRSTNAMESK, ' ',p.NAME) as NAME, p.SEX, DATEDIFF(YEAR, BirthDate, GETDATE()) - CASE WHEN MONTH(BirthDate) > MONTH(GETDATE()) OR (MONTH(BirthDate) = MONTH(GETDATE()) AND DAY(BirthDate) > DAY(GETDATE())) THEN 1 ELSE 0 END AS AGE, - ds.FULLTEXT, st.SAMPLETYPE+right(sr.SP_ACCESSNUMBER,5) as BARCODE, sr.COLLECTIONDATE + ds.FULLTEXT, st.SAMPLETYPE+right(sr.SP_ACCESSNUMBER,5) as BARCODE, sr.COLLECTIONDATE, p.BIRTHDATE from SP_TUBES st left join SP_REQUESTS sr on st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER left join PATIENTS p on p.PATID=sr.PATID @@ -263,6 +275,13 @@ P1 $barcode = $item['BARCODE']; $age = $item['AGE']; + $birthdate = $item['BIRTHDATE']; + $date = \DateTime::createFromFormat('Y-m-d H:i:s.v', $birthdate); + if ($date) { + $birthdate = $date->format('d/m/Y'); + } else { + $birthdate = ""; + } $collectiondate = $item['COLLECTIONDATE']; $date = \DateTime::createFromFormat('Y-m-d H:i:s.v', $collectiondate); if ($date) { @@ -274,7 +293,7 @@ P1 // Ruang Analis Printer POSTEK C168/200s if ($role === 'admin' || $role === 'user') { $printer = $this->printerLab(); - $label = $this->labelPostek($sample, $title, $name, $sex, $age, $barcode, $uhid, $bv, $collectiondate); + $label = $this->labelPostek($sample, $title, $name, $sex, $age, $barcode, $uhid, $bv, $collectiondate, $birthdate); } else if ($role === 'sampling') { $printer = $this->printerSampling(); $label = $this->labelZebra($sample, $title, $name, $sex, $age, $barcode, $uhid, $bv, $collectiondate);