300 lines
9.6 KiB
PHP
300 lines
9.6 KiB
PHP
<?php
|
|
class Bundle extends MY_Controller
|
|
{
|
|
var $db;
|
|
var $load;
|
|
var $satusehat;
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->load->library('Satusehat');
|
|
}
|
|
|
|
function resetData(){
|
|
$prm = $this->sys_input;
|
|
$labNumber = $prm['labNumber'];
|
|
|
|
$sql = "SELECT *
|
|
FROM t_orderheader
|
|
WHERE
|
|
T_OrderHeaderLabNumber = ?
|
|
";
|
|
$qry = $this->db->query($sql, [$labNumber]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$orderheaderID = $qry->row()->T_OrderHeaderID;
|
|
|
|
$sql = "UPDATE one_health.encounter SET EncounterIsActive = 'N'
|
|
WHERE
|
|
EncounterT_orderHeaderID = ? AND EncounterIsActive = 'Y'
|
|
";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$sql = "UPDATE one_health.service_request SET ServiceRequestIsActive = 'N'
|
|
WHERE
|
|
ServiceRequestT_OrderHeaderID = ? AND ServiceRequestIsActive = 'Y'
|
|
";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$sql = "UPDATE one_health.specimen SET SpecimenIsActive = 'N'
|
|
WHERE
|
|
SpecimentT_OrderHeaderID = ? AND SpecimenIsActive = 'Y'
|
|
";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$sql = "UPDATE one_health.observation SET observationIsActive = 'N'
|
|
WHERE
|
|
observationT_OrderHeaderID = ? AND observationIsActive = 'Y'
|
|
";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
echo 'Success';
|
|
|
|
}
|
|
|
|
function createbundle()
|
|
{
|
|
try {
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$userid = $this->sys_user["M_UserID"];
|
|
$prm = $this->sys_input;
|
|
$orderheaderID = $prm['orderheaderID'];
|
|
|
|
$result["resourceType"] = "Bundle";
|
|
$result["type"] = "transaction";
|
|
$entry = [];
|
|
$sql = "SELECT *
|
|
FROM one_health.encounter
|
|
WHERE
|
|
EncounterT_orderHeaderID = ? AND EncounterIsActive = 'Y'
|
|
LIMIT 1";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$rst_encounter = $qry->row_array();
|
|
$entry[] = json_decode($rst_encounter['EncounterJSON']);
|
|
|
|
$service_requests = [];
|
|
$sql = "SELECT *
|
|
FROM one_health.service_request
|
|
WHERE
|
|
ServiceRequestT_OrderHeaderID = ? AND ServiceRequestIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$rst_service_request = $qry->result_array();
|
|
if($rst_service_request){
|
|
foreach ($rst_service_request as $key => $value) {
|
|
$entry[] = json_decode($value['ServiceRequestJSON']);
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM one_health.specimen
|
|
WHERE
|
|
SpecimentT_OrderHeaderID = ? AND SpecimenIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$rst_specimen = $qry->result_array();
|
|
if($rst_specimen){
|
|
foreach ($rst_specimen as $key => $value) {
|
|
$entry[] = json_decode($value['SpecimenJSON']);
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM one_health.observation
|
|
WHERE
|
|
observationT_OrderHeaderID = ? AND observationIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$rst_observation = $qry->result_array();
|
|
if($rst_observation){
|
|
foreach ($rst_observation as $key => $value) {
|
|
$entry[] = json_decode($value['observationJSON']);
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT *
|
|
FROM one_health.diagnostic_report
|
|
WHERE
|
|
DiagnosticReportT_orderHeaderID = {$orderheaderID} AND DiagnosticReportIsActive = 'Y'";
|
|
$qry = $this->db->query($sql);
|
|
//echo $sql;
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$rst_diagnosticreport = $qry->row_array();
|
|
//print_r($rst_diagnosticreport);
|
|
$entry[] = json_decode($rst_diagnosticreport['DiagnosticReportJSON']);
|
|
//print_r(json_decode($rst_diagnosticreport['DiagnosticReportJSON']));
|
|
|
|
$result["entry"] = $entry;
|
|
|
|
$sql = "SELECT COUNT(*) as xcount
|
|
FROM one_health.bundle
|
|
WHERE
|
|
BundleT_orderHeaderID = ? AND BundleIsActive = 'Y'
|
|
";
|
|
$qry = $this->db->query($sql, [$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$rst_count = $qry->row_array();
|
|
if($rst_count['xcount'] > 0){
|
|
$sql = "UPDATE one_health.bundle SET
|
|
BundleResponseJSON = ?
|
|
WHERE
|
|
BundleT_orderHeaderID = ? AND
|
|
BundleIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, [json_encode($result),$orderheaderID]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
}else{
|
|
$sql = "INSERT INTO one_health.bundle (
|
|
BundleJSON,
|
|
BundleT_orderHeaderID,
|
|
BundleCreated,
|
|
BundleUserID
|
|
)
|
|
VALUES(
|
|
?,?,NOW(),?
|
|
)";
|
|
$qry = $this->db->query($sql, [json_encode($result),$orderheaderID,$userid]);
|
|
|
|
if (!$qry) {
|
|
$last_qry = $this->db->last_query();
|
|
$error = array(
|
|
"message" => $this->db->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
echo json_encode($result);
|
|
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
}
|