saved state
This commit is contained in:
parent
5e2ff68596
commit
a3a6a2b80c
@ -57,7 +57,7 @@ class Filters extends BaseFilters
|
||||
'after' => [
|
||||
'pagecache', // Web Page Caching
|
||||
'performance', // Performance Metrics
|
||||
'toolbar', // Debug Toolbar
|
||||
//'toolbar', // Debug Toolbar
|
||||
],
|
||||
];
|
||||
|
||||
@ -76,6 +76,7 @@ class Filters extends BaseFilters
|
||||
'after' => [
|
||||
// 'honeypot',
|
||||
// 'secureheaders',
|
||||
//'toolbar' => ['except' => ['api/*']]
|
||||
],
|
||||
];
|
||||
|
||||
|
||||
@ -8,4 +8,5 @@ use CodeIgniter\Router\RouteCollection;
|
||||
$routes->get('/', 'Pages::home');
|
||||
$routes->post('/api/requests/', 'API_Requests::requests');
|
||||
$routes->get('/api/requests/orm/(:any)', 'API_Requests::orm/$1');
|
||||
$routes->get('/api/results/(:any)', 'API_Results::results/$1');
|
||||
$routes->get('/api/results/(:any)', 'API_Results::results_send/$1');
|
||||
$routes->get('/api/results_preview/(:any)', 'API_Results::results_preview/$1');
|
||||
|
||||
@ -43,15 +43,14 @@ class API_Requests extends ResourceController {
|
||||
|
||||
//reqdata
|
||||
$reffid = $qdata['reference_id'];
|
||||
$company_name = $qdata['company_name'];
|
||||
$company = $qdata['company_name'];
|
||||
$loc = $qdata['branch'];
|
||||
|
||||
$visitnum = $qpat['visit_number'];
|
||||
$visitdesc = $qpat['visit_description'];
|
||||
$visitdt = $qpat['visit_date_time'];
|
||||
$agent = $qpat['agent'];
|
||||
$agentname = str_replace("'","''",$qpat['agent_name']);
|
||||
$visittype = $qpat['visit_type'];
|
||||
$visitdt = $qpat['visit_date_time'];
|
||||
$agentname = str_replace("'","''",$qpat['agent_name']);
|
||||
$doc = str_replace("'","''",$qpat['treating_doctor']);
|
||||
|
||||
$createdt = $qdata['created'];
|
||||
@ -68,13 +67,15 @@ class API_Requests extends ResourceController {
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
if(!isset($results[0])) {
|
||||
$sql = "INSERT INTO cmod.dbo.CM_TM_REQUESTS (REFFID, REQNUMBER, REQDESC, REQTYPE, REQDATE, AGENT, DOC, LOC, PATID, COMPANY, LOGDATE, BW, BH)
|
||||
VALUES ('$reffid', '$visitnum', '$visitdesc', '$visittype', '$visitdt', '$agentname', '$doc', '$loc', '$patid', '$company_name', '$createdt', '$bw', '$bh' )";
|
||||
$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' )";
|
||||
$db->query($sql);
|
||||
$reqid = $db->insertID();
|
||||
} else {
|
||||
$reqid = $results[0]['REQID'];
|
||||
$sql = "UPDATE cmod.dbo.CM_TM_REQUESTS SET REQNUMBER='$visitnum', REQDESC='$visitdesc', REQTYPE='$visittype', REQDATE='$visitdt', AGENT='$agentname', DOC='$doc', LOC='$loc', PATID='$patid', LOGDATE='$createdt', BW='$bw', BH='$bh' where REQID='$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'
|
||||
where REQID='$reqid'";
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
@ -119,7 +120,8 @@ class API_Requests extends ResourceController {
|
||||
|
||||
public function orm($reqid) {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select r.REFFID, r.LOC, p.PATNUMBER, p.FIRSTNAME, p.LASTNAME, p.BIRTHDATE, p.SEX, r.REQNUMBER, r.REQDATE, r.AGENT, r.DOC, r.BW, r.BH
|
||||
$sql = "select r.REFFID, r.LOC, p.PATNUMBER, p.FIRSTNAME, p.LASTNAME, p.BIRTHDATE, p.SEX, p.PHONE,
|
||||
r.REQNUMBER, r.REQDATE, r.AGENT, r.DOC, r.BW, r.BH
|
||||
from cmod.dbo.CM_TM_REQUESTS r
|
||||
left join cmod.dbo.CM_TM_PATIENTS p on p.PATID=r.PATID
|
||||
where r.REQID='$reqid'";
|
||||
@ -134,13 +136,14 @@ class API_Requests extends ResourceController {
|
||||
$firstname = $res['FIRSTNAME'];
|
||||
$lastname = $res['LASTNAME'];
|
||||
$dob = $res['BIRTHDATE'];
|
||||
$sex = $res['SEX'];
|
||||
$sex = substr($res['SEX'],0,1);
|
||||
$hosp = $res['REQNUMBER'];
|
||||
$reqdate = $res['REQDATE'];
|
||||
$time = Time::createFromFormat('Y-m-d\TH:i:s.u\Z', $reqdate, 'UTC'); //2024-10-19T00:47:06.424654Z
|
||||
$agent = $res['AGENT'];
|
||||
$bw = $res['BW'];
|
||||
$bh = $res['BH'];
|
||||
$phone = $res['PHONE'];
|
||||
|
||||
// LOC
|
||||
if($loc == "PBMC Bali") {
|
||||
@ -154,8 +157,8 @@ class API_Requests extends ResourceController {
|
||||
}
|
||||
|
||||
$orm = "MSH|^~\&|PBMC|TM|TDNL||||ORM^O01^|||2.3||||\r";
|
||||
$orm .= "PID|1||$patnumber^^^^PATNUMBER||$firstname^$lastname^^^^^L||$dob|$sex||^|^^||||||^||||||||||||||||\r";
|
||||
$orm .= "PV1|||$loc^^^||||$doc|$doc||||||||||||||||||||||||||||||||||||$reqdate||||||||||\r";
|
||||
$orm .= "PID|1||$patnumber^^^^PATNUMBER||$firstname^$lastname^^^^^L||$dob|$sex||^|^^||$phone^^TELEPHON||||^||||||||||||||||\r";
|
||||
$orm .= "PV1|||$loc^^^||||$doc|$doc|||||||||||$hosp|||||||||||||||||||||||||$reqdate||||||||||\r";
|
||||
|
||||
$sql = "select t.TESTSTATUS, m.LISCODE from cmod.dbo.CM_TM_TESTS t
|
||||
left join cmod.dbo.CM_DICT_MAPPINGS m on m.HISCODE=t.HISCODE
|
||||
|
||||
@ -3,21 +3,17 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use CodeIgniter\RESTful\ResourceController;
|
||||
use CodeIgniter\I18n\Time;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
|
||||
class API_Results extends ResourceController {
|
||||
|
||||
public function results($accessnumber) {
|
||||
$TM_url = "https://api-transmedic1.transmedic.co.id/webhook/lis";
|
||||
$TMBali_bearerToken = "4140|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6IjEyNy4wLjAuMTo4MDAwIiwiaWF0IjoxNzM4MDYwNzcwLCJleHAiOjE3MzgxNDcxNzAsInN1YiI6bnVsbCwianRpIjoiMDcyODc4NmUtZGRiMy00OWQxLTlhOGEtYjFhNGM3ZTcwNWY5IiwiZGF0YSI6eyJ1c2VybmFtZSI6InBibWNfYmFsaSIsInBhc3N3b3JkIjoiSjhlMjlYakxtRENGdVFuayJ9fQ.nb8_SX2nGyq_5A5TmyVDNvuCm5wSovA1od9FcXhhvXw";
|
||||
$TMSby_bearerToken = "4141|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6IjEyNy4wLjAuMTo4MDAwIiwiaWF0IjoxNzM4MDYwODg5LCJleHAiOjE3MzgxNDcyODksInN1YiI6bnVsbCwianRpIjoiZjY2Njc5MmItOTc2OS00ODY3LThlNmItNTBmZDM0MGRjYWZhIiwiZGF0YSI6eyJ1c2VybmFtZSI6InBibWNfc3VyYWJheWEiLCJwYXNzd29yZCI6InBnY1dmZHdYM3FFdDl6YUMifX0.j3ncwI9bZtPIhn3-p6cl3A91nIrZrmQLSGmhVdqSVsY";
|
||||
|
||||
public function create_json($accessnumber) {
|
||||
$db = \Config\Database::connect();
|
||||
|
||||
$sql = "select r.HOSTORDERNUMBER, r.SP_HOSPNUMBER, cr.LOC, cr.COMPANY, cr.AGENT from SP_REQUESTS r
|
||||
left join cmod.dbo.CM_TM_REQUESTS cr on cr.REFFID=r.HOSTORDERNUMBER
|
||||
where r.SP_ACCESSNUMBER='$accessnumber'";
|
||||
$sql = "select r.HOSTORDERNUMBER, r.SP_HOSPNUMBER, 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
|
||||
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
|
||||
where r.SP_ACCESSNUMBER='$accessnumber'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
|
||||
@ -27,23 +23,55 @@ class API_Results extends ResourceController {
|
||||
$payer_name = $results[0]['AGENT'];
|
||||
$company = $results[0]['COMPANY'];
|
||||
$createdt = gmdate('Y-m-d\TH:i:s.v\Z');
|
||||
$patnumber = substr($results[0]['PATNUMBER'],-8);
|
||||
$firstname = $results[0]['FIRSTNAME'];
|
||||
$lastname = $results[0]['NAME'];
|
||||
$dob = $results[0]['BIRTHDATE'];
|
||||
$sex = $results[0]['SEX'];
|
||||
$phone = $results[0]['TELEPHON'];
|
||||
$visitdesc = $results[0]['VISITDESC'];
|
||||
$visittype = $results[0]['VISITTYPE'];
|
||||
$visitdt = $results[0]['COLLECTIONDATE'];
|
||||
$agent = $results[0]['AGENT'];
|
||||
if($agent != '') {$bagent = true;}
|
||||
else {$bagent=false;}
|
||||
$doctor = $results[0]['DOC'];
|
||||
$bw = $results[0]['BW'];
|
||||
$bh = $results[0]['BH'];
|
||||
|
||||
if($location == 'PBMC Surabaya') { $token = $TMSby_bearerToken; }
|
||||
else { $token = $TMBali_bearerToken; }
|
||||
|
||||
$client = \Config\Services::curlrequest();
|
||||
$json = [
|
||||
"reference_id" => "$reffid",
|
||||
"created" => "$createdt",
|
||||
"company_name" => $company,
|
||||
"branch" => $location,
|
||||
"patient" => [
|
||||
"rm_number" => $patnumber,
|
||||
"patient_first_name" => $firstname,
|
||||
"patient_last_name" => $lastname,
|
||||
"patient_dob" => $dob,
|
||||
"patient_sex" => $sex,
|
||||
"patient_phone" => $phone,
|
||||
"visit_number" => $visitnumber,
|
||||
"visit_description"=> $visitdesc,
|
||||
"visit_date_time" => $visitdt,
|
||||
"agent_name" => $agent,
|
||||
"agent" => $bagent,
|
||||
"treating_doctor" => $doctor,
|
||||
"visit_type" => $visittype,
|
||||
"anthropometry" => [
|
||||
"weight" => $bw,
|
||||
"height" => $bh,
|
||||
],
|
||||
],
|
||||
"test_results" => []
|
||||
];
|
||||
|
||||
$sql = "select dc.CHAPID, t.DEPTH as depth_test, 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.NOTPRINTABLE,
|
||||
$sql = "select dc.CHAPID, t.DEPTH as depth_test, 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.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
|
||||
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
|
||||
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
|
||||
@ -54,7 +82,8 @@ 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_TM_TESTS ct on ct.HISCODE=m.HISCODE
|
||||
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_DICT_TUBES tub on tub.TUBEID=m.TUBEID
|
||||
where r.ACCESSNUMBER='$accessnumber' ORDER BY t.TESTORDER";
|
||||
$query = $db->query($sql);
|
||||
@ -72,8 +101,16 @@ where r.ACCESSNUMBER='$accessnumber' ORDER BY t.TESTORDER";
|
||||
$sampletype = $result['serum_type'];
|
||||
$chapter = $result['chap_eng'];
|
||||
$testresult = $result['RESULT'];
|
||||
$unit = $result['UNITS'];
|
||||
$unittext = $result['UNITTEXT'];
|
||||
if($unittext != '') { $testunit = $unit; }
|
||||
else { $testunit = $unittext; }
|
||||
$refrange = $result['REFRANGE'];
|
||||
$refftext = $result['REFFTEXT'];
|
||||
$resstatus = $result['RESSTATUS'];
|
||||
if($resstatus == 'F') { $testsum = 'APPROVE'; }
|
||||
elseif($resstatus == 'C') { $testsum = 'PENDING'; }
|
||||
else { $testsum = null; }
|
||||
if($refftext != '') { $testreff = $refftext; }
|
||||
else { $testreff = $refrange; }
|
||||
if($liscode == '') {$liscode = $testcode;}
|
||||
@ -86,59 +123,69 @@ where r.ACCESSNUMBER='$accessnumber' ORDER BY t.TESTORDER";
|
||||
"test_container"=> "$tubename",
|
||||
"chapter_type"=> "$chapter",
|
||||
"test_result"=> "$testresult",
|
||||
"test_unit"=> "$testunit",
|
||||
"test_reff" => "$testreff",
|
||||
"test_summary"=> "",
|
||||
"subtest_results" => [],
|
||||
"test_summary"=> "$testsum",
|
||||
//"subtest_results" => [],
|
||||
];
|
||||
if ( $depth == 0 || $depth == '' ) { // depth 0
|
||||
if(isset($d0)) { $d0++; } else { $d0 = 0; }
|
||||
$d1=0;
|
||||
$json['data']['test_results'][] = $data;
|
||||
$json['test_results'][] = $data;
|
||||
} else if ($depth == 1) { // depth 1
|
||||
if(isset($d1)) { $d1++; }
|
||||
$d2=0;
|
||||
$json['data']['test_results'][$d0]['subtest_results'][] = $data;
|
||||
$json['test_results'][$d0]['subtest_results'][] = $data;
|
||||
} else if ($depth == 2) { // depth 2
|
||||
if(isset($d2)) { $d2++; }
|
||||
$d3=0;
|
||||
$json['data']['test_results'][$d0]['subtest_results'][$d1]['subtest_results'][] = $data;
|
||||
$json['test_results'][$d0]['subtest_results'][$d1]['subtest_results'][] = $data;
|
||||
}
|
||||
}
|
||||
return $json;
|
||||
}
|
||||
|
||||
public function results_send($accessnumber) {
|
||||
$TM_url = "https://api-transmedic1.transmedic.co.id/api/webhook/lis";
|
||||
$TMBali_bearerToken = "4418|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6ImFwaS10cmFuc21lZGljMS50cmFuc21lZGljLmNvLmlkIiwiaWF0IjoxNzM4MzE0NjU5LCJleHAiOjE3Mzg0MDEwNTksInN1YiI6bnVsbCwianRpIjoiMDBhNmUzN2ItNTA1Zi00ZDA0LWE1MjktMjU0NjE4ZGQ1ODE1IiwiZGF0YSI6eyJ1c2VybmFtZSI6InBibWNfYmFsaSIsInBhc3N3b3JkIjoiSjhlMjlYakxtRENGdVFuayJ9fQ.Zu5Ph4nbuJb9ySH4nv_7qABAzKLJxVspMM7PuzVda0k";
|
||||
$TMSby_bearerToken = "4417|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6ImFwaS10cmFuc21lZGljMS50cmFuc21lZGljLmNvLmlkIiwiaWF0IjoxNzM4MzE0NTYwLCJleHAiOjE3Mzg0MDA5NjAsInN1YiI6bnVsbCwianRpIjoiNWI5NDM4OGItOThlOC00ZTZkLTg3YzMtMGVjNTgzNDUzYWM3IiwiZGF0YSI6eyJ1c2VybmFtZSI6InBibWNfc3VyYWJheWEiLCJwYXNzd29yZCI6InBnY1dmZHdYM3FFdDl6YUMifX0.eXX5EDqyusZ3xNey20L5A6dKGgKmf73Bk7-UBLJu45o";
|
||||
|
||||
$response = [
|
||||
"headers" => [
|
||||
"Content-Type" => "application/json",
|
||||
"Authorization" => "Bearer $token",
|
||||
"AppCode" => "2"
|
||||
],
|
||||
"data" => $json
|
||||
];
|
||||
|
||||
return $this->respond($response,200);
|
||||
$client = \Config\Services::curlrequest();
|
||||
|
||||
$json = $this->create_json($accessnumber);
|
||||
$location = $json['branch'];
|
||||
if($location == 'PBMC Surabaya') { $token = $TMSby_bearerToken; }
|
||||
else { $token = $TMBali_bearerToken; }
|
||||
//return $this->respond($json,200);
|
||||
|
||||
//print_r(json_encode($json));
|
||||
|
||||
try {
|
||||
$response = $client->request('POST', $url, $response ) ;
|
||||
$response = $client->request('POST', $TM_url, [
|
||||
"headers" => [
|
||||
"Content-Type" => "application/json",
|
||||
"Authorization" => "Bearer $token",
|
||||
"AppCode" => "2"
|
||||
],
|
||||
"body" => json_encode($json),
|
||||
"verify" => false
|
||||
]);
|
||||
|
||||
if ($response->getStatusCode() == 200) {
|
||||
$result = json_decode($response->getBody());
|
||||
echo "<pre>";
|
||||
print_r($result);
|
||||
echo "</pre>";
|
||||
print_r($response);
|
||||
} else {
|
||||
// Handle errors
|
||||
$error = [
|
||||
'status' => $response->getStatusCode(),
|
||||
'message' => $response->getReason(),
|
||||
'response' => $response->getBody()
|
||||
];
|
||||
echo "<pre>";
|
||||
print_r($error);
|
||||
echo "</pre>";
|
||||
log_message('error', 'API request failed: ' . $response->getStatusCode() . ' - ' . $response->getReason() . ' - Response: ' . $response->getBody());
|
||||
print_r($response);
|
||||
}
|
||||
|
||||
|
||||
} catch (\Exception $e) {
|
||||
echo "Error: " . $e->getMessage();
|
||||
log_message('error', 'API request exception: ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function results_preview($accessnumber) {
|
||||
$json = $this->create_json($accessnumber);
|
||||
return $this->respond($json);
|
||||
}
|
||||
|
||||
}
|
||||
1
public/tokens/index.php
Normal file
1
public/tokens/index.php
Normal file
@ -0,0 +1 @@
|
||||
<?php
|
||||
0
public/tokens/pbmc_bali.txt
Normal file
0
public/tokens/pbmc_bali.txt
Normal file
0
public/tokens/pbmc_sby.txt
Normal file
0
public/tokens/pbmc_sby.txt
Normal file
Loading…
x
Reference in New Issue
Block a user