From 780d433c22dd04411e35886ab8341cba7c9b18dc Mon Sep 17 00:00:00 2001 From: mikael-zakaria Date: Tue, 21 Jan 2025 17:20:46 +0800 Subject: [PATCH] Update Waktu Collection(Bawah Laporan) dan Result(Atas) pada laporan Hasil Sesuai User Login (Bali/WITA) dan (Sby/WIB) --- app/Controllers/PrintResult.php | 138 ++++++++++++++++---------------- 1 file changed, 67 insertions(+), 71 deletions(-) diff --git a/app/Controllers/PrintResult.php b/app/Controllers/PrintResult.php index 941d9e1..67defc0 100644 --- a/app/Controllers/PrintResult.php +++ b/app/Controllers/PrintResult.php @@ -3,7 +3,7 @@ namespace App\Controllers; class PrintResult extends BaseController { - public function otherTests($resultData, $data, $note){ + public function otherTests($resultData, $data, $note) { // Mengetahui Apakah User Login adalah Bali atau Surabaya $cityid = session()->get('usercityid'); @@ -53,17 +53,17 @@ class PrintResult extends BaseController { if ($birth_date) { $birth_date = $birth_date->format('d-m-Y'); } $hostordernumber = $data[0]['HOSTORDERNUMBER']; - + $collection_date = $data[0]['COLLECTIONDATE']; - $dateTime = \DateTime::createFromFormat('Y-m-d H:i:s.u', $collection_date); - if ($dateTime) { - $collection_date = $dateTime->format('d-m-Y H:i'); + $dateTimeCol = \DateTime::createFromFormat('Y-m-d H:i:s.u', $collection_date); + if ($dateTimeCol) { + $collection_date = $dateTimeCol->format('d-m-Y H:i'); } $result_date = $data[0]['RESULTDATE']; - $dateTime = \DateTime::createFromFormat('Y-m-d H:i:s.u', $result_date); - if ($dateTime) { - $result_date = $dateTime->format('d-m-Y H:i'); + $dateTimeRes = \DateTime::createFromFormat('Y-m-d H:i:s.u', $result_date); + if ($dateTimeRes) { + $result_date = $dateTimeRes->format('d-m-Y H:i'); } } else { @@ -383,8 +383,16 @@ class PrintResult extends BaseController { } public function printResultTest($access) { - $db = \Config\Database::connect(); + $cityid = session()->get('usercityid'); + $db = \Config\Database::connect(); + // Memisahkan Waktu yang ditampilkan pada laporan hasil + $filter_query_result=""; + if ($cityid == 1) { + $filter_query_result = " r.MAX_RESDATE AS RESULTDATE "; + } elseif ($cityid == 2) { + $filter_query_result = " FORMAT(DATEADD(HOUR, -1, r.MAX_RESDATE), 'yyyy-MM-dd hh:mm:ss.fff') AS RESULTDATE "; + } // Untuk Header $sql = "SELECT p.PATNUMBER, @@ -395,7 +403,7 @@ class PrintResult extends BaseController { sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, p.SEX, - r.MAX_RESDATE AS RESULTDATE + ".$filter_query_result." FROM PATIENTS p LEFT JOIN @@ -420,73 +428,61 @@ class PrintResult extends BaseController { $results = $query->getResultArray(); $header = $results[0]; + // Memisahkan Waktu yang ditampilkan pada laporan hasil + $filter_query_collection=""; + if ($cityid == 1) { + $filter_query_collection = " FORMAT(ct.COLLECTIONDATE, 'hh:mm') AS colltime "; + } elseif ($cityid == 2) { + $filter_query_collection = " FORMAT(DATEADD(HOUR, -1, ct.COLLECTIONDATE), 'hh:mm') AS colltime "; + } // 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, format(ct.COLLECTIONDATE, 'hh:mm') as colltime - from SP_TUBES tu - 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 - where tu.SP_ACCESSNUMBER='$access'"; + $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, + ".$filter_query_collection." + FROM + SP_TUBES tu + 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 + WHERE + tu.SP_ACCESSNUMBER = '$access';"; $query = $db->query($sql); $results = $query->getResultArray(); $collection = $results; - $data = [$header, $collection]; - // var_dump($data[0]['PATNUMBER']);die(); - // BACKUP - // $sql = " - // select dc.CHAPID, dc.FULLTEXT as chap_eng,dc.FULLTEXT as chap_ind, - // RESULT=case when cr.RESTYPE in('NM','TX') then cr.RESVALUE when cr.RESTYPE='CE' then tx.FULLTEXT end, - // cr.*, cdt.TEXT1 as test_eng, cdt.TEXT2 as test_ind - // from cmod.dbo.CM_RESULTS cr - // left join REQUESTS r on r.ACCESSNUMBER=cr.ACCESSNUMBER - // left join cmod.dbo.CM_DICT_TESTS cdt on cr.TESTCODE=cdt.TESTCODE - // left join DICT_TESTS dt on dt.TESTCODE=cr.TESTCODE and dt.ENDVALIDDATE is null - // left join TESTS t on t.REQUESTID = r.REQUESTID and t.TESTID=dt.TESTID - // left join DICT_TEXTS tx on tx.TEXTID=t.CODEDRESULTID - // left join DICT_CHAPTERS dc on dc.CHAPID=dt.CHAPID and dc.ENDVALIDDATE is null - // left join cmod.dbo.CM_DICT_CHAPTERS cdc on cdc.CHAPCODE=dc.CHAPCODE - // where cr.ACCESSNUMBER='$access' - // ORDER BY - // CASE - // WHEN cr.TESTCODE = 'NOTE' THEN 1 - // ELSE 0 - // END, - // t.TESTORDER; - // "; - - $sql = " - select - dc.CHAPID, - dc.FULLTEXT as chap_eng, - dc.FULLTEXT as chap_ind, - st.FULLTEXT as serum_type, - cdt.TEXT1 as test_eng, - cdt.TEXT2 as test_ind, - cdt.UNIT as UNITTEXT, - cdt.REFFTEXT, - t.DEPTH, - t.NOTPRINTABLE, - t.TESTORDER, - t.RESTYPE as code_type, - t.VALIDATIONINITIALS as validator, - dt.SHORTTEXT, - RESULT = case when t.RESVALUE is null then tx.FULLTEXT else t.RESVALUE end, - cr.* - from REQUESTS r - left join TESTS t on t.REQUESTID = r.REQUESTID - left join DICT_TESTS dt on dt.ENDVALIDDATE is null and t.TESTID=dt.TESTID - left join DICT_TEXTS tx on tx.TEXTID=t.CODEDRESULTID - left join DICT_CHAPTERS dc on dc.CHAPID=dt.CHAPID and dc.ENDVALIDDATE is null - 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 - where r.ACCESSNUMBER='$access' - ORDER BY t.TESTORDER - "; + $sql = "SELECT + dc.CHAPID, + dc.FULLTEXT as chap_eng, + dc.FULLTEXT as chap_ind, + st.FULLTEXT as serum_type, + cdt.TEXT1 as test_eng, + cdt.TEXT2 as test_ind, + cdt.UNIT as UNITTEXT, + cdt.REFFTEXT, + t.DEPTH, + t.NOTPRINTABLE, + t.TESTORDER, + t.RESTYPE as code_type, + t.VALIDATIONINITIALS as validator, + dt.SHORTTEXT, + RESULT = case when t.RESVALUE is null then tx.FULLTEXT else t.RESVALUE end, + cr.* + from REQUESTS r + left join TESTS t on t.REQUESTID = r.REQUESTID + left join DICT_TESTS dt on dt.ENDVALIDDATE is null and t.TESTID=dt.TESTID + left join DICT_TEXTS tx on tx.TEXTID=t.CODEDRESULTID + left join DICT_CHAPTERS dc on dc.CHAPID=dt.CHAPID and dc.ENDVALIDDATE is null + 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 + where r.ACCESSNUMBER='$access' + ORDER BY t.TESTORDER"; $query = $db->query($sql); $results = $query->getResultArray();