Initial import
This commit is contained in:
562
application/controllers/tools/Ucopy_v2.php
Normal file
562
application/controllers/tools/Ucopy_v2.php
Normal file
@@ -0,0 +1,562 @@
|
||||
<?php
|
||||
|
||||
class Ucopy_v2 extends MY_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function get_data($sql)
|
||||
{
|
||||
$qry = $this->db->query($sql);
|
||||
if (!$qry) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" =>
|
||||
"Order ERR:" .
|
||||
$this->db->error()["message"] .
|
||||
"|" .
|
||||
$this->db->last_query(),
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$result = $qry->result_array();
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function db()
|
||||
{
|
||||
if (true) {
|
||||
ini_set("display_errors", 1);
|
||||
ini_set("display_startup_errors", 1);
|
||||
error_reporting(E_ALL);
|
||||
}
|
||||
//M_BranchCode
|
||||
$sql =
|
||||
"select * from m_branch where M_BranchIsActive='Y' and M_BranchIsDefault='Y'";
|
||||
$qry = $this->db->query($sql);
|
||||
if (!$qry) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" =>
|
||||
"M Branch Code ERR:" . $this->db->error()["message"],
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$rows = $qry->result_array();
|
||||
if (count($rows) == 0) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" => "M Branch Code ",
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$branch = $rows[0];
|
||||
//mcu code
|
||||
$sql = "select * from mcu_offline_prepare";
|
||||
$qry = $this->db->query($sql);
|
||||
if (!$qry) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" => "MCU Code ERR:" . $this->db->error()["message"],
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$rows = $qry->result_array();
|
||||
if (count($rows) == 0) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" => "MCU Code No Record ",
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$McuCode = $rows[0]["McuOfflinePrepareCode"];
|
||||
$mcuOfflinePrepares = $rows[0];
|
||||
|
||||
//mcu screening
|
||||
$sql = "select * from mcu_screening where Mcu_ScreeningIsActive='Y'";
|
||||
$qry = $this->db->query($sql);
|
||||
if (!$qry) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" =>
|
||||
"MCU Screening ERR:" . $this->db->error()["message"],
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$rows = $qry->result_array();
|
||||
if (count($rows) == 0) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" => "MCU Screening No Record ",
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$mcuScreening = $rows;
|
||||
|
||||
//last master id
|
||||
$sql = "select * from last_master_id";
|
||||
$qry = $this->db->query($sql);
|
||||
if (!$qry) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" => "Last Master ERR:" . $this->db->error()["message"],
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$rows = $qry->result_array();
|
||||
if (count($rows) == 0) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" => "Last Master No Record ",
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$TheLastMaster = $rows[0];
|
||||
|
||||
//ambil order_header
|
||||
$sql = "select distinct t_orderheader.*
|
||||
from t_orderheader
|
||||
join mcu_screening
|
||||
on T_OrderHeaderIsActive='Y'
|
||||
and Mcu_ScreeningIsActive = 'Y'
|
||||
and T_OrderHeaderID = Mcu_ScreeningT_OrderHeaderID
|
||||
";
|
||||
$orders = $this->get_data($sql);
|
||||
|
||||
$x_ids = "-1";
|
||||
$x_patient_ids = "-1";
|
||||
foreach ($orders as $r) {
|
||||
$x_ids .= "," . $r["T_OrderHeaderID"];
|
||||
$x_patient_ids .= "," . $r["T_OrderHeaderM_PatientID"];
|
||||
}
|
||||
|
||||
$sql = "select * from t_orderheaderaddon
|
||||
where T_OrderHeaderAddOnT_OrderHeaderID in ($x_ids)";
|
||||
$header_addon = $this->get_data($sql);
|
||||
|
||||
//ambil order_detail
|
||||
$sql = "select * from t_orderdetail
|
||||
where T_OrderDetailIsActive = 'Y'
|
||||
and T_OrderDetailT_OrderHeaderID in ( $x_ids ) ";
|
||||
$details = $this->get_data($sql);
|
||||
//order detail addon
|
||||
|
||||
$sql = "select t_orderdetailaddon.*
|
||||
from t_orderdetailaddon
|
||||
join t_orderdetail on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID
|
||||
and T_OrderDetailT_OrderHeaderID in ($x_ids)";
|
||||
$detail_addon = $this->get_data($sql);
|
||||
foreach ($details as $idx => $d) {
|
||||
$orderDetailID = $d["T_OrderDetailID"];
|
||||
foreach ($detail_addon as $addon) {
|
||||
if (
|
||||
$orderDetailID ==
|
||||
$addon["T_OrderDetailAddOnT_OrderDetailID"]
|
||||
) {
|
||||
if (!isset($details["idx"]["addon"])) {
|
||||
$details[$idx]["addon"] = [];
|
||||
}
|
||||
$details[$idx]["addon"][] = $addon;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//last_status_payment
|
||||
$sql = "select * from last_statuspayment where Last_StatusPaymentT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$last_status_payment = $this->get_data($sql);
|
||||
|
||||
//fo status
|
||||
$sql = "select * from fo_status where Fo_StatusT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$fo_status = $this->get_data($sql);
|
||||
|
||||
//t_orderdelivery
|
||||
$sql = "select * from t_orderdelivery where T_OrderDeliveryT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$order_delivery = $this->get_data($sql);
|
||||
$x_delivery_ids = "-1";
|
||||
foreach ($order_delivery as $d) {
|
||||
$x_delivery_ids .= ", " . $d["T_OrderDeliveryID"];
|
||||
}
|
||||
$sql = "select * from t_orderdeliverynote where T_OrderDeliveryNoteT_OrderDeliveryID
|
||||
in ( $x_delivery_ids )";
|
||||
$order_delivery_note = $this->get_data($sql);
|
||||
|
||||
//t_orderreq
|
||||
$sql = "select * from t_orderreq where T_OrderReqT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$order_req = $this->get_data($sql);
|
||||
|
||||
//t_orderpromise
|
||||
$sql = "select * from t_orderpromise where T_OrderPromiseT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$order_promise = $this->get_data($sql);
|
||||
|
||||
//order_log
|
||||
$sql = "select * from order_log where OrderLogT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$order_log = $this->get_data($sql);
|
||||
|
||||
//order_attr
|
||||
$sql = "select * from order_attr where OrderAttrT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$order_attr = $this->get_data($sql);
|
||||
|
||||
//order_px
|
||||
$sql = "select * from order_px where OrderPxT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$order_px = $this->get_data($sql);
|
||||
|
||||
//last_status
|
||||
$sql = "select * from last_status where Last_StatusT_OrderHeaderID
|
||||
in ( $x_ids )";
|
||||
$last_status = $this->get_data($sql);
|
||||
|
||||
foreach ($orders as $idx => $o) {
|
||||
$headerID = $o["T_OrderHeaderID"];
|
||||
$orders[$idx]["detail"] = $this->get_children(
|
||||
$headerID,
|
||||
"T_OrderDetailT_OrderHeaderID",
|
||||
$details
|
||||
);
|
||||
$orders[$idx]["addon"] = $this->get_children(
|
||||
$headerID,
|
||||
"T_OrderHeaderAddOnT_OrderHeaderID",
|
||||
$header_addon
|
||||
);
|
||||
$orders[$idx]["last_status_payment"] = $this->get_children(
|
||||
$headerID,
|
||||
"Last_StatusPaymentT_OrderHeaderID",
|
||||
$last_status_payment
|
||||
);
|
||||
$orders[$idx]["fo_status"] = $this->get_children(
|
||||
$headerID,
|
||||
"Fo_StatusT_OrderHeaderID",
|
||||
$fo_status
|
||||
);
|
||||
$orders[$idx]["t_orderdelivery"] = $this->get_children(
|
||||
$headerID,
|
||||
"T_OrderDeliveryT_OrderHeaderID",
|
||||
$order_delivery
|
||||
);
|
||||
$delivery_notes = [];
|
||||
foreach ($orders[$idx]["t_orderdelivery"] as $d) {
|
||||
$x_notes = $this->get_children(
|
||||
$d["T_OrderDeliveryID"],
|
||||
"T_OrderDeliveryNoteT_OrderDeliveryID",
|
||||
$order_delivery_note
|
||||
);
|
||||
$delivery_notes = array_merge($delivery_notes, $x_notes);
|
||||
}
|
||||
$orders[$idx]["t_orderdeliverynote"] = $delivery_notes;
|
||||
|
||||
$orders[$idx]["t_orderreq"] = $this->get_children(
|
||||
$headerID,
|
||||
"T_OrderReqT_OrderHeaderID",
|
||||
$order_req
|
||||
);
|
||||
$orders[$idx]["t_orderpromise"] = $this->get_children(
|
||||
$headerID,
|
||||
"T_OrderPromiseT_OrderHeaderID",
|
||||
$order_promise
|
||||
);
|
||||
$orders[$idx]["order_log"] = $this->get_children(
|
||||
$headerID,
|
||||
"OrderLogT_OrderHeaderID",
|
||||
$order_log
|
||||
);
|
||||
$orders[$idx]["order_attr"] = $this->get_children(
|
||||
$headerID,
|
||||
"orderAttrT_OrderHeaderID",
|
||||
$order_attr
|
||||
);
|
||||
$orders[$idx]["order_px"] = $this->get_children(
|
||||
$headerID,
|
||||
"OrderPxT_OrderHeaderID",
|
||||
$order_px
|
||||
);
|
||||
|
||||
$orders[$idx]["last_status"] = $this->get_children(
|
||||
$headerID,
|
||||
"Last_StatusT_OrderHeaderID",
|
||||
$last_status
|
||||
);
|
||||
}
|
||||
|
||||
//ambil patient
|
||||
$sql = "select * from m_patient where M_PatientID in ($x_patient_ids)";
|
||||
$qry = $this->db->query($sql);
|
||||
if (!$qry) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" => "Patient ERR:" . $this->db->error()["message"],
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$patients = $qry->result_array();
|
||||
$sql = "select * from m_patientaddress where M_PatientAddressM_PatientID in ($x_patient_ids)";
|
||||
$qry = $this->db->query($sql);
|
||||
if (!$qry) {
|
||||
echo json_encode([
|
||||
"status" => "ERR",
|
||||
"message" =>
|
||||
"Patient Detail ERR:" . $this->db->error()["message"],
|
||||
]);
|
||||
exit();
|
||||
}
|
||||
$address = $qry->result_array();
|
||||
foreach ($patients as $idx => $p) {
|
||||
$patientID = $p["M_PatientID"];
|
||||
foreach ($address as $addr) {
|
||||
if ($addr["M_PatientAddressM_PatientID"] == $patientID) {
|
||||
if (!isset($patients[$idx]["address"])) {
|
||||
$patients[$idx]["address"] = [];
|
||||
}
|
||||
$patients[$idx]["address"][] = $addr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//payment
|
||||
|
||||
$log_tables = ["log_patient", "log_fostatus", "log_fo"];
|
||||
|
||||
$log_data = $this->get_log($log_tables);
|
||||
|
||||
$result = [
|
||||
"branch" => $branch,
|
||||
"mcuCode" => $McuCode,
|
||||
"mcu_offline_prepare" => $mcuOfflinePrepares,
|
||||
"mcu_screening" => $mcuScreening,
|
||||
"last_master" => $TheLastMaster,
|
||||
"order" => $orders,
|
||||
"patient" => $patients,
|
||||
"logs" => $log_data,
|
||||
"payment" => $this->get_payment(),
|
||||
"fo_verif" => $this->get_fo_verif(),
|
||||
"spec_col" => $this->get_spec_col(),
|
||||
"spec_ver" => $this->get_spec_ver(),
|
||||
"sample_handling" => $this->get_sample_handling(),
|
||||
"rad_pasien_handling" => $this->get_rad_pasien_handling(),
|
||||
"rad_image_verif" => $this->get_rad_image_verif(),
|
||||
"rad_image_handling" => $this->get_rad_image_handling(),
|
||||
"rad_dok_hasil" => $this->get_rad_dok_hasil(),
|
||||
"rad_verif_hasil" => $this->get_rad_verif_hasil(),
|
||||
// elektromedis idem radiologi
|
||||
"worklist" => $this->get_worklist(),
|
||||
"result" => $this->get_result(),
|
||||
];
|
||||
|
||||
$content = json_encode($result);
|
||||
//$z_content = gzcompress($content,9);
|
||||
$z_content = gzencode($content, 9);
|
||||
$fname = $McuCode . "_" . date("Y-m-d-H") . ".json.gz";
|
||||
|
||||
header("Content-Description: File Transfer");
|
||||
header("Content-Type: application/octet-stream");
|
||||
header('Content-Disposition: attachment; filename="' . $fname . '"');
|
||||
header("Expires: 0");
|
||||
header("Cache-Control: must-revalidate");
|
||||
header("Pragma: public");
|
||||
header("Content-Length: " . strlen($z_content));
|
||||
echo $z_content;
|
||||
}
|
||||
|
||||
public function get_result()
|
||||
{
|
||||
$tables = ["pre_analytic", "t_worklist_confirm"];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = ["log_process"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_worklist()
|
||||
{
|
||||
$tables = ["pre_analytic", "t_worklist_confirm"];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = ["log_worklist"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_rad_verif_hasil()
|
||||
{
|
||||
$tables = ["result_verifications_value", "result_verification_by_step"];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = ["log_result_verifications_value"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_rad_dok_hasil()
|
||||
{
|
||||
$tables = [""];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = ["log_resultentry_so"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_rad_image_handling()
|
||||
{
|
||||
$tables = ["snap_doctor_fee"];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = [];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_rad_image_verif()
|
||||
{
|
||||
$tables = ["t_samplingso_film"];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = [];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
public function get_rad_pasien_handling()
|
||||
{
|
||||
$tables = [
|
||||
"t_samplingso",
|
||||
"sample_so_by_step",
|
||||
"so_resultentry",
|
||||
"so_resultentrydetail",
|
||||
"t_samplingso_requirement",
|
||||
"t_samplingso_form",
|
||||
"so_resultentrydetail_other",
|
||||
"so_resultentry_fisik_umum"
|
||||
];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = ["log_sampling_queue_so", "log_sampling_so_form"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
public function get_sample_handling()
|
||||
{
|
||||
$tables = [];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = [];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_spec_ver()
|
||||
{
|
||||
$tables = [];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
|
||||
$logs = ["log_sample_req"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_spec_col()
|
||||
{
|
||||
$tables = [
|
||||
"t_sampling_queue_last_status",
|
||||
"t_sampling_queue_by_action",
|
||||
"helper_bahan",
|
||||
"t_ordersamplereq",
|
||||
];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
$logs = ["log_sampling_queue"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function get_fo_verif()
|
||||
{
|
||||
$tables = [
|
||||
"fo_verificationsvalue",
|
||||
"t_ordermessage",
|
||||
"cr_order",
|
||||
"t_barcodelab",
|
||||
"t_ordersample",
|
||||
"last_statussample",
|
||||
"sample_by_step",
|
||||
"helper_sst",
|
||||
];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
$logs = ["log_sample", "log_sample_order"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
public function get_payment()
|
||||
{
|
||||
// f_payment
|
||||
$tables = [
|
||||
"f_payment",
|
||||
"f_payment_test",
|
||||
"f_payment_orderheader",
|
||||
"f_payment_detail",
|
||||
];
|
||||
$result = [];
|
||||
$result["data"] = $this->get_table($tables);
|
||||
$logs = ["log_payment"];
|
||||
$result["log"] = $this->get_log($logs);
|
||||
return $result;
|
||||
}
|
||||
public function get_log($logs)
|
||||
{
|
||||
$result = [];
|
||||
foreach ($logs as $log) {
|
||||
$sql = "select * from one_log.{$log}";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$result[$log] = $qry->result_array();
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
public function get_table($tables)
|
||||
{
|
||||
$result = [];
|
||||
foreach ($tables as $tb) {
|
||||
$sql = "select * from {$tb}";
|
||||
$qry = $this->db->query($sql);
|
||||
if ($qry) {
|
||||
$result[$tb] = $qry->result_array();
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
public function get_children($parent_id, $child_field, $child)
|
||||
{
|
||||
$result = [];
|
||||
foreach ($child as $d) {
|
||||
if (isset($d[$child_field])) {
|
||||
if ($parent_id == $d[$child_field]) {
|
||||
$result[] = $d;
|
||||
}
|
||||
} else {
|
||||
echo "Debug Err : Exit $child_field ";
|
||||
print_r($d);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user