From c899d9959795b56c4af3f013f7bc9e14e9d4f724 Mon Sep 17 00:00:00 2001 From: mikael-zakaria Date: Fri, 21 Mar 2025 10:55:57 +0800 Subject: [PATCH] temp --- app/Config/Routes.php | 1 + app/Controllers/API_TM.php | 80 ++++++++++++++++++++++++++------------ 2 files changed, 56 insertions(+), 25 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4b74546..4d6bfac 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -10,6 +10,7 @@ $routes->get('/loginsby', 'Auths::loginSBY'); $routes->get('/logindps', 'Auths::loginDPS'); //$routes->get('/tests', 'Auths::tests'); $routes->post('/api/requests/', 'API_TM::requests'); +$routes->post('/api/requests1/', 'API_TM::requests1'); $routes->get('/api/requests/orm/(:any)', 'API_TM::orm/$1'); $routes->get('/api/requests/oc/(:any)/(:any)', 'API_TM::oc/$1/$2'); $routes->get('/api/results/(:any)', 'API_TM::results_send/$1'); diff --git a/app/Controllers/API_TM.php b/app/Controllers/API_TM.php index 5c81da8..3602fc0 100644 --- a/app/Controllers/API_TM.php +++ b/app/Controllers/API_TM.php @@ -92,24 +92,13 @@ class API_TM extends ResourceController { $sex = $qpat['patient_sex']; $phone = $qpat['patient_phone']; - $sql = "select PATID from cmod.dbo.CM_TM_PATIENTS where PATNUMBER='$rm'"; - $query = $db->query($sql); - $results = $query->getResultArray(); - if(!isset($results[0])) { - $sql = "INSERT INTO cmod.dbo.CM_TM_PATIENTS (PATNUMBER, FIRSTNAME, LASTNAME, BIRTHDATE, SEX, PHONE ) VALUES ('$rm', '$firstname', '$lastname', '$dob', '$sex', '$phone' )"; - $db->query($sql); - $patid = $db->insertID(); - } else { - $patid = $results[0]['PATID']; - $sql = "UPDATE cmod.dbo.CM_TM_PATIENTS SET FIRSTNAME='$firstname', LASTNAME='$lastname', BIRTHDATE='$dob', SEX='$sex', PHONE='$phone' where PATID='$patid'"; - $db->query($sql); - } - //reqdata $reffid = $qdata['reference_id']; $company = $qdata['company_name']; $loc = $qdata['branch']; $status = $qdata['status']; + if($status == 'order') { $reqstatus = '0'; } + else { $reqstatus = '1'; } $visitnum = $qpat['visit_number']; $visitdesc = $qpat['visit_description']; @@ -123,6 +112,44 @@ class API_TM extends ResourceController { $bw = $qant['weight']; $bh = $qant['height']; + // Check if visitnumber / patnumber beda dari yang lama + /* + $sql = "select cr.REQNUMBER, cp.PATNUMBER from cmod.dbo.CM_TM_REQUESTS cr + left join cmod.dbo.CM_TM_PATIENTS cp on cr.PATID=cp.PATID + where REFFID='$reffid'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + if(!isset($results[0])) { + $qvisit = $results[0]['REQNUMBER']; + $qpatnum = $results[0]['PATNUMBER']; + if($qvisit != $visitnum) { + $response = [ + 'errors' => 'visit number is not the same', 'message' => 'Visit# is not the same with existing reffid' + ]; + return $this->fail($response , 409); + } + if($qpatnum != $rm) { + $response = [ + 'errors' => 'rm number is not the same', 'message' => 'RM# is not the same with existing reffid' + ]; + return $this->fail($response , 409); + } + } + */ + + $sql = "select PATID from cmod.dbo.CM_TM_PATIENTS where PATNUMBER='$rm'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + if(!isset($results[0])) { + $sql = "INSERT INTO cmod.dbo.CM_TM_PATIENTS (PATNUMBER, FIRSTNAME, LASTNAME, BIRTHDATE, SEX, PHONE ) VALUES ('$rm', '$firstname', '$lastname', '$dob', '$sex', '$phone' )"; + $db->query($sql); + $patid = $db->insertID(); + } else { + $patid = $results[0]['PATID']; + $sql = "UPDATE cmod.dbo.CM_TM_PATIENTS SET FIRSTNAME='$firstname', LASTNAME='$lastname', BIRTHDATE='$dob', SEX='$sex', PHONE='$phone' where PATID='$patid'"; + $db->query($sql); + } + /* $time = Time::createFromFormat('Y-m-d\TH:i:s.u\Z', $utcdt, 'UTC'); //2024-10-19T00:47:06.424654Z $time = $time->setTimezone('Asia/Shanghai'); @@ -132,14 +159,14 @@ class API_TM extends ResourceController { $query = $db->query($sql); $results = $query->getResultArray(); if(!isset($results[0])) { - $sql = "INSERT INTO cmod.dbo.CM_TM_REQUESTS (REFFID, REQNUMBER, REQDATE, AGENT, DOC, LOC, PATID, COMPANY, LOGDATE, BW, BH, VISITDESC, VISITTYPE) - VALUES ('$reffid', '$visitnum', '$visitdt', '$agentname', '$doc', '$loc', '$patid', '$company', '$createdt', '$bw', '$bh', '$visitdesc', '$visittype' )"; + $sql = "INSERT INTO cmod.dbo.CM_TM_REQUESTS (REFFID, REQNUMBER, REQDATE, AGENT, DOC, LOC, PATID, COMPANY, LOGDATE, BW, BH, VISITDESC, VISITTYPE, REQSTATUS) + VALUES ('$reffid', '$visitnum', '$visitdt', '$agentname', '$doc', '$loc', '$patid', '$company', '$createdt', '$bw', '$bh', '$visitdesc', '$visittype', '' )"; $db->query($sql); $reqid = $db->insertID(); } else { $reqid = $results[0]['REQID']; $sql = "UPDATE cmod.dbo.CM_TM_REQUESTS SET REQNUMBER='$visitnum', REQDATE='$visitdt', AGENT='$agentname', DOC='$doc', LOC='$loc', PATID='$patid', - COMPANY='$company',LOGDATE='$createdt', BW='$bw', BH='$bh', VISITDESC='$visitdesc', VISITTYPE='$visittype' + COMPANY='$company',LOGDATE='$createdt', BW='$bw', BH='$bh', VISITDESC='$visitdesc', VISITTYPE='$visittype', REQSTATUS='$reqstatus' where REQID='$reqid'"; $db->query($sql); } @@ -178,7 +205,7 @@ class API_TM extends ResourceController { $response = [ 'errors' => $db->errors(), 'message' => 'Invalid Messages' ]; - return $this->fail($response , 409); + return $this->fail($response , 409); } */ } @@ -211,7 +238,8 @@ class API_TM extends ResourceController { $phone = $res['PHONE']; // LOC - if($loc == "PBMC Bali") { + //if($loc == "PBMC Bali") { + if($loc == "PMG Bali" || $loc == "PBMC Bali") { $loc = "PADMA"; $doc = "PBDPS"; $time = $time->setTimezone('Asia/Shanghai'); $reqdate= date_format($time, 'YmdHi'); @@ -262,10 +290,11 @@ class API_TM extends ResourceController { public function create_result_json($accessnumber) { $db = \Config\Database::connect(); $sql = "select r.HOSTORDERNUMBER, r.SP_HOSPNUMBER, cr.REQNUMBER, cr.LOC, cr.COMPANY, cr.AGENT, cr.VISITDESC, cr.VISITTYPE, - p.PATNUMBER, p.NAME, p.FIRSTNAME, p.BIRTHDATE, p.SEX, p.TELEPHON, r.COLLECTIONDATE, cr.AGENT, cr.DOC, cr.BW, cr.BH + p.PATNUMBER, cp.LASTNAME, cp.FIRSTNAME, p.BIRTHDATE, p.SEX, p.TELEPHON, r.COLLECTIONDATE, cr.AGENT, cr.DOC, cr.BW, cr.BH from SP_REQUESTS r left join cmod.dbo.CM_TM_REQUESTS cr on cr.REFFID=r.HOSTORDERNUMBER left join PATIENTS p on p.PATID=r.PATID + left join cmod.dbo.CM_TM_PATIENTS cp on cp.PATNUMBER=right(p.PATNUMBER,8) where r.SP_ACCESSNUMBER='$accessnumber'"; $query = $db->query($sql); $results = $query->getResultArray(); @@ -277,8 +306,8 @@ where r.SP_ACCESSNUMBER='$accessnumber'"; $company = $results[0]['COMPANY']; $createdt = gmdate('Y-m-d\TH:i:s.v\Z'); $patnumber = substr($results[0]['PATNUMBER'],-9); - $firstname = $results[0]['NAME']; - $lastname = $results[0]['FIRSTNAME']; + $firstname = $results[0]['FIRSTNAME']; + $lastname = $results[0]['LASTNAME']; $dob = $results[0]['BIRTHDATE']; $sex = $results[0]['SEX']; $phone = $results[0]['TELEPHON']; @@ -327,7 +356,7 @@ where r.SP_ACCESSNUMBER='$accessnumber'"; cdt.TEXT1 as test_eng, cdt.TEXT2 as test_ind, cdt.UNIT as UNITTEXT, cdt.REFFTEXT, t.NOTPRINTABLE, cr.RESSTATUS, 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, ct.REFFTESTID, m.HISCODE, m.LISCODE, - tub.TUBENAME, cr.REFRANGE, dt.TESTCODE, t.TESTORDER, dt.UNITS, cr.RESDATE, cr.USERVAL + tub.TUBENAME, cr.REFRANGE, dt.TESTCODE, t.TESTORDER, dt.UNITS, cr.RESDATE, cr.USERVAL, u.USERNAME 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 @@ -336,11 +365,12 @@ 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 -left join cmod.dbo.CM_DICT_MAPPINGS m on m.LISCODE=cr.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 left join cmod.dbo.CM_TM_REQUESTS cq on cq.REFFID=r.EXTERNALORDERNUMBER -left join cmod.dbo.CM_TM_TESTS ct on ct.HISCODE=m.HISCODE and ct.REQID=cq.REQID +left join cmod.dbo.CM_TM_TESTS ct on ct.REQID=cq.REQID +left join cmod.dbo.CM_DICT_MAPPINGS m on m.LISCODE=cr.TESTCODE and m.HISCODE=ct.HISCODE left join cmod.dbo.CM_DICT_TUBES tub on tub.TUBEID=m.TUBEID +left join USERS u on u.USERINITIALS=cr.USERVAL where r.ACCESSNUMBER='$accessnumber' and t.NOTPRINTABLE is null ORDER BY t.TESTORDER"; $query = $db->query($sql); $test_results = $query->getResultArray();