251 lines
7.9 KiB
PHP
251 lines
7.9 KiB
PHP
<?php
|
|
/*
|
|
create table danone(
|
|
danoneID int not null auto_increment primary key,
|
|
T_OrderHeaderID int,
|
|
M_BranchName varchar(100),
|
|
T_OrderHeaderLabNumber varchar(50),
|
|
T_OrderHeaderLabNumberExt varchar(50),
|
|
T_OrderHeaderDate varchar(50),
|
|
NAMA varchar(50),
|
|
shareID varchar(50),
|
|
M_PatientNIK varchar(50),
|
|
M_PatientIDNumber varchar(50),
|
|
JENISKELAMIN varchar(50),
|
|
M_PatientDOB varchar(50),
|
|
T_OrderHeaderM_PatientAge varchar(100),
|
|
M_PatientJabatan varchar(200),
|
|
M_PatientKedudukan varchar(200),
|
|
M_PatientPJ varchar(200),
|
|
M_PatientJob varchar(200),
|
|
M_PatientLocation varchar(300),
|
|
M_CompanyName varchar(300),
|
|
M_MouName varchar(300),
|
|
M_CompanyID int,
|
|
M_MouID int,
|
|
|
|
key(T_OrderHeaderID)
|
|
);
|
|
create table danone_detail(
|
|
danoneDetailID int not null auto_increment primary key,
|
|
danoneDetailDanoneID int,
|
|
T_OrderHeaderID int,
|
|
T_TestSasCode varchar(50),
|
|
T_TestName varchar(300),
|
|
Result text,
|
|
key(T_OrderHeaderID),
|
|
key(danoneDetailDanoneID)
|
|
);
|
|
create table danone_json(
|
|
danoneJsonID int not null auto_increment primary key,
|
|
danoneJsonDanoneID int,
|
|
T_OrderHeaderID int,
|
|
title varchar(300),
|
|
subtitle varchar(300),
|
|
label_flag_normal varchar(10),
|
|
flag_normal varchar(1),
|
|
show_all varchar(1),
|
|
type_form varchar(10),
|
|
T_TestName varchar(300),
|
|
So_ResultEntryFisikUmumType varchar(100),
|
|
name varchar(100),
|
|
table_name varchar(100),
|
|
segment_name varchar(100),
|
|
id_code varchar(100),
|
|
lang_id int,
|
|
label varchar(100),
|
|
is_normal varchar(1),
|
|
chx bool,
|
|
value varchar(300),
|
|
value_x varchar(300),
|
|
kesimpulan varchar(300),
|
|
is_inspected varchar(1),
|
|
key(danoneJsonDanoneID),
|
|
key(T_OrderHeaderID)
|
|
);
|
|
*/
|
|
class Danone extends MY_Controller
|
|
{
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
function index()
|
|
{
|
|
}
|
|
function mou($mouID,$start,$end) {
|
|
$start = "$start 00:00:01";
|
|
$end = "$end 23:59:59";
|
|
|
|
$sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderM_MouID=? and T_OrderHeaderDate >= ?
|
|
and T_OrderHeaderDate <= ? and T_OrderHeaderIsActive = 'Y'";
|
|
$qry = $this->db->query($sql,[$mouID,$start,$end]);
|
|
if (!$qry) {
|
|
$this->log("Error Processing Mou ID : $mouID, start : $start , end : $end \n");
|
|
return;
|
|
}
|
|
$h_rows = $qry->result_array();
|
|
if (count($h_rows) == 0) {
|
|
echo "Tidak ada Order Mou $mouID dari tanggal $start s/d $end";
|
|
exit;
|
|
}
|
|
foreach($h_rows as $h) {
|
|
$orderHeaderID = $h["T_OrderHeaderID"];
|
|
$this->process($orderHeaderID);
|
|
}
|
|
}
|
|
function json($orderHeaderID, $danoneID)
|
|
{
|
|
$url = "http://localhost/one-api/v1/adhi/fisik/Fisik03/json/$orderHeaderID";
|
|
$data = file_get_contents($url);
|
|
$dataJson = json_decode($data, true);
|
|
$this->log("\tProcessing Json\n");
|
|
foreach ($dataJson as $r) {
|
|
$arr = [
|
|
"T_OrderHeaderID" => $orderHeaderID,
|
|
"danoneJsonDanoneID" => $danoneID,
|
|
"title" => $r["title"],
|
|
"subtitle" => $r["subtitle"],
|
|
"label_flag_normal" => $r["label_flag_normal"],
|
|
"flag_normal" => $r["flag_normal"],
|
|
"flag_normal" => $r["flag_normal"],
|
|
"show_all" => $r["show_all"],
|
|
"type_form" => $r["type_form"],
|
|
"T_TestName" => $r["T_TestName"],
|
|
"So_ResultEntryFisikUmumType" => $r["So_ResultEntryFisikUmumType"],
|
|
"name" => $r["name"],
|
|
"table_name" => $r["table_name"],
|
|
"segment_name" => $r["segment_name"],
|
|
"id_code" => $r["id_code"],
|
|
"lang_id" => $r["lang_id"],
|
|
"label" => $r["label"],
|
|
"is_normal" => $r["is_normal"],
|
|
"chx" => $r["chx"],
|
|
"value" => $r["value"],
|
|
"value_x" => $r["value_x"],
|
|
"kesimpulan" => $r["kesimpulan"],
|
|
"is_inspected" => $r["is_inspected"],
|
|
|
|
];
|
|
$qry = $this->db->insert("one_etl.danone_json", $arr);
|
|
if (!$qry) {
|
|
echo "Error insert one_etl.danone_json, " . $this->db->error()["message"];
|
|
$this->db->trans_rollback();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
function log($msg) {
|
|
echo Date("Y-m-d H:i:s") . " " . $msg . "\n";
|
|
}
|
|
function process($orderHeaderID)
|
|
{
|
|
//get from sp
|
|
$this->log("Processing T_OrderHeaderID : " . $orderHeaderID);
|
|
$sql = "call sp_rpt_r_mcu_resume(?,'')";
|
|
$qry = $this->db->query($sql, [$orderHeaderID]);
|
|
if (!$qry) {
|
|
$this->log("\tError Processing T_OrderHeaderID : $orderHeaderID, " . $this->db->error()["message"]);
|
|
return;
|
|
}
|
|
|
|
$this->clean_mysqli_connection($this->db->conn_id);
|
|
$rows = $qry->result_array();
|
|
$isFirst = true;
|
|
$this->db->trans_begin();
|
|
//cleaning
|
|
$this->log("Clearing existing snapshot for T_OrderHeaderID $orderHeaderID");
|
|
$sql = "delete from one_etl.danone where T_OrderHeaderID = ?";
|
|
$qry = $this->db->query($sql,[$orderHeaderID]);
|
|
if(!$qry) {
|
|
$this->db->trans_rollback();
|
|
$this->log("Error clean one_etl.danone " . $this->db->error()["message"]);
|
|
return;
|
|
}
|
|
$sql = "delete from one_etl.danone_detail where T_OrderHeaderID = ?";
|
|
$qry = $this->db->query($sql,[$orderHeaderID]);
|
|
if(!$qry) {
|
|
$this->db->trans_rollback();
|
|
$this->log("Error clean one_etl.danone_detail" . $this->db->error()["message"]);
|
|
return;
|
|
}
|
|
$sql = "delete from one_etl.danone_json where T_OrderHeaderID = ?";
|
|
|
|
$qry = $this->db->query($sql,[$orderHeaderID]);
|
|
if(!$qry) {
|
|
$this->db->trans_rollback();
|
|
$this->log("Error clean one_etl.danone_json" . $this->db->error()["message"]);
|
|
return;
|
|
}
|
|
$danoneID = 0;
|
|
$this->log("\tProcessing : one_etl.danone_detail ");
|
|
foreach ($rows as $r) {
|
|
if ($isFirst) {
|
|
$arr = [
|
|
"T_OrderHeaderID" => $r["T_OrderHeaderID"],
|
|
"M_BranchName" => $r["M_BranchName"],
|
|
"T_OrderHeaderLabNumber" => $r["T_OrderHeaderLabNumber"],
|
|
"T_OrderHeaderLabNumberExt" => $r["T_OrderHeaderLabNumberExt"],
|
|
"T_OrderHeaderDate" => $r["T_OrderHeaderDate"],
|
|
"NAMA" => $r["NAMA"],
|
|
"shareID" => $r["shareID"],
|
|
"M_PatientNIK" => $r["M_PatientNIK"],
|
|
"M_PatientIDNumber" => $r["M_PatientIDNumber"],
|
|
"JENISKELAMIN" => $r["JENISKELAMIN"],
|
|
"M_PatientDOB" => $r["M_PatientDOB"],
|
|
"T_OrderHeaderM_PatientAge" => $r["T_OrderHeaderM_PatientAge"],
|
|
"M_PatientJabatan" => $r["M_PatientJabatan"],
|
|
"M_PatientKedudukan" => $r["M_PatientKedudukan"],
|
|
"M_PatientPJ" => $r["M_PatientPJ"],
|
|
"M_PatientJob" => $r["M_PatientJob"],
|
|
"M_PatientLocation" => $r["M_PatientLocation"],
|
|
"M_CompanyName" => $r["M_CompanyName"],
|
|
"M_MouName" => $r["M_MouName"],
|
|
"M_CompanyID" => $r["M_CompanyID"],
|
|
"M_MouID" => $r["M_MouID"]
|
|
|
|
];
|
|
$qry = $this->db->insert("one_etl.danone", $arr);
|
|
if (!$qry) {
|
|
$this->log("Error insert one_etl.danone , " . $this->db->error()["message"]);
|
|
$this->db->trans_rollback();
|
|
return;
|
|
}
|
|
$danoneID = $this->db->insert_id();
|
|
$isFirst = false;
|
|
}
|
|
$arr = [
|
|
"danoneDetailDanoneID" => $danoneID,
|
|
"T_OrderHeaderID" => $r["T_OrderHeaderID"],
|
|
"T_TestSasCode" => $r["T_TestSasCode"],
|
|
"T_TestName" => $r["T_TestName"],
|
|
"Result" => $r["Mcu_ResumeDetailsResult"]
|
|
];
|
|
$qry = $this->db->insert("one_etl.danone_detail", $arr);
|
|
if (!$qry) {
|
|
$this->log("Error insert one_etl.danone_detail , " . $this->db->error()["message"]);
|
|
$this->db->trans_rollback();
|
|
return;
|
|
}
|
|
}
|
|
if ($danoneID > 0) {
|
|
$this->json($orderHeaderID, $danoneID);
|
|
}
|
|
$this->db->trans_commit();
|
|
//get from json
|
|
$this->log("Done Processing T_OrderHeaderID : " . $orderHeaderID);
|
|
$this->log("Wait 3 second");
|
|
sleep(3);
|
|
}
|
|
function demo()
|
|
{
|
|
$sql = "select count(distinct nik) total from stage_01";
|
|
$qry = $this->db->query($sql);
|
|
$total = 0;
|
|
if ($qry) {
|
|
$total = $qry->result_array()[0]["total"];
|
|
}
|
|
echo $total;
|
|
}
|
|
}
|