Compare commits

...

67 Commits

Author SHA1 Message Date
mikael-zakaria
d323d8a5c9 update printLabel to add commented label if changing printer 2026-02-18 09:12:56 +08:00
mikael-zakaria
5c0f876d05 Update + 15 untuk sudut Y untuk printer Lab Bali v2 2026-01-05 15:27:32 +07:00
mikael-zakaria
8e2d75d1d6 Update + 15 untuk sudut Y untuk printer Lab Bali 2026-01-05 15:16:13 +07:00
mikael-zakaria
43a860d108 Update Urutan BIOCHEMISTRY_23 diatas ENDOCHRONOLOGY_63 2025-11-10 15:30:20 +07:00
mikael-zakaria
9f348e05b8 Update Colspan Free text menjad 4 baris 2025-11-07 14:26:23 +08:00
mikael-zakaria
ca8955fa4e Update View Dashboard(fo,sampling,admin) : Patient#, Patient Name dan HIS# bisa di copy hanya dengan 2 klik 2025-10-01 15:18:39 +07:00
mikael-zakaria
dcb1981e70 Update Ip Printer Label Sampling Baliv2 2025-06-25 12:47:55 +07:00
mikael-zakaria
d449975a54 Update Ip Printer Label Sampling Bali 2025-06-25 12:43:47 +07:00
mikael-zakaria
e31cee76a7 Update indeirect bilirubin, rasio albumin, globulin dan chol menjadi serum 2025-06-05 13:30:30 +07:00
mikael-zakaria
f6b390f7f0 Update agar test BILIN tidak ditampilkan pada Laporan Hasil 2025-05-13 12:34:09 +07:00
mikael-zakaria
8070f5cdb5 Update Test FE pada Hematologi Bisa Merah 2025-05-10 11:06:36 +08:00
mikael-zakaria
7c3fcdcb2c Revert Back 2025-05-04 20:34:01 +07:00
mikael-zakaria
b0ba2a4df2 Update Untuk STC2 yang testcodenya Null v2 2025-05-04 20:31:04 +07:00
mikael-zakaria
c529c5e0b3 Update Untuk STC2 yang testcodenya Null 2025-05-04 20:29:44 +07:00
mikael-zakaria
9ec94ad3e1 Update Menghilangkan Excluded Red Pada Test : Anti HIV, Anti HCV, Anti HBs 2025-05-01 13:12:35 +07:00
mikael-zakaria
5e5b0047b4 Update Printer Lab ke Sampling Surabaya v2 2025-04-28 14:22:13 +07:00
mikael-zakaria
90483835bc Update Printer Lab ke Sampling Surabaya 2025-04-28 14:19:47 +07:00
mikael-zakaria
a4a2c74f1d Update Untuk Printer Barcode Surabaya Ruang Sampling 2025-04-24 15:27:38 +07:00
mikael-zakaria
7493768c5b Update Range L Reactive tidak Merah 2025-04-24 11:50:25 +08:00
mikael-zakaria
58be9960eb Update Tidak Menampilkan Test Group (ALB dan GLOB) 2025-04-14 14:22:29 +08:00
mikael-zakaria
3d9a34c713 Update Perbaikan Background Untuk PBMC Surabaya v2 2025-04-11 13:55:44 +07:00
mikael-zakaria
9709192ae8 Update Perbaikan Background Untuk PBMC Surabaya 2025-04-11 11:12:33 +07:00
mikael-zakaria
e4c6ff7cb1 update tidak menampilkan flagging untuk tes Hematology 2025-04-07 08:55:30 +07:00
mikael-zakaria
31824206fd Update Untuk Test HBSAB Jika High Maka Buat Merah 2025-04-06 04:03:49 +08:00
mikael-zakaria
76d9b1bbd7 Update test VDRL jika Reactive Warnai Merah 2025-04-04 16:49:27 +08:00
mikael-zakaria
75bfadc077 Update Hasil React HBSAG menjadi Merah dan Menampilkan test Malaria 2025-04-02 10:52:04 +08:00
mikael-zakaria
74a8c24138 Update Comment dan AHIV,AHCV,HBSAG,AHBS,HBSAB dan VDRL Agar Tidak Merah Saat Nilai Tidak Normal 2025-03-27 18:26:59 +07:00
mikael-zakaria
64514cfdc8 Update AHIV,AHCV,HBSAG,AHBS,HBSAB dan VDRL Agar Tidak Merah Saat Nilai Tidak Normal 2025-03-27 18:17:55 +07:00
mikael-zakaria
69270d1962 Update AHIV,AHCV,HBSAG,AHBS,HBSAB dan VDRL Agar Tidak Merah Saat Nilai Tidak Normal 2025-03-27 18:11:40 +07:00
mikael-zakaria
83310f88a4 Update AHIV,AHCV,HBSAG,AHBS,HBSAB dan VDRL Agar Tidak Merah Saat Nilai Tidak Normal 2025-03-27 17:32:00 +07:00
mikael-zakaria
e66c10d5e6 Update AHIV,AHCV,HBSAG,AHBS,HBSAB,VDRL Agar Tidak Merah Saat Nilai Tidak Normal 2025-03-27 17:24:47 +07:00
mikael-zakaria
45090dd254 Update Perbaikan PATID Menggunakan TD dan Nama Menggunakan TM Done 2025-03-19 14:04:12 +07:00
mikael-zakaria
0efe3bfcc0 Update API DASHBOARD 2025-03-19 13:41:24 +08:00
mikael-zakaria
1cd92dce7c Update Laporan Hasil Agar Bisa Menampilkan sampai 27 baris test 2025-03-19 10:15:19 +07:00
mikael-zakaria
b5d95eb695 Perbaikan untuk Waktu Pada Header Laporan Hasil 2025-03-19 08:49:30 +07:00
mikael-zakaria
67fc5c9a6b Update Laporan Hasil Menyembunyikan testcode EGFR, Baris ganda, test ganda ganda v3 2025-03-18 14:08:33 +07:00
mikael-zakaria
968b7677ac Update Laporan Hasil Menyembunyikan EGFR dengan kode 15, Baris kosong, test ganda ganda 2025-03-18 14:00:08 +07:00
mikael-zakaria
6bc67edca6 Update Hasil Serat Fiberv4 2025-03-17 18:29:18 +07:00
mikael-zakaria
9a53d00468 Update Hasil Serat Fiberv2 2025-03-17 18:28:11 +07:00
mikael-zakaria
3e79feb1a6 Update Hasil Serat Fiberv2 2025-03-17 18:25:11 +07:00
mikael-zakaria
0c509735e6 Update Hasil Serat Fiber 2025-03-17 18:18:21 +07:00
mikael-zakaria
e0565bfa21 Update DL flaging merah dirubah jadihitam dan Fat/lemak diubah flagging stool itu positive tetap hitam 2025-03-17 16:40:39 +08:00
mikael-zakaria
3fb064375b Update Nama Pasien Pada Laporan Hasil, Dashboard dan Viewaccess PatNumber 2025-03-17 14:29:39 +08:00
mikael-zakaria
1bbc38a481 Update Nama Dashboard Yang Kurang(Tidak pakai tabel Patients TD dan memakai TM PATIENTS) 2025-03-17 14:06:51 +08:00
mikael-zakaria
3ef0a7bbb0 Update Nilai test Fiber FMIFI Tidak Perlu merah jika hasil positive 2025-03-17 11:07:34 +08:00
mikael-zakaria
b4648c67b3 Update RM dan VN Pada Collection Label v2 2025-03-15 14:30:09 +08:00
mikael-zakaria
ff29d10f24 Update RM dan VN Pada Collection Label 2025-03-15 13:51:02 +08:00
mikael-zakaria
e85db5f5b2 Update Nama Sample Collection Pada Laporan Hasil 2025-03-15 12:58:01 +08:00
mikael-zakaria
be68c655f5 Update Nama Sample Laporan Hasil dan Label Sampling 2025-03-15 12:55:40 +08:00
mikael-zakaria
4dc20ac087 Update Menampilkan Reffid Pada Halaman Dashboard 2025-03-15 12:30:22 +08:00
mikael-zakaria
9157d8061a Update Sorting Datatable Dari yg Paling Baru 2025-03-15 08:45:55 +08:00
mikael-zakaria
fd72ab2534 Update menampilkan order yang cancelled dan juga menampilkan kembali unrichieved 2025-03-15 00:50:57 +08:00
mikael-zakaria
aa31a93939 Update Laporan Hasil(Header :, Ubah Format tgl, Ubah TTD dr Komang) 2025-03-15 00:05:50 +08:00
mikael-zakaria
69fcc8e464 Update Tanggal Dashboard 2025-03-14 22:43:54 +08:00
mikael-zakaria
3ff3840378 Update Header Logo Padma SBY dan Bali 2025-03-13 17:45:35 +08:00
mikael-zakaria
57b039cf83 Update Result Order Date agar tidak menampilkan tahun 1900 2025-03-13 14:13:16 +08:00
mikael-zakaria
b2692fd797 Update Perbaikan Surabaya 2025-03-13 10:06:01 +08:00
mikael-zakaria
b99321e56b Update Flags dan Nama Dr Komang dan Jarak Tabel ke Header 2025-03-13 09:41:44 +08:00
mikael-zakaria
d1e489ea45 Update Pebaikan Footer Agar Sesuai 2025-03-13 05:54:32 +08:00
mikael-zakaria
06a0f9943e Update Pebaikan Padding Table 2025-03-13 05:49:50 +08:00
mikael-zakaria
b8cc6f5977 Update Footer Laporan Hasil (Nama dan Posisi TTD Hasil) 2025-03-13 05:42:12 +08:00
mikael-zakaria
55569e96d1 Change Dashboard(Reff# menjadi Visit#, Hilangkan 0 pada Patnumber) dan Header Laporan REF menjadi Visit 2025-03-12 23:10:34 +08:00
mikael-zakaria
fefe36db53 Change Dashboard(Reff# menjadi Visit#, Hilangkan 0 pada Patnumber) dan Header Laporan REF menjadi Visit 2025-03-12 23:09:53 +08:00
mikael-zakaria
206ee53221 Update Laporan Result Agar ke kanan, Update Waktu Label Collection-Reception Laporan Hasil, Update Menghilangkan Fitur Unreceive pada Web Access 2025-03-12 11:28:39 +08:00
mikael-zakaria
670a3367a6 Perbaikan Collection Datetime dan Laporan Hasil 2025-03-10 16:37:58 +07:00
mikael-zakaria
4fc51b8250 Update Menampilkan Nilai Normal Pada Laporan Hasil 2025-03-10 14:02:56 +07:00
mikael-zakaria
1ef987c7c6 Update Nama Header RM Number Agar Tidak menampilkan 0 didepan 2025-03-10 08:40:47 +07:00
29 changed files with 645 additions and 314 deletions

View File

@ -133,7 +133,7 @@ class App extends BaseConfig
* @see https://www.php.net/manual/en/timezones.php for list of timezones
* supported by PHP.
*/
public string $appTimezone = 'UTC';
public string $appTimezone = 'Asia/Makassar';
/**
* --------------------------------------------------------------------------

View File

@ -11,15 +11,16 @@ class API_Dashboard extends ResourceController {
// Mengetahui Apakah User Login adalah Bali atau Surabaya
$cityid = session()->get('usercityid');
if ($cityid == 1) {
$filter_query = " AND (sr.HOSTORDERNUMBER LIKE 'B%' OR sr.HOSTORDERNUMBER LIKE 'Z%')";
$filter_query = " AND (tr.REQNUMBER LIKE 'B%' OR tr.REQNUMBER LIKE 'Z%')";
} elseif ($cityid == 2) {
$filter_query = " AND (sr.HOSTORDERNUMBER LIKE 'S%' OR sr.HOSTORDERNUMBER LIKE 'X%')";
$filter_query = " AND (tr.REQNUMBER LIKE 'S%' OR tr.REQNUMBER LIKE 'X%')";
} else { $filter_query = " "; }
$db = \Config\Database::connect();
$date1 = $this->request->getPost('date1');
$date2 = $this->request->getPost('date2');
$sql = "select sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, sr.HOSTORDERNUMBER, p.PATNUMBER, concat(p.FIRSTNAMESK, ' ', p.NAME) as NAME,
$sql = "SELECT
sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, sr.HOSTORDERNUMBER as REFFID, tr.REQNUMBER as HOSTORDERNUMBER, tr.REQSTATUS, p.PATNUMBER, concat(tp.FIRSTNAME, ' ', tp.lastname) as NAME,
TESTS=stuff(( select ', '+'('+T.SP_TESTCODE+')' from
( select T.SP_TESTCODE from SP_TESTS T
where T.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
@ -58,8 +59,11 @@ class API_Dashboard extends ResourceController {
else 'Pend'
end STATS
from SP_REQUESTS sr
left join PATIENTS p on p.PATID=sr.PATID
left join REQUESTS r on r.ACCESSNUMBER=sr.SP_ACCESSNUMBER
left join cmod.dbo.CM_TM_REQUESTS tr on tr.REFFID = sr.HOSTORDERNUMBER
--left join cmod.dbo.CM_TM_PATIENTS tp on tr.PATID = tp.PATID
left join PATIENTS p on sr.PATID = p.PATID
left join cmod.dbo.CM_TM_PATIENTS tp on tp.PATNUMBER = LTRIM(p.patnumber, '0')
where sr.COLLECTIONDATE between '$date1 00:00' and '$date2 23:59'"
.$filter_query.
"order by sr.COLLECTIONDATE desc";

View File

@ -21,7 +21,7 @@ class API_Tubes extends BaseController {
public function uncollect($access, $sample) {
$db = \Config\Database::connect();
$sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=0 where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
$sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=0, COLLECTIONDATE=null where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
$query = $db->query($sql);
}

View File

@ -18,7 +18,7 @@ class AdminController extends BaseController {
$data['usercityid'] = session()->get('usercityid');
$db = \Config\Database::connect();
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.FULLTEXT as SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
left join SP_REQUESTS sr on tu.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
left join DICT_SAMPLES_TYPES ds on ds.SAMPCODE= tu.SAMPLETYPE
left join cmod.dbo.CM_TUBES ct on ct.SAMPLETYPE=tu.SAMPLETYPE and ct.ACCESSNUMBER=tu.SP_ACCESSNUMBER

View File

@ -14,7 +14,7 @@ class FoController extends BaseController {
$data['usercityid'] = session()->get('usercityid');
$db = \Config\Database::connect();
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.FULLTEXT as SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
left join SP_REQUESTS sr on tu.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
left join DICT_SAMPLES_TYPES ds on ds.SAMPCODE= tu.SAMPLETYPE
left join cmod.dbo.CM_TUBES ct on ct.SAMPLETYPE=tu.SAMPLETYPE and ct.ACCESSNUMBER=tu.SP_ACCESSNUMBER

View File

@ -11,9 +11,9 @@ class PrintLabel extends BaseController {
}
public function printerSampling() {
exec('net use S: \\\\10.148.3.169\\Labelshare /user:Administrator 2>&1', $output, $return_var);
$pathNetworkFolder = 'S:/Sampling_Labels/';
$letterPath = 'S:';
exec('net use K: \\\\10.148.5.68\\Labelshare /user:Administrator 2>&1', $output, $return_var);
$pathNetworkFolder = 'K:/Sampling_Labels/';
$letterPath = 'K:';
return array($pathNetworkFolder, $letterPath);
}
@ -55,11 +55,12 @@ class PrintLabel extends BaseController {
$networkPath = "";
$db = \Config\Database::connect();
$sql = "select p.PATNUMBER as UHID, sr.HOSTORDERNUMBER as BV, concat (p.FIRSTNAMESK, ' ', p.NAME) as NAME, p.SEX,
$sql = "SELECT p.PATNUMBER as UHID, ctr.REQNUMBER 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, p.BIRTHDATE
from SP_REQUESTS sr
left join cmod.dbo.CM_TM_REQUESTS ctr on ctr.REFFID=sr.HOSTORDERNUMBER
left join SP_REQUESTS st on sr.SP_ACCESSNUMBER=st.SP_ACCESSNUMBER
left join PATIENTS p on p.PATID=sr.PATID
where st.SP_ACCESSNUMBER='$access'";
@ -67,7 +68,7 @@ class PrintLabel extends BaseController {
$results = $query->getResultArray();
$item = $results[0];
$uhid = substr($item['UHID'], -10);
$uhid = ltrim($item['UHID'], '0');
$bv = $item['BV'];
$sex = $item['SEX'] == 1 ? "M" : "F";
$title = $item['SEX'] == 1 ? "Mr" : "Mrs";
@ -101,23 +102,43 @@ class PrintLabel extends BaseController {
$label="";
$role = session()->get('userrole');
// Ruang Analis Printer POSTEK C168/200s
// Ruang Analis Printer POSTEK C168/200s + 16 untuk sudut
if ($role == 'admin' || $role == 'user') {
/*
$label = "N
OD
q400
Q200,10+0
I8,A,001
D10
A4,3,0,2,1,1,N,\"$title.$name1\"
A$jarak,20,0,2,1,1,N,\"$name2\"
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\"
A5,19,0,2,1,1,N,\"$title.$name1\"
A$jarak,36,0,2,1,1,N,\"$name2\"
A5,58,0,1,1,1,N,\"DoB: $birthdate\"
A337,58,0,1,1,1,N,\"$sex {$age}Y\"
B16,73,0,1,4,8,70,N,\"$access\"
A120,148,0,1,1,1,N,\"REQ# $access\"
A5,165,0,2,1,1,N,\"VN:$bv\"
A5,182,0,2,1,1,N,\"RM:$uhid\"
A195,182,0,2,1,1,N,\"$collectiondate\"
P1
";
*/
$label = "N
OD
q400
Q200,10+0
I8,A,001
D10
A5,4,0,2,1,1,N,\"$title.$name1\"
A$jarak,21,0,2,1,1,N,\"$name2\"
A5,43,0,1,1,1,N,\"DoB: $birthdate\"
A337,43,0,1,1,1,N,\"$sex {$age}Y\"
B16,58,0,1,4,8,70,N,\"$access\"
A120,133,0,1,1,1,N,\"REQ# $access\"
A5,150,0,2,1,1,N,\"VN:$bv\"
A5,167,0,2,1,1,N,\"RM:$uhid\"
A195,167,0,2,1,1,N,\"$collectiondate\"
P1
";
@ -192,22 +213,42 @@ P1
$jarak = '53';
}
// Printer Posteck
// Printer Posteck + 16 untuk sudut
/*
$sampleLabel ="N
OD
q400
Q200,10+0
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\"
A4,47,0,2,1,1,N,\"$sample\"
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\"
A195,165,0,2,1,1,N,\"$collection_date\"
A5,21,0,2,1,1,N,\"$title.$name1\"
A$jarak,38,0,2,1,1,N,\"$name2\"
A325,43,0,2,1,1,N,\"$sex {$age}Y\"
A5,65,0,2,1,1,N,\"$sample\"
A204,65,0,2,1,1,N,\"DoB: $birthdate\"
B37,86,0,1,4,8,70,N,\"$barcode\"
A115,161,0,2,1,1,N,\"SAM# $barcode\"
A5,183,0,2,1,1,N,\"RM:$uhid\"
A195,183,0,2,1,1,N,\"$collection_date\"
P1
";
*/
$sampleLabel ="N
OD
q400
Q200,10+0
I8,A,001
D10
A5,6,0,2,1,1,N,\"$title.$name1\"
A$jarak,23,0,2,1,1,N,\"$name2\"
A325,28,0,2,1,1,N,\"$sex {$age}Y\"
A5,50,0,2,1,1,N,\"$sample\"
A204,50,0,2,1,1,N,\"DoB: $birthdate\"
B37,71,0,1,4,8,70,N,\"$barcode\"
A115,146,0,2,1,1,N,\"SAM# $barcode\"
A5,168,0,2,1,1,N,\"RM:$uhid\"
A195,168,0,2,1,1,N,\"$collection_date\"
P1
";
@ -261,7 +302,7 @@ P1
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, p.BIRTHDATE
ds.SHORTTEXT AS 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
@ -272,7 +313,7 @@ P1
$results = $query->getResultArray();
$item = $results[0];
$uhid = substr($item['UHID'], -10);
$uhid = ltrim($item['UHID'], '0');
$bv = $item['BV'];
$sex = $item['SEX'] == 1 ? "M" : "F";
$title = $item['SEX'] == 1 ? "Mr" : "Mrs";

View File

@ -161,9 +161,17 @@ class PrintLabelSby extends BaseController {
public function printerLab() {
exec('net use Y: \\\\10.0.10.30\\Labelshare /user:Administrator 2>&1', $output, $return_var);
$pathNetworkFolder = 'Y:/Sampling_Labels/';
$letterPath = 'Y:';
// IP PC Lab
// exec('net use Y: \\\\10.0.10.30\\Labelshare /user:Administrator 2>&1', $output, $return_var);
// $pathNetworkFolder = 'Y:/Sampling_Labels/';
// $letterPath = 'Y:';
// IP PC Sampling
exec('net use V: \\\\10.0.2.125\\Labelshare /user:Administrator 2>&1', $output, $return_var);
$pathNetworkFolder = 'V:/Sampling_Labels/';
$letterPath = 'V:';
return array($pathNetworkFolder, $letterPath);
}
@ -181,7 +189,7 @@ class PrintLabelSby extends BaseController {
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, p.BIRTHDATE
ds.SHORTTEXT AS 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

View File

@ -489,13 +489,13 @@ class PrintResult extends BaseController {
if ($hostordernumber[0] == 'B' || $hostordernumber[0] == 'Z') {
if ($uservalidator != null){
$doctor = "dr. I Komang Parwata Sp.PK";
$doctor = "dr. I Komang Parwata, SpPK Subsp.B.D.K.T.(K)";
$analyst = "Mrs. Gusti Ayu Riska Mastari";
$noreg = "Reg. No: 570/SIPDS/0001/I/DPMPTSP/2023";
$signature = "<img src='http://cmod.id/assets/img/ttd_dr_komang.png' alt=''>";
$signature = "<td class='margin_right_img_bali'><img id='ttd_k' src='http://cmod.id/assets/img/ttdnewdokpar3.png' alt=''></td>";
$enteredby = "<td><u>Entered By</u></td>";
$labtech = "<td>Lab Technician</td>";
$verifiedby = "<td align='right'><u>Verified By</u></td>";
$verifiedby = "<td class='margin_right'><u>Verified By</u></td>";
} else {
$verifiedby = "<td align='right' class='red_font'><b><u>Waiting for Validation</u></b></td>";
@ -504,17 +504,17 @@ class PrintResult extends BaseController {
$doctor = "";
$analyst = "";
$noreg = "";
$signature = "";
$signature = "<td class='margin_right'></td>";
}
} elseif ($hostordernumber[0] == 'S' || $hostordernumber[0] == 'X') {
$doctor = "dr. I.G.A.A Putri Sri Rejeki, Sp.PK";
$noreg = "SIP : 503.446/1091/B/IP.DS/436.7.15/2022";
$signature = "<img id='ttd_p' src='http://cmod.id/assets/img/ttd_dr_putri.jpg' alt=''>";
$signature = "<td class='margin_right_sby_img'><img id='ttd_p' src='http://cmod.id/assets/img/ttd_dr_putri.jpg' alt=''></td>";
$enteredby = "<td><u>Entered By</u></td>";
$labtech = "<td>Lab Technician</td>";
$verifiedby = "<td align='right'><u>Verified By</u></td>";
$verifiedby = "<td class='margin_right_sby'><u>Verified By</u></td>";
if ($uservalidator == "MG") {
$analyst = "Mrs. Mega Rahayu Ningsih";
@ -527,7 +527,7 @@ class PrintResult extends BaseController {
$doctor = "";
$analyst = "";
$noreg = "";
$signature = "";
$signature = "<td class='margin_right'></td>";
}
}
@ -538,7 +538,7 @@ class PrintResult extends BaseController {
$doctor = "";
$analyst = "";
$noreg = "";
$signature = "";
$signature = "<td class='margin_right'></td>";
}
// Khusus untuk value Header
@ -549,34 +549,45 @@ class PrintResult extends BaseController {
$sex = $data[0]['SEX'] == 1 ? "Male" : "Female";
$rm_number = $data[0]['PATNUMBER'];
$rm_number = substr($rm_number, -10);
$rm_number = \ltrim($rm_number, "0");
$first_name = $data[0]['FIRSTNAME'];
$last_name = $data[0]['NAME'];
$first_name = strtoupper($data[0]['FIRSTNAME']);
$last_name = strtoupper($data[0]['NAME']);
$birth_date = $data[0]['BIRTHDATE'];
$birth_date = \DateTime::createFromFormat('Y-m-d H:i:s.u', $birth_date);
if ($birth_date) { $birth_date = $birth_date->format('d-m-Y'); }
if ($birth_date) { $birth_date = $birth_date->format('d F Y'); }
if ($hostordernumber[0] == 'B' || $hostordernumber[0] == 'Z') {
$branch = "PMG Bali";
} elseif ($hostordernumber[0] == 'S' || $hostordernumber[0] == 'X') {
$branch = "PMG Surabaya";
} else {
$branch = "Unknown";
$branch = "Testing";
}
$collection_date = $data[0]['COLLECTIONDATE'];
$dateTimeCol = \DateTime::createFromFormat('Y-m-d H:i:s.u', $collection_date);
if ($dateTimeCol) {
$collection_date = $dateTimeCol->format('d-m-Y H:i');
$collection_date = $dateTimeCol->format('d F Y H:i');
}
$result_date = end($resultData);
$result_date = $result_date["RESDATE_FIX"];
$dateTimeRes = \DateTime::createFromFormat('Y-m-d H:i:s.u', $result_date);
if ($dateTimeRes) {
$result_date = $dateTimeRes->format('d-m-Y H:i');
// Ambil tahun dari tanggal
$year = (int) $dateTimeRes->format('Y');
// Jika tahun < 2000, kosongkan result_date
if ($year < 2020) {
$result_date = "";
} else {
$result_date = $dateTimeRes->format('d F Y H:i');
}
// $result_date = $dateTimeRes->format('d-m-Y H:i');
}
$company = $data[0]['AGENT'];
@ -610,35 +621,28 @@ class PrintResult extends BaseController {
</tr>
<tr>
<td style='width:50%' align='left' class='left-pad'><pre><b>RM Number:</b> $rm_number</pre></td>
<td style='width:50%' align='left' class='left-pad'><pre><b>Visit Number:</b> $hostordernumber</pre></td>
<td style='width:50%' align='left' class='left-pad'><pre><b>RM Number :</b> $rm_number</pre></td>
<td style='width:50%' align='left' class='left-pad'><pre><b>Visit Number :</b> $hostordernumber</pre></td>
</tr>
<tr>
<td align='left' class='left-pad'><pre><b>Name:</b> $first_name $last_name</pre></td>
<td align='left' class='left-pad'><pre><b>Company:</b> $company</pre></td>
<td align='left' class='left-pad'><pre><b>Name :</b> $first_name $last_name</pre></td>
<td align='left' class='left-pad'><pre><b>Company :</b> $company</pre></td>
</tr>
<tr>
<td align='left' class='left-pad'><pre><b>DOB:</b> $birth_date</pre></td>
<td align='left' class='left-pad'><pre><b>Visit Type:</b> $visittype</pre></td>
<td align='left' class='left-pad'><pre><b>DOB :</b> $birth_date</pre></td>
<td align='left' class='left-pad'><pre><b>Visit Type :</b> $visittype</pre></td>
</tr>
<tr>
<td align='left' class='left-pad'><pre><b>Gender:</b> $sex</pre></td>
<td align='left' class='left-pad'><pre><b>Order Date / Time:</b> $collection_date</pre></td>
<td align='left' class='left-pad'><pre><b>Gender :</b> $sex</pre></td>
<td align='left' class='left-pad'><pre><b>Order Date / Time :</b> $collection_date</pre></td>
</tr>
<tr>
<td align='left' class='left-pad'><pre><b>Branch:</b> $branch</pre></td>
<td align='left' class='left-pad'><pre><b>Result Date / Time:</b> $result_date</pre></td>
<td align='left' class='left-pad'><pre><b>Branch :</b> $branch</pre></td>
<td align='left' class='left-pad'><pre><b>Result Date / Time :</b> $result_date</pre></td>
</tr>
</table>
@ -714,7 +718,7 @@ class PrintResult extends BaseController {
<table class='table_footer t_center'>
<tr>
<td></td>
<td align='right'>".$signature."</td>
$signature
</tr>
<tr>
".$enteredby
@ -738,6 +742,11 @@ class PrintResult extends BaseController {
$i=0;
foreach ($resultData as $item) {
// Jika tidak ada nama
if ($item['test_eng'] == null) {
continue;
}
// Untuk Spasi Depth
$space="";
if ($item['RESULT'] != null) {
@ -763,7 +772,14 @@ class PrintResult extends BaseController {
if ($item["RESULT"] == null) {
$serum_type = "";
}else {
$serum_type = $item["serum_type"];
// Khusus untuk test indeirect bilirubin, rasio albumin, globulin dan chol
$test_serum = ['2107C', '2110C', '2111C', 'CHOL'];
if ( in_array($item["TESTCODE"], $test_serum) ) {
$serum_type = "Serum";
} else {
$serum_type = $item["serum_type"];
}
}
$resflag = $item["RESFLAG"] == "N" ? '' : $item["RESFLAG"];
@ -775,7 +791,7 @@ class PrintResult extends BaseController {
$i++;
// Melebihi batas Kertas
if($i % 23 == 0) {
if($i % 27 == 0) {
$resultTest .= "</table></div>";
$fullPage .= $headPage.$resultTest.$footerPage.$lastDiv;
$i=0;
@ -790,23 +806,25 @@ class PrintResult extends BaseController {
<colgroup>
<col style='width: 35%;'>
<col style='width: 20%;'>
<col style='width: 13%;'>
<col style='width: 19%;'>
<col style='width: 1%;'>
<col style='width: 12%;'>
<col style='width: 20%;'>
<col style='width: 12%;'>
</colgroup>
<tr style='border: none;'>
<th colspan='5' style='border: none;'>
<th colspan='6' style='border: none;'>
</th>
<tr>
<tr class='padmaColor'>
<th colspan='5' class='text-left left-pad'>
<th colspan='6' class='text-left left-pad'>
$tempChapEng
</th>
</tr>
<tr>
<th>Parameter</th>
<th>Result</th>
<th class='khusus-kanan-h'>Result</th>
<th class='khusus-kiri-h'></th>
<th>Unit</th>
<th>Normal Range</th>
<th>Sample</th>
@ -815,7 +833,7 @@ class PrintResult extends BaseController {
}
// Melebihi batas Kertas
if($i % 23 == 0 && $i!=0) {
if($i % 27 == 0 && $i!=0) {
$resultTest .= "</table></div>";
$fullPage .= $headPage.$resultTest.$footerPage.$lastDiv;
$i=0;
@ -830,7 +848,8 @@ class PrintResult extends BaseController {
} else {
$resvalue = $item['RESVALUE'];
}
$reff = $item["REFRANGE"];
$reff = $item["FIX_REFRANGE"];
$refftext = $item["REFFTEXT"];
if($refftext !='') {$reff = $refftext;}
$unit = $item['UNIT'];
@ -839,8 +858,30 @@ class PrintResult extends BaseController {
// Untuk mewarnai value yang tidak beda dengan nilai normal
$color = "";
if ($resflag == 'L' || $resflag == 'H') {
$resflag .= "&nbsp;&nbsp;";
// Untuk Hema Tidak Perlu Merah
if($item['CHAPID']==1) {
// Pengecualian Untuk Test dengan code FE atau Ferittin Pada Chapter Hematologi
if ($item["TESTCODE"] == 'FE') {
$color = "red_font";
} else {
$color = "";
$resflag = "";
}
} elseif ($resflag == 'L' ) {
// Pengecualian Khusus Untuk Test Berikut
$excludedred = ["HBsAg", "Anti HIV", "VDRL/Anti TP", "Anti HCV", "Anti HBs"];
if (in_array($item['SHORTTEXT'], $excludedred)) {
$color = "";
} else { // Normal
$color = "red_font";
if ($item['SHORTTEXT'] == "HBs-Ab" && $resflag != 'H') {
$color = "";
}
}
} else if ($resflag == 'H'){
$color = "red_font";
}
@ -849,24 +890,32 @@ class PrintResult extends BaseController {
if ($item['code_type'] == 6 && $item['REFFTEXT'] != null) {
if ($range == true) { // Jika nilai masih dalam rentang nilai normal misal : 0 - 1
$color = "";
} elseif ($range == false) { // Jika nilai bukan merupakan rentang alias hanya code
$redWord = ["positive", "reactive"];
if (in_array(strtolower($item['RESULT']), $redWord)) {
$color = "red_font";
$excludedred = ["fibers", "fat"];
if ( in_array(strtolower($item['SHORTTEXT']), $excludedred)) { // Khusus Shorttex Ini jika Positive maka tidak perlu merah
$color = "";
} else { //Jika Hasil positive atau reactive maka beri wanra merah
$redWord = ["positive", "reactive"];
if (in_array(strtolower($item['RESULT']), $redWord)) {
$color = "red_font";
}
}
}
else { // Jika Rentang diatas nilai normal
} else { // Jika Rentang diatas nilai normal
$color = "red_font";
}
}
// Hanya Untuk Kondisi Ada Komentar Dibawah Result
if ($item['RESCOMMENT'] != null) {
$redWord = ["positive", "reactive", "pos", "reac"];
if (in_array(strtolower($item['RESCOMMENT']), $redWord)) {
$color = "red_font";
}
$comment = $item['RESCOMMENT'];
// Kondisi Sangat Khusus
@ -881,7 +930,6 @@ class PrintResult extends BaseController {
$rescomment = "";
}
$test = "";
// Untuk Nama Test Apakah lebih dari 25 karaktera
if ( strlen($item['test_eng']) > 25 || strlen($item['test_ind']) > 25) {
@ -891,20 +939,21 @@ class PrintResult extends BaseController {
}
// Untuk Mengeluarkan Result
if ($item['code_type'] == 5) { //Jika dia adalah Komentar
// ubah colspan jadi 4 soalnya kalau Freetext sampelnya kurang ke kanan 1 kolom : haris
if ($item['code_type'] == 5) { //Jika dia adalah Komentar
$resultTest .= "
<tr>
<td colspan='1' class=''>
".$test."
</td>
<td colspan='3' class='left-pad ".$color."'>" . $resflag ." ". $resvalue . $rescomment ."</td>
<td colspan='4' class='left-pad ".$color."'>$resflag " . $resvalue . $rescomment ."</td>
<td class='left-pad'>" . $serum_type . "</td>
</tr>
";
} else if ($resvalue==null && $rescomment == null && $unit == null && $reff==null && $serum_type == null) { //Jika Ini adalah nama chapter
$resultTest .= "
<tr>
<td colspan='5' class=''>
<td colspan='6' class=''>
".$test."
</td>
</tr>
@ -912,19 +961,20 @@ class PrintResult extends BaseController {
} else {
$resultTest .= "
<tr>
<td colspan='1' class=''>
<td style='width: 35%;' colspan='1' class=''>
".$test."
</td>
<td class='left-pad ".$color."'>" . $resflag ." ". $resvalue . $rescomment ."</td>
<td class='left-pad'>" . "<pre>" .$unit. "<pre>" . "</td>
<td class='left-pad'>" . "<pre>" .$reff. "<pre>" . "</td>
<td class='left-pad'>" . $serum_type . "</td>
<td style='width: 19%;' class='right-pad khusus-kanan-d $color'>" . $resvalue . $rescomment ."</td>
<td style='width: 2%;' class='$color khusus-kiri-d'>" . "<pre>" .$resflag. "<pre>" . "</td>
<td style='width: 12%;' class='left-pad'>" . "<pre>" .$unit. "<pre>" . "</td>
<td style='width: 20%;' class='left-pad'>" . "<pre>" .$reff. "<pre>" . "</td>
<td style='width: 12%;' class='left-pad'>" . $serum_type . "</td>
</tr>
";
}
// Melebihi batas Kertas
if($i % 23 == 0 && $i != 0) {
if($i % 27 == 0 && $i != 0) {
$resultTest .= "</table></div>";
$fullPage .= $headPage.$resultTest.$footerPage.$lastDiv;
$i=0;
@ -958,11 +1008,11 @@ class PrintResult extends BaseController {
}
// Untuk Header
$sql = "SELECT
p.PATNUMBER,
p.FIRSTNAMESK AS FIRSTNAME,
p.NAME,
ctp.PATNUMBER,
ctp.FIRSTNAME,
ctp.LASTNAME AS NAME,
p.BIRTHDATE,
sr.HOSTORDERNUMBER,
ctr.REQNUMBER as HOSTORDERNUMBER,
sr.COLLECTIONDATE,
sr.SP_ACCESSNUMBER,
p.SEX,
@ -973,7 +1023,7 @@ class PrintResult extends BaseController {
FROM PATIENTS p
LEFT JOIN SP_REQUESTS sr ON p.PATID = sr.PATID
LEFT JOIN cmod.dbo.CM_TM_REQUESTS ctr ON ctr.REFFID = sr.HOSTORDERNUMBER
LEFT JOIN cmod.dbo.CM_TM_PATIENTS ctp ON ctp.PATID = ctr.PATID
LEFT JOIN
(
SELECT
@ -1004,10 +1054,10 @@ class PrintResult extends BaseController {
}
// Untuk Collection
$sql = "SELECT
ds.SHORTTEXT,
FORMAT(tu.COLLECTIONDATE, 'dd-MM-yyyy') AS recvdate,
FORMAT(tu.COLLECTIONDATE, 'HH:mm') AS recvtime,
FORMAT(ct.COLLECTIONDATE, 'dd-MM-yyyy') AS colldate,
ds.FULLTEXT AS SHORTTEXT,
FORMAT(ct.COLLECTIONDATE, 'dd-MM-yyyy') AS colldate,
FORMAT(tu.LABRECEPTIONDATE, 'dd-MM-yyyy') AS recvdate,
FORMAT(tu.LABRECEPTIONDATE, 'HH:mm') AS recvtime,
".$filter_query_collection."
FROM
SP_TUBES tu
@ -1016,7 +1066,7 @@ class PrintResult extends BaseController {
LEFT JOIN
cmod.dbo.CM_TUBES ct ON ct.SAMPLETYPE = tu.SAMPLETYPE AND ct.ACCESSNUMBER = tu.SP_ACCESSNUMBER
WHERE
tu.SP_ACCESSNUMBER = '$access';";
tu.SP_ACCESSNUMBER = '$access'";
$query = $db->query($sql);
$results = $query->getResultArray();
$collection = $results;
@ -1035,7 +1085,7 @@ class PrintResult extends BaseController {
dc.CHAPID,
dc.FULLTEXT as chap_eng,
dc.FULLTEXT as chap_ind,
st.FULLTEXT as serum_type,
st.SHORTTEXT as serum_type,
cdt.TEXT1 as test_eng,
cdt.TEXT2 as test_ind,
COALESCE(dt.UNITS, cdt.UNIT) as UNITTEXT,
@ -1047,6 +1097,15 @@ class PrintResult extends BaseController {
t.VALIDATIONINITIALS as validator,
dt.SHORTTEXT,
RESULT = case when t.RESVALUE is null then tx.FULLTEXT else t.RESVALUE end,
COALESCE(
cr.refrange,
CASE
WHEN t.MINIMUM IS NOT NULL AND t.MAXIMUM IS NOT NULL THEN CONCAT(t.MINIMUM, ' - ', t.MAXIMUM)
WHEN t.MINIMUM IS NOT NULL AND t.MAXIMUM IS NULL THEN CONCAT('>= ', t.MINIMUM)
WHEN t.MAXIMUM IS NOT NULL AND t.MINIMUM IS NULL THEN CONCAT('<= ', t.MAXIMUM)
ELSE ''
END
) AS FIX_REFRANGE,
" . $filter_query_resdate . "
cr.*
from REQUESTS r
@ -1057,8 +1116,11 @@ class PrintResult extends BaseController {
left join DICT_TEST_SAMPLES ts on ts.TESTID=t.TESTID and dt.TESTID=ts.TESTID
left join DICT_SAMPLES_TYPES st on st.SAMPTYPEID=ts.SAMPTYPEID
left join cmod.dbo.CM_DICT_TESTS cdt on dt.TESTCODE=cdt.TESTCODE
left join cmod.dbo.CM_RESULTS cr on cr.ACCESSNUMBER=r.ACCESSNUMBER and cr.TESTCODE=cdt.TESTCODE and cr.TESTCODE=dt.TESTCODE
left join cmod.dbo.CM_RESULTS cr on cr.ACCESSNUMBER=r.ACCESSNUMBER and cr.TESTCODE=cdt.TESTCODE and cr.TESTCODE=dt.TESTCODE
-- and t.RESUPDDATE = cr.RESDATE
-- and dt.SHORTTEXT <> 'EGFR'
where r.ACCESSNUMBER='$access'
and t.NOTPRINTABLE is null
ORDER BY t.TESTORDER";
$query = $db->query($sql);
$results = $query->getResultArray();
@ -1114,7 +1176,9 @@ class PrintResult extends BaseController {
$serum_type = $item["serum_type"];
$chapter_eng = $item['chap_eng'];
$printable = $item['NOTPRINTABLE'];
return $serum_type != 'Feces' && $serum_type != 'Urine' && $chapter_eng != 'Note' && $serum_type != 'Swab Tenggorokan' && $printable !=1;
$tesscode = $item["TESTCODE"];
return $serum_type != 'Feces' && $serum_type != 'Urine' && $chapter_eng != 'Note' && $serum_type != 'Swab Tenggorokan' && $printable !=1 && $tesscode!='EGFR' && $tesscode!='RAG' && $tesscode!='GLOB' && $tesscode!='BILIN';
});
$notes = array_filter($results, function($item) {
@ -1127,6 +1191,30 @@ class PrintResult extends BaseController {
$note = $notes["RESULT"] ?? "-"; // Ambil nilai RESULT, atau null jika tidak ada
$fullPage = "";
// KHUSUS ATUR UNTUK URUTAN CHAPTER(BIOCHEMISTRY diatas ENDOCHRONOLOGY_63)
// Salin data ENDOCHRONOLOGY_63 ke variabel baru
$ENDOCHRONOLOGY_63 = array_filter($data_others, function($row) {
return $row['CHAPID'] == 63;
});
// Hapus Data CHAPID ENDOCHRONOLOGY_63 dari array utama
$data_others = array_filter($data_others, function($row) {
return $row['CHAPID'] != 63;
});
$data_others = array_values($data_others);
// Cari CHAPID ke 23 yaitu BIOCHEMISTRY
$index_last_23 = null;
foreach ($data_others as $index => $row) {
if ($row['CHAPID'] == 23) {
$index_last_23 = $index;
}
}
// Letakkan ENDOCHRONOLOGY_63 dibawah urutan BIOCHEMISTRY
if ($index_last_23 !== null) {
array_splice($data_others, $index_last_23 + 1, 0, $ENDOCHRONOLOGY_63);
}
if ($data_others != null) {
$fullPage .= $this->pdfViewerNew($data_others, $data, $note);

View File

@ -14,7 +14,7 @@ class SamplingController extends BaseController {
$data['usercityid'] = session()->get('usercityid');
$db = \Config\Database::connect();
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.FULLTEXT as SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
left join SP_REQUESTS sr on tu.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
left join DICT_SAMPLES_TYPES ds on ds.SAMPCODE= tu.SAMPLETYPE
left join cmod.dbo.CM_TUBES ct on ct.SAMPLETYPE=tu.SAMPLETYPE and ct.ACCESSNUMBER=tu.SP_ACCESSNUMBER

View File

@ -14,7 +14,7 @@ class UserController extends BaseController {
$data['usercityid'] = session()->get('usercityid');
$db = \Config\Database::connect();
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
$sql = "SELECT sr.HOSTORDERNUMBER, tu.SAMPLETYPE, ds.FULLTEXT as SHORTTEXT, tu.TUBESTATUS, ct.COLLSTATUS, ct.TUBECOMMENT from SP_TUBES tu
left join SP_REQUESTS sr on tu.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
left join DICT_SAMPLES_TYPES ds on ds.SAMPCODE= tu.SAMPLETYPE
left join cmod.dbo.CM_TUBES ct on ct.SAMPLETYPE=tu.SAMPLETYPE and ct.ACCESSNUMBER=tu.SP_ACCESSNUMBER

View File

@ -33,9 +33,10 @@
<th width="12%">Patient#</th>
<th width="17%">Patient Name</th>
<th class='text-start' width="10%">Access#</th>
<th width="9%">Reff#</th>
<th width="10%">Visit#</th>
<th width="10%">HIS#</th>
<th>Test</th>
<th>Status</th>
<th width="5%">Status</th>
<th></th>
</thead>
<tbody id="table-body" class='text-start'>
@ -56,7 +57,10 @@
<?= $this->section('script') ?>
<script>
let curDate = new Date().toJSON().slice(0, 10);
date = new Date();
//console.log (new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON());
//let curDate = new Date().toJSON().slice(0, 10);
let curDate = (new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON()).slice(0, 10);
$('.date1').val(curDate);
$('.date2').val(curDate);
index();
@ -106,13 +110,16 @@ function index() {
$("#myTable").DataTable().destroy();
$("#table-body").html("");
var data = response['data'];
// console.log(data);
for (var i = 0; i < data.length; i++) {
colldate = data[i].COLLECTIONDATE.slice(0,10);
colltime = data[i].COLLECTIONDATE.slice(10,16);
if (data[i].PATNUMBER != null) {
patnumber = data[i].PATNUMBER.substr(-16,16);
patnumber = patnumber.substring(patnumber.length - 10);
// patnumber = data[i].PATNUMBER;
patnumber = data[i].PATNUMBER.replace(/^0+/, '');
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
patnumber = ' NULL ';
}
@ -129,50 +136,76 @@ function index() {
testing_test = "";
}
}
if (data[i].REFFID != null) {
// patnumber = data[i].PATNUMBER;
reffid = data[i].REFFID;
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
reffid = ' NULL ';
}
tests = data[i].TESTS;
stat = data[i].STATS;
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
reqstatus = String(data[i].REQSTATUS);
trcolor = '';
if (reqstatus != '1') {
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
}
} else {
trcolor = ' table-danger-custom ';
bgcolor = ' table-danger-custom ';
datafilter = "data-filterrow='8'";
stattext = 'Cancelled';
}
let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
let datarow = "<tr class='align-middle" + trcolor +"'" + datafilter + " >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td>'+
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patname.trim() + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>"+reffid+"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +
'</tr>';
$("#table-body").append(datarow);
}
$('#myTable').DataTable({
"pageLength": 25, // Ganti sesuai kebutuhan
"lengthMenu": [25, 50, 100] // Pilihan dropdown entries per halaman
"order": [0, "desc"], // Urutan Tanggal Desc
"pageLength": 50, // Ganti sesuai kebutuhan
"lengthMenu": [50, 75, 100] // Pilihan dropdown entries per halaman
});
// datatable filter

View File

@ -3,9 +3,9 @@
if(isset($data[0])) {
$row = $data[0];
if (strlen($patnumber) < 10) {
$patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
}
// if (strlen($patnumber) < 10) {
// $patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
// }
?>
<div class="modal-header bg-soft-green text-white">
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Detail Request </h1>
@ -63,7 +63,7 @@ if(isset($data[0])) {
<button type='button' class='btn btn-dark m-0 px-2 py-1' onclick="printAllLabel(<?=$accessnumber;?>, <?=$usercityid;?>)"> <h6 class='p-0 m-0'><i class='bi bi-printer'></i></h6> </button>
<button type='button' class='btn btn-success m-0 px-2 py-1' onclick='collectAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Coll.</h6></button>
<!-- <button class='badge bg-black text-white m-0 px-2 py-1' onclick='uncollectAll(<?=$accessnumber;?>)'>un-collect</button> -->
<button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceiveAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Un-Rec.</h6></button>
<!-- <button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceiveAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Un-Rec.</h6></button> -->
</td>
</tr>
<tr>
@ -99,7 +99,7 @@ if(isset($data[0])) {
<button type='button' class='btn btn-dark m-0 px-2 py-1' " . "onclick='printSingleLabel($accessnumber, $sampletype, $usercityid)'" . "><h6 class='p-0 m-0'><i class='bi bi-printer'></i></h6></button>
<button type='button' class='btn btn-success m-0 px-2 py-1' onclick='collect($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Coll.</h6></button>
<button type='button' class='btn btn-warning m-0 px-2 py-1' onclick='uncollect($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Un-Coll.</h6></button>
<button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceive($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Un-Rec.</h6></button>
<button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceive($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Un-Rec.</h6></button>
</td> ";
echo "<td id='comment$sampletype'>$comment <h6 class='p-0 m-0'><i class='bi bi-pencil-square' role='button' onclick='comment($sampletype, $accessnumber, \"$sampletext\", \"$comment\")'></i></h6></td>";
echo " </tr>";

View File

@ -33,9 +33,10 @@
<th width="12%">Patient#</th>
<th width="17%">Patient Name</th>
<th class='text-start' width="10%">Access#</th>
<th width="9%">Reff#</th>
<th width="10%">Visit#</th>
<th width="10%">HIS#</th>
<th>Test</th>
<th>Status</th>
<th width="5%">Status</th>
<th></th>
</thead>
<tbody id="table-body" class='text-start'>
@ -56,7 +57,10 @@
<?= $this->section('script') ?>
<script>
let curDate = new Date().toJSON().slice(0, 10);
// let curDate = new Date().toJSON().slice(0, 10);
date = new Date();
let curDate = (new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON()).slice(0, 10);
$('.date1').val(curDate);
$('.date2').val(curDate);
index();
@ -111,8 +115,9 @@ function index() {
colltime = data[i].COLLECTIONDATE.slice(10,16);
if (data[i].PATNUMBER != null) {
patnumber = data[i].PATNUMBER.substr(-16,16);
patnumber = patnumber.substring(patnumber.length - 10);
patnumber = data[i].PATNUMBER.replace(/^0+/, '');
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
patnumber = ' NULL ';
}
@ -126,50 +131,75 @@ function index() {
} else {
testing_test = "";
}
if (data[i].REFFID != null) {
// patnumber = data[i].PATNUMBER;
reffid = data[i].REFFID;
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
reffid = ' NULL ';
}
tests = data[i].TESTS;
stat = data[i].STATS;
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
reqstatus = String(data[i].REQSTATUS);
trcolor = '';
if (reqstatus != '1') {
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
}
} else {
trcolor = ' table-danger-custom ';
bgcolor = ' table-danger-custom ';
datafilter = "data-filterrow='8'";
stattext = 'Cancelled';
}
let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
let datarow = "<tr class='align-middle" + trcolor +"'" + datafilter + " >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td>'+
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patname.trim() + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>"+reffid+"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +
'</tr>';
$("#table-body").append(datarow);
}
$('#myTable').DataTable({
"pageLength": 25, // Ganti sesuai kebutuhan
"lengthMenu": [25, 50, 100] // Pilihan dropdown entries per halaman
"order": [0, "desc"], // Urutan Tanggal Desc
"pageLength": 50, // Ganti sesuai kebutuhan
"lengthMenu": [50, 75, 100] // Pilihan dropdown entries per halaman
});
// datatable filter

View File

@ -3,9 +3,9 @@
if(isset($data[0])) {
$row = $data[0];
if (strlen($patnumber) < 10) {
$patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
}
// if (strlen($patnumber) < 10) {
// $patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
// }
?>
<div class="modal-header bg-soft-green text-white">
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Detail Request </h1>

View File

@ -1,8 +1,8 @@
<?php
if ($site[0] == 'S' || $site[0] == 's' || $site[0] == 'X' || $site[0] == 'x') {
$image = 'sby_bcg.jpg';
$image = 'sby_bcg_rev_2.png';
} else {
$image = 'bali_bcg.jpg';
$image = 'bali_bcg.png';
}
?>
<!DOCTYPE html>

View File

@ -33,9 +33,10 @@
<th width="12%">Patient#</th>
<th width="17%">Patient Name</th>
<th class='text-start' width="10%">Access#</th>
<th width="9%">Reff#</th>
<th width="10%">Visit#</th>
<th width="10%">HIS#</th>
<th>Test</th>
<th>Status</th>
<th width="5%">Status</th>
<th></th>
</thead>
<tbody id="table-body" class='text-start'>
@ -56,7 +57,9 @@
<?= $this->section('script') ?>
<script>
let curDate = new Date().toJSON().slice(0, 10);
// let curDate = new Date().toJSON().slice(0, 10);
date = new Date();
let curDate = (new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON()).slice(0, 10);
$('.date1').val(curDate);
$('.date2').val(curDate);
index();
@ -111,8 +114,9 @@ function index() {
colltime = data[i].COLLECTIONDATE.slice(10,16);
if (data[i].PATNUMBER != null) {
patnumber = data[i].PATNUMBER.substr(-16,16);
patnumber = patnumber.substring(patnumber.length - 10);
patnumber = data[i].PATNUMBER.replace(/^0+/, '');
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
patnumber = ' NULL ';
}
@ -126,50 +130,75 @@ function index() {
} else {
testing_test = "";
}
if (data[i].REFFID != null) {
// patnumber = data[i].PATNUMBER;
reffid = data[i].REFFID;
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
reffid = ' NULL ';
}
tests = data[i].TESTS;
stat = data[i].STATS;
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
reqstatus = String(data[i].REQSTATUS);
trcolor = '';
if (reqstatus != '1') {
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
}
} else {
trcolor = ' table-danger-custom ';
bgcolor = ' table-danger-custom ';
datafilter = "data-filterrow='8'";
stattext = 'Cancelled';
}
let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
let datarow = "<tr class='align-middle" + trcolor +"'" + datafilter + " >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td>'+
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patname.trim() + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>"+reffid+"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +
'</tr>';
$("#table-body").append(datarow);
}
$('#myTable').DataTable({
"pageLength": 25, // Ganti sesuai kebutuhan
"lengthMenu": [25, 50, 100] // Pilihan dropdown entries per halaman
"order": [0, "desc"], // Urutan Tanggal Desc
"pageLength": 50, // Ganti sesuai kebutuhan
"lengthMenu": [50, 75, 100] // Pilihan dropdown entries per halaman
});
// datatable filter

View File

@ -3,9 +3,9 @@
if(isset($data[0])) {
$row = $data[0];
if (strlen($patnumber) < 10) {
$patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
}
// if (strlen($patnumber) < 10) {
// $patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
// }
?>
<div class="modal-header bg-soft-green text-white">
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Detail Request </h1>
@ -63,7 +63,7 @@ if(isset($data[0])) {
<button type='button' class='btn btn-dark m-0 px-2 py-1' onclick="printAllLabel(<?=$accessnumber;?>, <?=$usercityid;?>)"> <h6 class='p-0 m-0'><i class='bi bi-printer'></i></h6> </button>
<button type='button' class='btn btn-success m-0 px-2 py-1' onclick='collectAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Coll.</h6></button>
<!-- <button class='badge bg-black text-white m-0 px-2 py-1' onclick='uncollectAll(<?=$accessnumber;?>)'>un-collect</button> -->
<button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceiveAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Un-Rec.</h6></button>
<!-- <button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceiveAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Un-Rec.</h6></button> -->
</td>
</tr>
<tr>
@ -99,7 +99,7 @@ if(isset($data[0])) {
<button type='button' class='btn btn-dark m-0 px-2 py-1' " . "onclick='printSingleLabel($accessnumber, $sampletype, $usercityid)'" . "><h6 class='p-0 m-0'><i class='bi bi-printer'></i></h6></button>
<button type='button' class='btn btn-success m-0 px-2 py-1' onclick='collect($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Coll.</h6></button>
<button type='button' class='btn btn-warning m-0 px-2 py-1' onclick='uncollect($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Un-Coll.</h6></button>
<button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceive($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Un-Rec.</h6></button>
<button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceive($sampletype, $accessnumber)'><h6 class='p-0 m-0'>Un-Rec.</h6></button>
</td> ";
echo "<td id='comment$sampletype'>$comment <h6 class='p-0 m-0'><i class='bi bi-pencil-square' role='button' onclick='comment($sampletype, $accessnumber, \"$sampletext\", \"$comment\")'></i></h6></td>";
echo " </tr>";

View File

@ -33,9 +33,10 @@
<th width="12%">Patient#</th>
<th width="17%">Patient Name</th>
<th class='text-start' width="10%">Access#</th>
<th width="9%">Reff#</th>
<th width="10%">Visit#</th>
<th width="10%">HIS#</th>
<th>Test</th>
<th>Status</th>
<th width="5%">Status</th>
<th></th>
</thead>
<tbody id="table-body" class='text-start'>
@ -56,7 +57,9 @@
<?= $this->section('script') ?>
<script>
let curDate = new Date().toJSON().slice(0, 10);
// let curDate = new Date().toJSON().slice(0, 10);
date = new Date();
let curDate = (new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON()).slice(0, 10);
$('.date1').val(curDate);
$('.date2').val(curDate);
index();
@ -111,8 +114,9 @@ function index() {
colltime = data[i].COLLECTIONDATE.slice(10,16);
if (data[i].PATNUMBER != null) {
patnumber = data[i].PATNUMBER.substr(-16,16);
patnumber = patnumber.substring(patnumber.length - 10);
patnumber = data[i].PATNUMBER.replace(/^0+/, '');
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
patnumber = ' NULL ';
}
@ -126,50 +130,75 @@ function index() {
} else {
testing_test = "";
}
if (data[i].REFFID != null) {
// patnumber = data[i].PATNUMBER;
reffid = data[i].REFFID;
// patnumber = data[i].PATNUMBER.substr(-16,16);
// patnumber = patnumber.substring(patnumber.length - 10);
} else {
reffid = ' NULL ';
}
tests = data[i].TESTS;
stat = data[i].STATS;
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
reqstatus = String(data[i].REQSTATUS);
trcolor = '';
if (reqstatus != '1') {
if(stat == 'Pend') {
bgcolor = 'bg-orange';
datafilter = "data-filterrow='0'";
stattext = 'Pending';
} else if(stat == 'PartColl') {
bgcolor = 'bg-peach';
datafilter = "data-filterrow='1'";
stattext = 'Part Collected';
} else if(stat == 'Coll') {
bgcolor = 'bg-pink';
datafilter = "data-filterrow='2'";
stattext = 'Collected';
} else if(stat == 'PartRecv') {
bgcolor = 'bg-soft-blue';
datafilter = "data-filterrow='3'";
stattext = 'Part Received';
} else if(stat == 'Recv') {
bgcolor = 'bg-blue';
datafilter = "data-filterrow='4'";
stattext = 'Received';
} else if(stat == 'Inc') {
bgcolor = 'bg-grey';
datafilter = "data-filterrow='5'";
stattext = 'Incomplete';
} else if(stat == 'PartVal') {
bgcolor = 'bg-soft-green';
datafilter = "data-filterrow='6'";
stattext = 'Part Validated';
} else if(stat == 'Comp') {
bgcolor = 'bg-green';
datafilter = "data-filterrow='7'";
stattext = 'Validated';
}
} else {
trcolor = ' table-danger-custom ';
bgcolor = ' table-danger-custom ';
datafilter = "data-filterrow='8'";
stattext = 'Cancelled';
}
let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
let datarow = "<tr class='align-middle" + trcolor +"'" + datafilter + " >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td>'+
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + patname.trim() + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>" +
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + testing_test + hon +"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>"+reffid+"<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td>"+
"<td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +
'</tr>';
$("#table-body").append(datarow);
}
$('#myTable').DataTable({
"pageLength": 25, // Ganti sesuai kebutuhan
"lengthMenu": [25, 50, 100] // Pilihan dropdown entries per halaman
"order": [0, "desc"], // Urutan Tanggal Desc
"pageLength": 50, // Ganti sesuai kebutuhan
"lengthMenu": [50, 75, 100] // Pilihan dropdown entries per halaman
});
// datatable filter

View File

@ -3,9 +3,9 @@
if(isset($data[0])) {
$row = $data[0];
if (strlen($patnumber) < 10) {
$patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
}
// if (strlen($patnumber) < 10) {
// $patnumber = str_pad($patnumber, 10, "0", STR_PAD_LEFT);
// }
?>
<div class="modal-header bg-soft-green text-white">
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Detail Request </h1>
@ -63,7 +63,7 @@ if(isset($data[0])) {
<button type='button' class='btn btn-dark m-0 px-2 py-1' onclick="printAllLabel(<?=$accessnumber;?>, <?=$usercityid;?>)"> <h6 class='p-0 m-0'><i class='bi bi-printer'></i></h6> </button>
<button type='button' class='btn btn-success m-0 px-2 py-1' onclick='collectAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Coll.</h6></button>
<!-- <button class='badge bg-black text-white m-0 px-2 py-1' onclick='uncollectAll(<?=$accessnumber;?>)'>un-collect</button> -->
<button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceiveAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Un-Rec.</h6></button>
<!-- <button type='button' class='btn btn-primary m-0 px-2 py-1' onclick='unreceiveAll(<?=$accessnumber;?>)'><h6 class='p-0 m-0'>Un-Rec.</h6></button> -->
</td>
</tr>
<tr>

View File

@ -32,7 +32,7 @@ body {
text-align: justify;
}
#dinfo {
margin-top: 130px;
margin-top: 118px;
background-size: 100% auto;
background-repeat: no-repeat;
}
@ -40,7 +40,8 @@ body {
#dresult {
margin: 0;
padding: 0;
height: 18.47cm;
/* height: 18.47cm; */
height: 19cm;
}
.result {
/* table-layout:fixed; */
@ -61,17 +62,44 @@ table {
margin-left: auto;
margin-right: auto;
}
.t_right {
margin-left: auto;
}
th,td {
/* padding-left: 1rem; */
padding-top: 5px ;
padding-bottom: 5px ;
padding-top: 3.5px;
padding-bottom: 3.5px ;
line-height:1.5;
border: 1px solid rgb(0, 0, 0);
}
th.khusus-kanan-h {
border-right: none;
}
th.khusus-kiri-h {
border-left: none;
}
td.khusus-kanan-d {
border-right: none;
}
td.khusus-kiri-d {
border-left: none;
}
th.left-pad, td.left-pad {
padding-left: 0.5rem;
}
td.right-pad {
padding-right: 0.5rem;
text-align: right;
}
td.center-pad {
text-align: center;
}
.result th,td {
line-height: 1.1 ;
@ -123,6 +151,7 @@ tr.chapter td {
.table_collection tr td{
/* font-size: 2em; */
padding: 1px;
/* border:solid 1px black; */
border: none;
}
@ -141,11 +170,33 @@ tr.chapter td {
border-collapse:collapse;
}
.table_footer tr td {
padding: 4px;
padding: 2px;
border: none;
/* border:solid 1px black; */
}
.table_footer tr td.margin_right {
padding-right: 80px;
text-align: right;
/* background-color: aqua; */
}
.table_footer tr td.margin_right_img_bali {
padding-right: 55px;
text-align: right;
/* background-color: aqua; */
}
.table_footer tr td.margin_right_sby_img {
padding-right: 5px;
text-align: right;
/* background-color: aqua; */
}
.table_footer tr td.margin_right_sby {
padding-right: 50px;
text-align: right;
/* background-color: aqua; */
}
.text-left {
text-align: left;
}
@ -153,8 +204,12 @@ tr.chapter td {
.img { width:200mm; margin-left:0.5cm }
#ttd_p {
width: 25%;
width: 25%;
}
#ttd_k {
width: 23%;
}
@media print {
@page { margin:0; size:210mm 297mm; }

View File

@ -1911,6 +1911,20 @@ progress {
border-color: var(--bs-table-border-color);
}
.table-danger-custom {
--bs-table-color: #000;
--bs-table-bg: #e72838d0;
--bs-table-border-color: #dfc2c4;
--bs-table-striped-bg: #eccccf;
--bs-table-striped-color: #000;
--bs-table-active-bg: #dfc2c4;
--bs-table-active-color: #000;
--bs-table-hover-bg: #e5c7ca;
--bs-table-hover-color: #000;
color: var(--bs-table-color);
border-color: var(--bs-table-border-color);
}
.table-light {
--bs-table-color: #000;
--bs-table-bg: #f8f9fa;

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB