This commit is contained in:
mikael-zakaria 2025-03-21 10:55:57 +08:00
parent aec00c113f
commit c899d99597
2 changed files with 56 additions and 25 deletions

View File

@ -10,6 +10,7 @@ $routes->get('/loginsby', 'Auths::loginSBY');
$routes->get('/logindps', 'Auths::loginDPS'); $routes->get('/logindps', 'Auths::loginDPS');
//$routes->get('/tests', 'Auths::tests'); //$routes->get('/tests', 'Auths::tests');
$routes->post('/api/requests/', 'API_TM::requests'); $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/orm/(:any)', 'API_TM::orm/$1');
$routes->get('/api/requests/oc/(:any)/(:any)', 'API_TM::oc/$1/$2'); $routes->get('/api/requests/oc/(:any)/(:any)', 'API_TM::oc/$1/$2');
$routes->get('/api/results/(:any)', 'API_TM::results_send/$1'); $routes->get('/api/results/(:any)', 'API_TM::results_send/$1');

View File

@ -92,24 +92,13 @@ class API_TM extends ResourceController {
$sex = $qpat['patient_sex']; $sex = $qpat['patient_sex'];
$phone = $qpat['patient_phone']; $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 //reqdata
$reffid = $qdata['reference_id']; $reffid = $qdata['reference_id'];
$company = $qdata['company_name']; $company = $qdata['company_name'];
$loc = $qdata['branch']; $loc = $qdata['branch'];
$status = $qdata['status']; $status = $qdata['status'];
if($status == 'order') { $reqstatus = '0'; }
else { $reqstatus = '1'; }
$visitnum = $qpat['visit_number']; $visitnum = $qpat['visit_number'];
$visitdesc = $qpat['visit_description']; $visitdesc = $qpat['visit_description'];
@ -123,6 +112,44 @@ class API_TM extends ResourceController {
$bw = $qant['weight']; $bw = $qant['weight'];
$bh = $qant['height']; $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::createFromFormat('Y-m-d\TH:i:s.u\Z', $utcdt, 'UTC'); //2024-10-19T00:47:06.424654Z
$time = $time->setTimezone('Asia/Shanghai'); $time = $time->setTimezone('Asia/Shanghai');
@ -132,14 +159,14 @@ class API_TM extends ResourceController {
$query = $db->query($sql); $query = $db->query($sql);
$results = $query->getResultArray(); $results = $query->getResultArray();
if(!isset($results[0])) { 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) $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' )"; VALUES ('$reffid', '$visitnum', '$visitdt', '$agentname', '$doc', '$loc', '$patid', '$company', '$createdt', '$bw', '$bh', '$visitdesc', '$visittype', '' )";
$db->query($sql); $db->query($sql);
$reqid = $db->insertID(); $reqid = $db->insertID();
} else { } else {
$reqid = $results[0]['REQID']; $reqid = $results[0]['REQID'];
$sql = "UPDATE cmod.dbo.CM_TM_REQUESTS SET REQNUMBER='$visitnum', REQDATE='$visitdt', AGENT='$agentname', DOC='$doc', LOC='$loc', PATID='$patid', $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'"; where REQID='$reqid'";
$db->query($sql); $db->query($sql);
} }
@ -178,7 +205,7 @@ class API_TM extends ResourceController {
$response = [ $response = [
'errors' => $db->errors(), 'message' => 'Invalid Messages' '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']; $phone = $res['PHONE'];
// LOC // LOC
if($loc == "PBMC Bali") { //if($loc == "PBMC Bali") {
if($loc == "PMG Bali" || $loc == "PBMC Bali") {
$loc = "PADMA"; $doc = "PBDPS"; $loc = "PADMA"; $doc = "PBDPS";
$time = $time->setTimezone('Asia/Shanghai'); $time = $time->setTimezone('Asia/Shanghai');
$reqdate= date_format($time, 'YmdHi'); $reqdate= date_format($time, 'YmdHi');
@ -262,10 +290,11 @@ class API_TM extends ResourceController {
public function create_result_json($accessnumber) { public function create_result_json($accessnumber) {
$db = \Config\Database::connect(); $db = \Config\Database::connect();
$sql = "select r.HOSTORDERNUMBER, r.SP_HOSPNUMBER, cr.REQNUMBER, cr.LOC, cr.COMPANY, cr.AGENT, cr.VISITDESC, cr.VISITTYPE, $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 from SP_REQUESTS r
left join cmod.dbo.CM_TM_REQUESTS cr on cr.REFFID=r.HOSTORDERNUMBER left join cmod.dbo.CM_TM_REQUESTS cr on cr.REFFID=r.HOSTORDERNUMBER
left join PATIENTS p on p.PATID=r.PATID 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'"; where r.SP_ACCESSNUMBER='$accessnumber'";
$query = $db->query($sql); $query = $db->query($sql);
$results = $query->getResultArray(); $results = $query->getResultArray();
@ -277,8 +306,8 @@ where r.SP_ACCESSNUMBER='$accessnumber'";
$company = $results[0]['COMPANY']; $company = $results[0]['COMPANY'];
$createdt = gmdate('Y-m-d\TH:i:s.v\Z'); $createdt = gmdate('Y-m-d\TH:i:s.v\Z');
$patnumber = substr($results[0]['PATNUMBER'],-9); $patnumber = substr($results[0]['PATNUMBER'],-9);
$firstname = $results[0]['NAME']; $firstname = $results[0]['FIRSTNAME'];
$lastname = $results[0]['FIRSTNAME']; $lastname = $results[0]['LASTNAME'];
$dob = $results[0]['BIRTHDATE']; $dob = $results[0]['BIRTHDATE'];
$sex = $results[0]['SEX']; $sex = $results[0]['SEX'];
$phone = $results[0]['TELEPHON']; $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, 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, 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, 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 from REQUESTS r
left join TESTS t on t.REQUESTID = r.REQUESTID 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_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_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 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_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
left join cmod.dbo.CM_DICT_MAPPINGS m on m.LISCODE=cr.TESTCODE
left join cmod.dbo.CM_TM_REQUESTS cq on cq.REFFID=r.EXTERNALORDERNUMBER 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 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"; where r.ACCESSNUMBER='$accessnumber' and t.NOTPRINTABLE is null ORDER BY t.TESTORDER";
$query = $db->query($sql); $query = $db->query($sql);
$test_results = $query->getResultArray(); $test_results = $query->getResultArray();