465 lines
19 KiB
PHP
465 lines
19 KiB
PHP
<?php
|
|
class Inject_riwayat extends MY_Controller
|
|
{
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
|
|
function proses($regno)
|
|
{
|
|
list($orderHeaderID, $orderDetailID) = $this->getOrderDetailID($regno);
|
|
$arr_map = $this->getArrayMap();
|
|
$soResultEntryID = $this->getSoResultEntryID($orderDetailID);
|
|
$sql_u = "update so_resultentryfisikumum set So_ResultEntryFisikUmumDetails = ?
|
|
where So_ResultEntryFisikUmumID = ?";
|
|
|
|
$sql = "SELECT DISTINCT REG_NO, Keluhan,
|
|
`Riwayat Penyakit Dahulu`, Ayah , Ibu ,
|
|
Alergi, `Kebiasaan Merokok`,
|
|
`Kebiasaan Alkohol`,
|
|
`Kebiasaan Olahraga`
|
|
FROM x_adm_rekap_riwayat WHERE REG_NO = ?";
|
|
$qry = $this->db->query($sql, [$regno]);
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get x_adm_rekap_riwayat | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
$rows = $qry->result_array();
|
|
|
|
foreach ($rows as $r) {
|
|
foreach ($r as $key => $value) {
|
|
if ($key == "REG_NO") continue;
|
|
|
|
$templateID = $arr_map[$key][1];
|
|
if ($templateID == "") continue;
|
|
list($soResultEntryFisikUmumID, $strJsonAwal) = $this->getSoResultEntryFisikUmumID($soResultEntryID, $templateID);
|
|
echo $soResultEntryFisikUmumID;
|
|
echo "\n";
|
|
echo "$key,$value\n\n";
|
|
$jsonAwal = json_decode($strJsonAwal, true);
|
|
switch ($key) {
|
|
case "Keluhan":
|
|
|
|
$idx_id_code = $this->find_label_index($jsonAwal['details'], $value);
|
|
if ($idx_id_code == -1) {
|
|
if(strlen($value) > 3){
|
|
$jsonAwal['details'][27]['chx'] = true;
|
|
$jsonAwal['details'][27]['value'] = $value;
|
|
}
|
|
}else{
|
|
$jsonAwal['details'][$idx_id_code]['chx'] = true;
|
|
}
|
|
// update json detail utk riwayat keluhan
|
|
break;
|
|
case "Riwayat Penyakit Dahulu":
|
|
$explode = explode("\n", $value);
|
|
$etc_values = [];
|
|
foreach ($explode as $xpld){
|
|
for ($i=0; $i < count($jsonAwal['details']); $i++) {
|
|
|
|
print_r("\n----");
|
|
print_r($xpld);
|
|
print_r("---\n");
|
|
$idx_name_code = $this->find_label_index($jsonAwal['details'][$i]['details'], $xpld);
|
|
if ($idx_id_code == -1) {
|
|
$etc_value = $xpld;
|
|
$idx_id_code = 0;
|
|
break;
|
|
}else {
|
|
|
|
}
|
|
}
|
|
$etc_values[] = $etc_value;
|
|
// switch($xpld){
|
|
// case "Operasi":
|
|
// $etc_value = [$xpld];
|
|
|
|
// }
|
|
|
|
}
|
|
print_r("\n----");
|
|
print_r("---\n");
|
|
exit;
|
|
// $idx_id_code = $this->find_label_index($jsonAwal['details'], $value);
|
|
// if ($idx_id_code == -1) {
|
|
// if(strlen($value) > 3){
|
|
// $jsonAwal['details'][27]['chx'] = true;
|
|
// $jsonAwal['details'][27]['value'] = $value;
|
|
// }
|
|
// }else{
|
|
// $jsonAwal['details'][$idx_id_code]['chx'] = true;
|
|
// }
|
|
// update json detail utk riwayat keluhan
|
|
break;
|
|
// case "fisik_keluhan_2":
|
|
// $idx_id_code = $this->find_id_code_index($jsonAwal['details'], "fisik_keluhan_2");
|
|
// if ($idx_id_code == -1) continue;
|
|
// $jsonAwal['details'][$idx_id_code]['value'] = $value;
|
|
// //update jsonAwal utk gizi_1
|
|
// break;
|
|
// case "fisik_keluhan_3":
|
|
// $idx_id_code = $this->find_id_code_index($jsonAwal['details'], "fisik_keluhan_3");
|
|
// if ($idx_id_code == -1) continue;
|
|
// $jsonAwal['details'][$idx_id_code]['value'] = $value;
|
|
// //update jsonAwal utk gizi_1
|
|
// break;
|
|
default:
|
|
echo "tidak ada case dengan code {$key} \n";
|
|
}
|
|
// $sql_u = "UPDATE so_resultentry_fisik_umum
|
|
// SET So_ResultEntryFisikUmumDetails = ?
|
|
// WHERE So_ResultEntryFisikUmumID = ?";
|
|
// $qry = $this->db->query($sql_u, [json_encode($jsonAwal), $soResultEntryFisikUmumID]);
|
|
// if (!$qry) {
|
|
// echo json_encode([
|
|
// "status" => "ERR",
|
|
// "message" => "Error update so_resultentry_fisik_umum | " . $this->db->error()["message"]
|
|
// ]);
|
|
// exit;
|
|
// }
|
|
// echo "ini qry : ";
|
|
// print_r($qry);
|
|
// exit;
|
|
}
|
|
}
|
|
}
|
|
function getOrderDetailID($reg_no)
|
|
{
|
|
if (isset($reg_no)) {
|
|
$sql = "SELECT T_OrderHeaderID
|
|
FROM t_orderheader
|
|
WHERE T_OrderHeaderOldLabNumber = ?";
|
|
$qry = $this->db->query($sql, $reg_no);
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get t_orderheader | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
|
|
$rows = $qry->result_array();
|
|
if (count($rows) != 0) {
|
|
$t_orderheaderid = $rows[0]['T_OrderHeaderID'];
|
|
$t_testid = 2562;
|
|
echo "T_OrderHeaderID: " . $t_orderheaderid . "\n";
|
|
echo "t_testid: " . $t_testid . "\n";
|
|
|
|
$sql = "SELECT T_OrderDetailID
|
|
FROM t_orderdetail
|
|
WHERE T_OrderDetailT_OrderHeaderID = ?
|
|
AND T_OrderDetailT_TestID = ?
|
|
AND T_OrderDetailIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, [$t_orderheaderid, $t_testid]);
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get t_orderdetail | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
$rows_detail = $qry->result_array();
|
|
if (count($rows_detail) != 0) {
|
|
$t_orderdetailid = $rows_detail[0]['T_OrderDetailID'];
|
|
}
|
|
echo "t_orderdetailid: " . $t_orderdetailid . "\n";
|
|
return [$t_orderheaderid, $t_orderdetailid];
|
|
} else {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Tidak ditemukan Registrasi dengan nomor registrasi : " . $reg_no
|
|
]);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
function getArrayMap()
|
|
{
|
|
$sql = "SELECT * FROM x_map_riwayat";
|
|
$qry = $this->db->query($sql);
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get x_map_riwayat | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
$arr_map = [];
|
|
$rows = $qry->result_array();
|
|
foreach ($rows as $r) {
|
|
$arr_map[$r["X_Map_RiwayatName"]] = [$r["X_Map_RiwayatCodeID"], $r["X_Map_RiwayatTemplateID"]];
|
|
}
|
|
return $arr_map;
|
|
}
|
|
|
|
public function getSoResultEntryID($t_orderdetailid_v)
|
|
{
|
|
$t_orderdetailid = $t_orderdetailid_v;
|
|
$nonlab_templateid = 27;
|
|
$nonlab_templatename = 'Fisik Umum';
|
|
|
|
$sql = "SELECT So_ResultEntryID
|
|
FROM so_resultentry
|
|
WHERE So_ResultEntryT_OrderDetailID = ?
|
|
AND So_ResultEntryNonlab_TemplateID = ?
|
|
AND So_ResultEntryNonlab_TemplateName = ?
|
|
AND So_ResultEntryIsActive= 'Y'";
|
|
$qry = $this->db->query($sql, [$t_orderdetailid, $nonlab_templateid, $nonlab_templatename]);
|
|
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get so_resultentry | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
$rows = $qry->result_array();
|
|
$so_resultentryid = 0;
|
|
if(count($rows) == 0) {
|
|
$insert_sql = "INSERT INTO so_resultentry (
|
|
So_ResultEntryT_OrderDetailID,
|
|
So_ResultEntryNonlab_TemplateID,
|
|
So_ResultEntryNonlab_TemplateName)
|
|
VALUES (?, ?, ?)";
|
|
$this->db->query($insert_sql, [$t_orderdetailid, $nonlab_templateid, $nonlab_templatename]);
|
|
echo "so_resultentry baru dibuat \n";
|
|
$so_resultentryid = $this->db->insert_id();
|
|
} else {
|
|
$so_resultentryid = $rows[0]['So_ResultEntryID'];
|
|
}
|
|
echo "So_ResultEntryID: " . $so_resultentryid . "\n";
|
|
return $so_resultentryid;
|
|
}
|
|
|
|
function getSoResultEntryFisikUmumID($soResultEntryID, $templateID)
|
|
{
|
|
$sql = "SELECT *
|
|
FROM so_resultentry_fisik_umum
|
|
WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ?
|
|
AND So_ResultEntryFisikUmumFisikTemplateID = ?
|
|
AND So_ResultEntryFisikUmumIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, array($soResultEntryID, $templateID));
|
|
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get so_resultentry | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
$rows = $qry->result_array();
|
|
$So_ResultEntryFisikUmumDetails = [];
|
|
$So_ResultEntryFisikUmumID = 0;
|
|
if(count($rows) == 0) {
|
|
echo ("JSON dengan ID :" . $soResultEntryID . " dan template id {$templateID} tidak ada. \n");
|
|
$search_sql = "SELECT *
|
|
FROM fisik_template
|
|
WHERE FisikTemplateID = ?
|
|
-- AND FisikTemplateIsActive = 'Y'
|
|
";
|
|
$qry_search = $this->db->query($search_sql, [$templateID]);
|
|
if (!$qry_search) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get so_resultentry | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
$search_rows = $qry_search->result_array();
|
|
if(count($search_rows) != 0) {
|
|
$FisikTemplateID = $search_rows[0]['FisikTemplateID'];
|
|
$FisikTemplateJSON = $search_rows[0]['FisikTemplateJSON'];
|
|
|
|
echo "FisikTemplateID :" . $FisikTemplateID . "\n";
|
|
|
|
$insert_sql = "INSERT INTO so_resultentry_fisik_umum
|
|
(So_ResultEntryFisikUmumSo_ResultEntryID,
|
|
So_ResultEntryFisikUmumFisikTemplateID,
|
|
So_ResultEntryFisikUmumDetails)
|
|
VALUES ( ?, ?, ? )
|
|
";
|
|
$this->db->query($insert_sql, array($soResultEntryID, $FisikTemplateID, $FisikTemplateJSON ));
|
|
echo "so_resultentry_fisik_umum baru dibuat \n";
|
|
|
|
$So_ResultEntryFisikUmumID = $this->db->insert_id();
|
|
$So_ResultEntryFisikUmumDetails = $FisikTemplateJSON;
|
|
}else{
|
|
echo "Gagal INSERT ke so_resultentry_fisik_umum karena fisik_template tidak ditemukan";
|
|
exit;
|
|
}
|
|
$So_ResultEntryFisikUmumID = $rows[0]['So_ResultEntryFisikUmumID'];
|
|
$So_ResultEntryFisikUmumDetails = $rows[0]['So_ResultEntryFisikUmumDetails'];
|
|
} else {
|
|
$So_ResultEntryFisikUmumID = $rows[0]['So_ResultEntryFisikUmumID'];
|
|
$So_ResultEntryFisikUmumDetails = $rows[0]['So_ResultEntryFisikUmumDetails'];
|
|
}
|
|
|
|
echo "So_ResultEntryFisikUmumID: " . $So_ResultEntryFisikUmumID . "\n";
|
|
// echo "so_resultentrydetails: " . $So_ResultEntryFisikUmumDetails . "\n\n";
|
|
return [$So_ResultEntryFisikUmumID, $So_ResultEntryFisikUmumDetails];
|
|
// echo "So_ResultEntryFisikUmumDetails: " . $so_resultentrydetails . "\n";
|
|
// return $so_resultentryid;
|
|
//cari di so_resultentryfisikumum
|
|
// jika ketemu returnkan So_ResultEntryFisikUmumDetails
|
|
// jika tidak ketemu cari dari fisik template , FisikTemplateJSON
|
|
// insertkan ke so_resultentryfisikumum
|
|
//retun nya [So_ResultEntryFisikUmumID, JSON]
|
|
}
|
|
|
|
function find_label_index($details, $inp_value)
|
|
{
|
|
$result = -1;
|
|
foreach ($details as $idx => $value) {
|
|
echo("\nmmmm\n");
|
|
echo "ini search labelnya " . $value["label"];
|
|
echo "ini search valuenya " . $inp_value;
|
|
echo("\nmmmm\n");
|
|
if ($value["label"] == $inp_value) {
|
|
echo $idx;
|
|
echo "sama";
|
|
return $idx;
|
|
}
|
|
}
|
|
echo $inp_value;
|
|
return $result;
|
|
}
|
|
function find_id_code_index($details, $id_code)
|
|
{
|
|
$result = -1;
|
|
foreach ($details as $idx => $value) {
|
|
|
|
if ($value["id_code"] == $id_code) {
|
|
return $idx;
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function coba(){
|
|
$sql = "SELECT DISTINCT REG_NO, Keluhan,
|
|
`Riwayat Penyakit Dahulu`, Ayah , Ibu ,
|
|
Alergi, `Kebiasaan Merokok`,
|
|
`Kebiasaan Alkohol`,
|
|
`Kebiasaan Olahraga`
|
|
FROM x_adm_rekap_riwayat WHERE REG_NO = '23ADM20004Z'";
|
|
$qry = $this->db->query($sql);
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Error get x_adm_rekap_riwayat | " . $this->db->error()["message"]
|
|
]);
|
|
exit;
|
|
}
|
|
$rows = $qry->result_array();
|
|
|
|
foreach ($rows as $r) {
|
|
foreach ($r as $key => $value) {
|
|
$var = explode("\n", $value);
|
|
echo "value: |$value|\n";
|
|
print_r ($var);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// function update($regno)
|
|
// {
|
|
// if (isset($reg_no)) {
|
|
// $sql = "SELECT T_OrderHeaderID
|
|
// FROM t_orderheader
|
|
// WHERE T_OrderHeaderOldLabNumber = ?";
|
|
// $qry = $this->db->query($sql, $reg_no);
|
|
// if (!$qry) {
|
|
// echo json_encode([
|
|
// "status" => "ERR",
|
|
// "message" => "Error get t_orderheader | " . $this->db->error()["message"]
|
|
// ]);
|
|
// exit;
|
|
// }
|
|
// $rows = $qry->result();
|
|
|
|
// if (count($rows) != 0) {
|
|
// $t_orderheaderid = $rows[0]->T_OrderHeaderID;
|
|
// $t_testid = 2562;
|
|
// echo "T_OrderHeaderID: " . $t_orderheaderid . "\n";
|
|
// echo "T_OrderHeaderID: " . $t_testid . "\n";
|
|
|
|
// $sql = "SELECT T_OrderDetailID
|
|
// FROM t_orderdetail
|
|
// WHERE T_OrderDetailT_OrderHeaderID = ?
|
|
// AND T_OrderDetailT_TestID = ?
|
|
// AND T_OrderDetailIsActive = 'Y'";
|
|
// $qry = $this->db->query($sql, array($t_orderheaderid, $t_testid));
|
|
// if (!$qry) {
|
|
// echo json_encode([
|
|
// "status" => "ERR",
|
|
// "message" => "Error get t_orderdetail | " . $this->db->error()["message"]
|
|
// ]);
|
|
// exit;
|
|
// }
|
|
// $rows_detail = $qry->result();
|
|
// if (count($rows_detail) != 0) {
|
|
// $t_orderdetailid = $rows_detail[0]->T_OrderDetailID;
|
|
// echo "T_OrderDetailID: " . $t_orderdetailid . "\n";
|
|
// }
|
|
// return [$t_orderheaderid, $t_orderdetailid];
|
|
// } else {
|
|
// echo json_encode([
|
|
// "status" => "ERR",
|
|
// "message" => "Tidak ditemukan Registrasi dengan nomor
|
|
// registrasi : " . $reg_no
|
|
// ]);
|
|
// exit;
|
|
// }
|
|
// }
|
|
|
|
// if (isset($regno)) {
|
|
// $sql = "SELECT DISTINCT T_OrderHeaderID, T_OrderHeaderMgm_McuID
|
|
// FROM t_orderheader
|
|
// WHERE T_OrderHeaderOldLabNumber = ?
|
|
// ";
|
|
// $qry = $this->db->query($sql, [$regno]);
|
|
// if (!$qry) {
|
|
// echo json_encode([
|
|
// "status" => "ERR",
|
|
// "message" => "Error get t_orderheader | " . $this->db->error()["message"]
|
|
// ]);
|
|
// exit;
|
|
// }
|
|
|
|
// $rows = $qry->result_array();
|
|
// if (count($rows) != 0) {
|
|
// $t_orderheaderid = $rows[0]['T_OrderHeaderID'];
|
|
// $mgm_mcu_id = $rows[0]['T_OrderHeaderMgm_McuID'];
|
|
|
|
// $sql = "SELECT FisikTemplateTitle, FisikTemplateJSON
|
|
// FROM mgm_mcutemplate
|
|
// JOIN fisik_template_mapping ON FisikTemplateMappingID = Mgm_McuTemplateFisikTemplateMappingID
|
|
// AND Mgm_McuTemplateMgm_McuID = $mgm_mcu_id
|
|
// AND Mgm_McuTemplateIsActive = 'Y'
|
|
// AND FisikTemplateMappingIsActive = 'Y'
|
|
// JOIN fisik_template_mapping_detail ON FisikTemplateMappingDetailFisikTemplateMappingID = FisikTemplateMappingID
|
|
// AND FisikTemplateMappingDetailIsActive = 'Y'
|
|
// JOIN fisik_template ON FisikTemplateID = FisikTemplateMappingDetailFisikTemplateID
|
|
// AND FisikTemplateType LIKE 'Riwayat'
|
|
// AND FisikTemplateIsActive = 'Y'
|
|
// ";
|
|
|
|
|
|
// } else {
|
|
// echo json_encode([
|
|
// "status" => "ERR",
|
|
// "message" => "Tidak Ada Id ticket"
|
|
// ]);
|
|
// exit;
|
|
// }
|
|
// }
|
|
// }
|
|
} |