Update Desain & Birthdate Label untuk PBMC Bali

This commit is contained in:
mikael-zakaria 2025-02-26 11:17:40 +07:00
parent 318c79582c
commit 106fc04a3d

View File

@ -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);