3250 lines
144 KiB
PHP
3250 lines
144 KiB
PHP
<?php
|
|
defined("BASEPATH") or exit("No direct script access allowed");
|
|
class Genkelainan
|
|
{
|
|
function __construct()
|
|
{
|
|
$CI = & get_instance();
|
|
$this->db_smartone = $CI->load->database("default", true);
|
|
$this->db_smartone = $CI->load->database("default", true);
|
|
}
|
|
|
|
function clean_mysqli_connection($dbc)
|
|
{
|
|
while (mysqli_more_results($dbc)) {
|
|
if (mysqli_next_result($dbc)) {
|
|
$result = mysqli_use_result($dbc);
|
|
|
|
if (get_class($result) == 'mysqli_stmt') {
|
|
mysqli_stmt_free_result($result);
|
|
}
|
|
else {
|
|
unset($result);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function dynamic_comparison($varleft, $op, $varright)
|
|
{
|
|
|
|
switch ($op) {
|
|
case "=":
|
|
return $varleft == $varright;
|
|
case "!=":
|
|
return $varleft != $varright;
|
|
case ">=":
|
|
return $varleft >= $varright;
|
|
case "<=":
|
|
return $varleft <= $varright;
|
|
case ">":
|
|
return $varleft > $varright;
|
|
case "<":
|
|
return $varleft < $varright;
|
|
default:
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function generate_kelainan_lab($orderid = 0, $orderdetailID = 0, $userID = 0)
|
|
{
|
|
$errors = [];
|
|
if ($orderid != 0) {
|
|
$filterOrderID = " AND T_OrderHeaderID = {$orderid}";
|
|
}
|
|
else {
|
|
$filterOrderID = "";
|
|
}
|
|
if ($orderdetailID != 0) {
|
|
$filterDetailID = " AND T_OrderDetailID = {$orderdetailID}";
|
|
}
|
|
else {
|
|
$filterDetailID = "";
|
|
}
|
|
$sql = "SELECT
|
|
T_OrderHeaderID,T_OrderHeaderLabNumber,
|
|
T_TestName, T_OrderDetailID, T_OrderDetailResult, T_OrderDetailNat_MethodeID,
|
|
T_OrderDetailNat_MethodeID, T_OrderDetailNat_MethodeName,
|
|
T_OrderDetailMinValue, T_OrderDetailMaxValue, T_OrderDetailMinValueInclusive,
|
|
T_OrderDetailMaxValueInclusive,
|
|
Mcu_SummaryLabID,
|
|
Mcu_SummaryLabValue,
|
|
Mcu_SummaryLabNat_MethodeID,
|
|
Mcu_SummaryLabWithMethode,
|
|
Mcu_SummaryLabType,
|
|
Mcu_SummaryLabIsNormalValue,
|
|
Mcu_SummaryLabIsRange,
|
|
Mcu_SummaryLabMinInclusive,
|
|
Mcu_SummaryLabMinValue,
|
|
Mcu_SummaryLabMaxInclusive,
|
|
Mcu_SummaryLabMaxValue,
|
|
Mcu_KelainanID, Mcu_KelainanName, Mcu_KelainanClasification,
|
|
Nat_TestID,
|
|
Nat_TestCode,
|
|
mcu_kelainangroup.*
|
|
from t_orderdetail
|
|
join t_orderheader on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID {$filterOrderID} {$filterDetailID}
|
|
and T_OrderHeaderID = T_OrderDetailT_OrderHeaderID
|
|
and T_OrderDetailIsActive = 'Y'
|
|
JOIN m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
JOIN m_sex ON M_PatientM_SexID = M_SexID
|
|
join t_test
|
|
on T_OrderDetailT_TestID = T_TestID
|
|
join nat_test ON T_TestNat_TestID = Nat_TestID
|
|
join mcu_summarylab on T_TestNat_TestID = Mcu_SummaryLabNat_TestID AND Mcu_SummaryLabIsActive = 'Y'
|
|
AND (Mcu_SummaryLabGender = 'A' OR (Mcu_SummaryLabGender <> 'A' AND Mcu_SummaryLabGender = CASE
|
|
WHEN LOWER(M_SexNameLang) = 'male' THEN 'M'
|
|
WHEN LOWER(M_SexNameLang) = 'female' THEN 'F'
|
|
else ''
|
|
END))
|
|
join mcu_kelainan on Mcu_SummaryLabMcu_KelainanID = Mcu_KelainanID
|
|
join mcu_kelainangroup on Mcu_KelainanMcu_KelainanGroupID = Mcu_KelainanGroupID";
|
|
//echo $sql;
|
|
$qry = $this->db_smartone->query($sql);
|
|
if (!$qry) {
|
|
|
|
$prm_log = ['SELECT_T_ORDERDETAIL_KELAINAN_LAB_1', 'kelainanlab/generate_kelainan_lab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($errors));
|
|
$errors[] = "SELECT_T_ORDERDETAIL_KELAINAN_LAB_1";
|
|
}
|
|
|
|
$rows = $qry->result_array();
|
|
$results = [];
|
|
|
|
|
|
|
|
foreach ($rows as $r) {
|
|
$result_value = $r['T_OrderDetailResult'];
|
|
|
|
$value_comparison = 0;
|
|
//echo $r['Mcu_SummaryLabIsNormalValue'];
|
|
$kelainan = [];
|
|
$notavailable = [];
|
|
if (trim($result_value) == 'NA') {
|
|
$notavailable = $r;
|
|
}
|
|
elseif ($r['Mcu_SummaryLabIsNormalValue'] == 'Y') {
|
|
if ($r['Mcu_SummaryLabType'] == '<' || $r['Mcu_SummaryLabType'] == '<=') {
|
|
$value_comparison = $r['T_OrderDetailMinValue'];
|
|
}
|
|
if ($r['Mcu_SummaryLabType'] == '>' || $r['Mcu_SummaryLabType'] == '>=') {
|
|
$value_comparison = $r['T_OrderDetailMaxValue'];
|
|
}
|
|
//echo "Y";
|
|
if ($r['Mcu_SummaryLabWithMethode'] == 'N' && $this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) {
|
|
//echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", ";
|
|
$kelainan = $r;
|
|
$results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']);
|
|
}
|
|
}
|
|
else if ($r['Mcu_SummaryLabIsRange'] == 'Y') {
|
|
// Mcu_SummaryLabIsNormalValue,
|
|
// Mcu_SummaryLabIsRange,
|
|
// Mcu_SummaryLabMinInclusive,
|
|
// Mcu_SummaryLabMinValue,
|
|
// Mcu_SummaryLabMaxInclusive,
|
|
// Mcu_SummaryLabMaxValue,
|
|
$isWithinMin = $r['Mcu_SummaryLabMinInclusive'] === 'Y' ? floatval($result_value) >= floatval($r['Mcu_SummaryLabMinValue']) : floatval($result_value) > floatval($r['Mcu_SummaryLabMinValue']);
|
|
$isWithinMax = $r['Mcu_SummaryLabMaxInclusive'] === 'Y' ? floatval($result_value) <= floatval($r['Mcu_SummaryLabMaxValue']) : floatval($result_value) < floatval($r['Mcu_SummaryLabMaxValue']);
|
|
|
|
if ($isWithinMax && $isWithinMin) {
|
|
$kelainan = $r;
|
|
$results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']);
|
|
}
|
|
}
|
|
else {
|
|
$value_comparison = $r['Mcu_SummaryLabValue'];
|
|
if ($r['Mcu_SummaryLabType'] == '!=' || $r['Mcu_SummaryLabType'] == '==') {
|
|
if ($this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) {
|
|
//echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", ";
|
|
$kelainan = $r;
|
|
$results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']);
|
|
}
|
|
}
|
|
else {
|
|
if (is_numeric($result_value) && $this->dynamic_comparison($result_value, $r['Mcu_SummaryLabType'], $value_comparison)) {
|
|
//echo $r['T_TestName']." : ".$r['Mcu_KelainanName'].", ";
|
|
$kelainan = $r;
|
|
$results[] = array('test' => $r['T_TestName'], 'nat_test' => $r['Nat_TestCode'], 'kelainan' => $r['Mcu_KelainanName'], 'orderdetailID' => $r['T_OrderDetailID'], 'orderheaderID' => $r['T_OrderHeaderID'], 'nat_testID' => $r['Nat_TestID'], 'mcu_summarylabID' => $r['Mcu_SummaryLabID']);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (count($results) > 0) {
|
|
$sql_update_kel = "";
|
|
if ($orderdetailID != 0) {
|
|
$sql_update_kel = "UPDATE t_kelainan_lab
|
|
SET T_KelainanLabIsActive = 'N'
|
|
WHERE
|
|
T_KelainanLabT_OrderDetailID = {$orderdetailID}";
|
|
}
|
|
else {
|
|
$sql_update_kel = "UPDATE t_kelainan_lab
|
|
SET T_KelainanLabIsActive = 'N'
|
|
WHERE
|
|
T_KelainanLabT_OrderHeaderID = {$orderid}";
|
|
|
|
}
|
|
$qry_update_kel = $this->db_smartone->query($sql_update_kel);
|
|
if (!$qry_update_kel) {
|
|
$prm_log = ['UPDATE_T_KELAINAN_LAB_N', 'kelainanlab/generate_kelainan_lab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderid' => $orderid, 'orderdetailID' => $orderdetailID]));
|
|
$errors[] = "UPDATE_T_KELAINAN_LAB_N";
|
|
}
|
|
|
|
foreach ($results as $v_result) {
|
|
$sql_kel_lab = "SELECT *
|
|
FROM t_kelainan_lab
|
|
WHERE T_KelainanLabT_OrderDetailID = ?
|
|
GROUP BY T_KelainanLabT_OrderDetailID";
|
|
$qry_kel_lab = $this->db_smartone->query($sql_kel_lab, array($v_result['orderdetailID']));
|
|
if ($qry_kel_lab) {
|
|
$rows_kel = $qry_kel_lab->result_array();
|
|
}
|
|
else {
|
|
$prm_log = ['SELECT_T_KELAINAN_LAB', 'kelainanlab/generate_kelainan_lab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($v_result));
|
|
$errors[] = "SELECT_T_KELAINAN_LAB";
|
|
}
|
|
|
|
if (count($rows_kel) > 0) {
|
|
|
|
// print_r($v_result['orderdetailID']);
|
|
// exit;
|
|
|
|
$sql_update_kel = "UPDATE t_kelainan_lab
|
|
SET T_KelainanLabT_OrderDetailID = {$v_result['orderdetailID']},
|
|
T_KelainanLabT_OrderHeaderID = {$v_result['orderheaderID']},
|
|
T_KelainanLabNat_TestID = {$v_result['nat_testID']},
|
|
T_KelainanLabMcu_SummaryLabID = {$v_result['mcu_summarylabID']},
|
|
T_KelainanLabCreatedUserID = {$userID},
|
|
T_KelainanLabIsActive = 'Y',
|
|
T_KelainanLabCreated = NOW()
|
|
WHERE T_KelainanLabID = {$rows_kel[0]['T_KelainanLabID']}";
|
|
$qry_update_kel = $this->db_smartone->query($sql_update_kel);
|
|
if (!$qry_update_kel) {
|
|
$prm_log = ['UPDATE_T_KELAINAN_LAB', 'kelainanlab/generate_kelainan_lab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($v_result));
|
|
$errors[] = "UPDATE_T_KELAINAN_LAB";
|
|
}
|
|
}
|
|
else {
|
|
// print_r('insert');
|
|
// exit;
|
|
$sql_insert_lab = "INSERT INTO t_kelainan_lab(
|
|
T_KelainanLabT_OrderDetailID,
|
|
T_KelainanLabT_OrderHeaderID,
|
|
T_KelainanLabNat_TestID,
|
|
T_KelainanLabMcu_SummaryLabID,
|
|
T_KelainanLabCreatedUserID,
|
|
T_KelainanLabCreated)
|
|
VALUES(
|
|
'{$v_result['orderdetailID']}',
|
|
'{$v_result['orderheaderID']}',
|
|
'{$v_result['nat_testID']}',
|
|
'{$v_result['mcu_summarylabID']}',
|
|
{$userID},
|
|
NOW())";
|
|
$qry_insert_lab = $this->db_smartone->query($sql_insert_lab);
|
|
|
|
if (!$qry_insert_lab) {
|
|
$prm_log = ['INSERT_T_KELAINAN_LAB', 'kelainanlab/generate_kelainan_lab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($v_result));
|
|
$errors[] = "INSERT_T_KELAINAN_LAB";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function generate_kelainan_nonlab($orderID = 0, $so_resultentryID = 0, $userID = 0)
|
|
{
|
|
$errors = [];
|
|
if ($orderID != 0) {
|
|
$filterOrderID = " AND T_OrderHeaderID = {$orderID}";
|
|
}
|
|
else {
|
|
$filterOrderID = "";
|
|
}
|
|
if ($so_resultentryID != 0) {
|
|
$filterSoResultEntryID = " AND So_ResultEntryID = {$so_resultentryID}";
|
|
}
|
|
else {
|
|
$filterSoResultEntryID = "";
|
|
}
|
|
$sql = "SELECT So_ResultEntryID, T_OrderHeaderID, T_TestNat_TestID, Mcu_SummaryNonlabID, Mcu_SummaryNonlabMcu_KelainanID, Mcu_SummaryNonlabID
|
|
FROM so_resultentry_category_result
|
|
JOIN so_resultentry ON So_ResultEntryCategoryResultSo_ResultEntryID = So_ResultEntryID AND
|
|
So_ResultEntryStatus <> 'NEW' AND So_ResultEntryIsActive = 'Y' {$filterSoResultEntryID}
|
|
JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderIsActive = 'Y'
|
|
{$filterOrderID}
|
|
JOIN t_orderdetail ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND T_OrderDetailIsActive = 'Y'
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN mcu_summarynonlab ON Mcu_SummaryNonlabNat_TestID = T_TestNat_TestID AND
|
|
Mcu_SummaryNonlabIsActive = 'Y' AND So_ResultEntryCategoryNonlabConclusionDetailID IN (Mcu_SummaryNonlabConclusionDetailIDs)
|
|
WHERE
|
|
So_ResultEntryCategoryResultIsActive = 'Y'";
|
|
|
|
$qry = $this->db_smartone->query($sql, array($orderID));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_T_KELAINAN_NONLAB_1', 'genkelainan/generate_kelainan_nonlab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID, 'so_resultentryID' => $so_resultentryID]));
|
|
$errors[] = "SELECT_T_KELAINAN_NONLAB_1";
|
|
}
|
|
|
|
$rows = $qry->result_array();
|
|
if ($orderID != 0) {
|
|
$sql = "UPDATE t_kelainan_nonlab SET
|
|
T_KelainanNonLabIsActive = 'N'
|
|
WHERE
|
|
T_KelainanNonLabT_OrderHeaderID = {$orderID} AND
|
|
T_KelainanNonLabIsActive = 'Y'
|
|
";
|
|
}
|
|
else {
|
|
$sql = "UPDATE t_kelainan_nonlab SET
|
|
T_KelainanNonLabIsActive = 'N'
|
|
WHERE
|
|
T_KelainanNonLabSo_ResultEntryID = {$so_resultentryID} AND
|
|
T_KelainanNonLabIsActive = 'Y'
|
|
";
|
|
}
|
|
$qry = $this->db_smartone->query($sql);
|
|
if (!$qry) {
|
|
$prm_log = ['UPDATE_T_KELAINAN_NONLAB_N', 'genkelainan/generate_kelainan_nonlab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID, 'so_resultentryID' => $so_resultentryID]));
|
|
$errors[] = "UPDATE_T_KELAINAN_NONLAB_N";
|
|
}
|
|
|
|
foreach ($rows as $key => $value) {
|
|
|
|
|
|
$sql = "INSERT INTO t_kelainan_nonlab (
|
|
T_KelainanNonLabSo_ResultEntryID,
|
|
T_KelainanNonLabT_OrderHeaderID,
|
|
T_KelainanNonLabNat_TestID,
|
|
T_KelainanNonLabMcu_SummaryNonlabID,
|
|
T_KelainanNonLabCreatedUserID,
|
|
T_KelainanLabNonCreated
|
|
) VALUES(?,?,?,?,?,NOW())";
|
|
$qry = $this->db_smartone->query($sql, [
|
|
$value['So_ResultEntryID'],
|
|
$value['T_OrderHeaderID'],
|
|
$value['T_TestNat_TestID'],
|
|
$value['Mcu_SummaryNonlabID'],
|
|
$userID
|
|
]);
|
|
if (!$qry) {
|
|
$prm_log = ['INSERT_T_KELAINAN_NONLAB', 'genkelainan/generate_kelainan_nonlab'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($value));
|
|
$errors[] = "INSERT_T_KELAINAN_NONLAB";
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
|
|
}
|
|
|
|
function generate_all_fisik($orderID, $userid)
|
|
{
|
|
$errors = [];
|
|
$errors = array_merge($errors, $this->status_gizi($orderID, $userid));
|
|
$errors = array_merge($errors, $this->persepsi_warna($orderID, $userid));
|
|
$errors = array_merge($errors, $this->visus($orderID, $userid));
|
|
$errors = array_merge($errors, $this->keluhan($orderID, $userid));
|
|
$errors = array_merge($errors, $this->riwayat_penyakit($orderID, $userid));
|
|
$errors = array_merge($errors, $this->penyakit_keluarga($orderID, $userid));
|
|
$errors = array_merge($errors, $this->kebiasaan_hidup($orderID, $userid));
|
|
$errors = array_merge($errors, $this->fisik_konsumsiobatteratur($orderID, $userid));
|
|
$errors = array_merge($errors, $this->imunasi($orderID, $userid));
|
|
$errors = array_merge($errors, $this->vital_sign($orderID, $userid));
|
|
|
|
$errors = array_merge($errors, $this->keadaan_umum($orderID, $userid));
|
|
$errors = array_merge($errors, $this->kepala_wajah($orderID, $userid));
|
|
$errors = array_merge($errors, $this->mata($orderID, $userid));
|
|
$errors = array_merge($errors, $this->lapang_pandang($orderID, $userid));
|
|
$errors = array_merge($errors, $this->telinga($orderID, $userid));
|
|
$errors = array_merge($errors, $this->hidung($orderID, $userid));
|
|
$errors = array_merge($errors, $this->gigi($orderID, $userid));
|
|
$errors = array_merge($errors, $this->mulut($orderID, $userid));
|
|
$errors = array_merge($errors, $this->leher($orderID, $userid));
|
|
$errors = array_merge($errors, $this->thorax($orderID, $userid));
|
|
$errors = array_merge($errors, $this->paru($orderID, $userid));
|
|
$errors = array_merge($errors, $this->jantung($orderID, $userid));
|
|
$errors = array_merge($errors, $this->perut($orderID, $userid));
|
|
$errors = array_merge($errors, $this->sistem_integumen($orderID, $userid));
|
|
$errors = array_merge($errors, $this->genitourinaria($orderID, $userid));
|
|
$errors = array_merge($errors, $this->anggota_gerak($orderID, $userid));
|
|
$errors = array_merge($errors, $this->sistem_persyarafan($orderID, $userid));
|
|
$errors = array_merge($errors, $this->smell_test($orderID, $userid));
|
|
$errors = array_merge($errors, $this->low_back_pain_screening_test($orderID, $userid));
|
|
$errors = array_merge($errors, $this->loop_k3($orderID, $userid));
|
|
|
|
$this->generate_summaries($orderID, $userid);
|
|
|
|
return $errors;
|
|
}
|
|
|
|
|
|
|
|
function status_gizi($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$sql = "SELECT *
|
|
FROM t_samplingso_additional_fisik_bbtb
|
|
WHERE
|
|
T_SamplingAdditionalFisikBBTBT_OrderHeaderID = ? AND
|
|
T_SamplingAdditionalFisikBBTBIsActive = 'Y'
|
|
LIMIT 1";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_T_SAMPLINGSO_ADDITIONAL_FISIK_BBTB', 'genkelainan/status_gizi'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_T_SAMPLINGSO_ADDITIONAL_FISIK_BBTB";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$row_results = $qry->result_array();
|
|
//print_r($row_result);
|
|
if (count($row_results) > 0) {
|
|
$row_result = $row_results[0];
|
|
$status_gizi = array();
|
|
$bb = $row_result["T_SamplingAdditionalFisikBBTBValueBB"];
|
|
$tb = $row_result["T_SamplingAdditionalFisikBBTBValueTB"];
|
|
$standart_bmi = $row_result["T_SamplingAdditionalFisikBBTBStandart"];
|
|
$get_bmi = $this->hitung_bmi($bb, $tb, $standart_bmi);
|
|
$bmi = $get_bmi['bmi'];
|
|
|
|
$classification = $get_bmi['class'];
|
|
//echo $classification;
|
|
|
|
$data_insert_tb = array(
|
|
'code' => 'tb',
|
|
'label' => $tb,
|
|
'note' => $tb,
|
|
'segment' => 'status_gizi',
|
|
'category' => '',
|
|
'order_id' => $id
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert_tb, $userid));
|
|
//$this->insert_code('tb',$tb);
|
|
|
|
$data_insert_bb = array(
|
|
'code' => 'bb',
|
|
'label' => $bb,
|
|
'note' => $bb,
|
|
'segment' => 'status_gizi',
|
|
'category' => '',
|
|
'order_id' => $id
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert_bb, $userid));
|
|
//$this->insert_code('bb',$bb);
|
|
|
|
$data_insert_bmi = array(
|
|
'code' => 'bmi',
|
|
'label' => $bmi,
|
|
'note' => $bmi,
|
|
'segment' => 'status_gizi',
|
|
'category' => $standart_bmi,
|
|
'order_id' => $id
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert_bmi, $userid));
|
|
//$this->insert_code('bmi',$bmi);
|
|
|
|
$data_insert_bmi_class = array(
|
|
'code' => 'bmi_classification_' . $standart_bmi,
|
|
'label' => $classification,
|
|
'note' => $classification,
|
|
'segment' => 'status_gizi',
|
|
'category' => $standart_bmi,
|
|
'order_id' => $id
|
|
);
|
|
//print_r($data_insert_bmi_class);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert_bmi_class, $userid));
|
|
//$this->insert_code('bmi_classification_'.$standart_bmi,$classification);
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function persepsi_warna($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$sql = "SELECT IFNULL(T_SamplingAdditionalFisikBWPWValue,'Z') as result,
|
|
IFNULL(T_SamplingAdditionalFisikBWPWVAngka,'') as angka
|
|
FROM t_samplingso_additional_fisik_bw
|
|
WHERE
|
|
T_SamplingAdditionalFisikBWT_OrderHeaderID = ?
|
|
LIMIT 1";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_T_SAMPLINGSO_ADDITIONAL_FISIK_BWPW', 'genkelainan/persepsi_warna'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_T_SAMPLINGSO_ADDITIONAL_FISIK_BWPW";
|
|
}
|
|
|
|
|
|
$row_results = $qry->result_array();
|
|
if (count($row_results) > 0) {
|
|
$row_result = $row_results[0];
|
|
$hasil = 'Bahan belum';
|
|
if ($row_result['result'] == 'BW') {
|
|
$hasil = 'Red Green Deficiency';
|
|
}
|
|
if ($row_result['result'] == 'N') {
|
|
$hasil = 'Normal';
|
|
}
|
|
if ($row_result['result'] == 'X') {
|
|
$hasil = 'Tidak dilakukan';
|
|
}
|
|
$data_insert_bw = array(
|
|
'code' => 'bw',
|
|
'label' => $row_result['result'],
|
|
'note' => $hasil,
|
|
'segment' => 'mata',
|
|
'category' => '',
|
|
'order_id' => $id
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert_bw, $userid));
|
|
//$this->insert_code('bw',$row_result['result']);
|
|
|
|
$data_insert_bwv = array(
|
|
'code' => 'bw_value',
|
|
'label' => $row_result['angka'],
|
|
'note' => $row_result['angka'],
|
|
'segment' => 'mata',
|
|
'category' => '',
|
|
'order_id' => $id
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert_bwv, $userid));
|
|
//$this->insert_code('bw_value',$row_result['angka']);
|
|
}
|
|
|
|
|
|
return $errors;
|
|
}
|
|
|
|
|
|
|
|
function hitung_bmi($bb, $tb, $standart_bmi)
|
|
{
|
|
$tb = $tb / 100;
|
|
$bmi = '';
|
|
$classs = "";
|
|
$bmi_valuex = 0;
|
|
if (intval($bb) != 0 && intval($tb) != 0) {
|
|
$bmi = $bb / ($tb * $tb);
|
|
$bmi_valuex = number_format($bmi, 2);
|
|
|
|
if ($standart_bmi === 'asia_pacific') {
|
|
if ($bmi_valuex < 18.5)
|
|
$classs = 'Underweight';
|
|
|
|
if ($bmi_valuex >= 18.5 && $bmi_valuex < 23)
|
|
$classs = 'Normal';
|
|
|
|
if ($bmi_valuex >= 23 && $bmi_valuex < 25)
|
|
$classs = 'Overweight';
|
|
|
|
if ($bmi_valuex >= 25 && $bmi_valuex < 30)
|
|
$classs = 'Obese I';
|
|
|
|
if ($bmi_valuex >= 30)
|
|
$classs = 'Obese II';
|
|
}
|
|
|
|
if ($standart_bmi === 'who') {
|
|
if ($bmi_valuex < 18.5)
|
|
$classs = 'Underweight';
|
|
|
|
if ($bmi_valuex >= 18.5 && $bmi_valuex < 25) {
|
|
$classs = 'Normal';
|
|
}
|
|
|
|
if ($bmi_valuex >= 25 && $bmi_valuex < 30) {
|
|
$classs = 'Overweight';
|
|
}
|
|
|
|
if ($bmi_valuex >= 30)
|
|
$classs = 'Obese';
|
|
}
|
|
|
|
if ($standart_bmi === 'kemenkes') {
|
|
if ($bmi_valuex < 18.5)
|
|
$classs = 'Underweight';
|
|
|
|
if ($bmi_valuex >= 18.5 && $bmi_valuex < 25.1)
|
|
$classs = 'Normal';
|
|
|
|
if ($bmi_valuex >= 25.1 && $bmi_valuex < 27)
|
|
$classs = 'Overweight';
|
|
|
|
if ($bmi_valuex >= 27)
|
|
$classs = 'Obese';
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return array(
|
|
'bmi' => $bmi_valuex,
|
|
'class' => $classs
|
|
);
|
|
}
|
|
|
|
function visus($orderID, $userid)
|
|
{
|
|
$errors = [];
|
|
$ret_array = [];
|
|
|
|
$sql = " SELECT * , T_SamplingAdditionalFisikVisusID as visus_id
|
|
FROM t_samplingso_additional_fisik_visus
|
|
WHERE
|
|
T_SamplingAdditionalFisikVisusT_OrderHeaderID = ? LIMIT 1";
|
|
$qry = $this->db_smartone->query($sql, array($orderID));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_T_SAMPLINGSO_ADDITIONAL_FISIK_VISUS', 'genkelainan/visus'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_T_SAMPLINGSO_ADDITIONAL_FISIK_VISUS";
|
|
}
|
|
|
|
$row_result = $qry->row_array();
|
|
//echo $this->db_smartone->last_query();
|
|
|
|
|
|
if ($row_result && intval($row_result['visus_id']) > 0) {
|
|
|
|
|
|
|
|
$visus = array();
|
|
$visus_kiri = "";
|
|
$visus_kanan = "";
|
|
$visus_kesimpulan = "";
|
|
$normal = array("20/20", "20/25", "6/6", "6/7.5", "6/7,5");
|
|
$miopia_od = false;
|
|
$miopia_os = false;
|
|
$miopia_od_value = '';
|
|
$miopia_os_value = '';
|
|
$astigmatismus_od = false;
|
|
$astigmatismus_os = false;
|
|
$astigmatismus_od_value = '';
|
|
$astigmatismus_os_value = '';
|
|
$presbiopia_ods = false;
|
|
$presbiopia_ods_value = '';
|
|
$x_od = false;
|
|
$x_os = false;
|
|
$x_od_value = "";
|
|
$x_os_value = "";
|
|
$od_visus = "20/20";
|
|
$os_visus = "20/20";
|
|
if ($row_result['T_SamplingAdditionalFisikVisusTKODV'] == '6/7,5' || $row_result['T_SamplingAdditionalFisikVisusTKODV'] == '6/6' || $row_result['T_SamplingAdditionalFisikVisusTKODV'] == '6/7.5')
|
|
$od_visus = $row_result['T_SamplingAdditionalFisikVisusTKODV'];
|
|
|
|
if ($row_result['T_SamplingAdditionalFisikVisusTKOSV'] == '6/7,5' || $row_result['T_SamplingAdditionalFisikVisusTKOSV'] == '6/6' || $row_result['T_SamplingAdditionalFisikVisusTKOSV'] == '6/7.5')
|
|
$os_visus = $row_result['T_SamplingAdditionalFisikVisusTKOSV'];
|
|
|
|
|
|
|
|
if ((strtolower($row_result['T_SamplingAdditionalFisikVisusTKODV']) != "normal" && $row_result['T_SamplingAdditionalFisikVisusTKODV'] != "" && $row_result['T_SamplingAdditionalFisikVisusTKODV'] != "-") && ($row_result['T_SamplingAdditionalFisikVisusTKOSV'] != "" && $row_result['T_SamplingAdditionalFisikVisusTKOSV'] != "-" && strtolower($row_result['T_SamplingAdditionalFisikVisusTKODV']) != "normal" && strtolower($row_result['T_SamplingAdditionalFisikVisusTKOSV']) != "normal")) {
|
|
$visus[] = array(
|
|
"xx1" => "Tanpa Kacamata",
|
|
"xx2" => "OD : ",
|
|
"xx3" => $row_result['T_SamplingAdditionalFisikVisusTKODV']
|
|
);
|
|
|
|
$visus[] = array(
|
|
"xx1" => "Tanpa Kacamata",
|
|
"xx2" => "OS",
|
|
"xx3" => $row_result['T_SamplingAdditionalFisikVisusTKOSV']
|
|
);
|
|
|
|
|
|
$rst['kelainan'] = "Kelainan refraksi (tanpa kacamata)";
|
|
|
|
if (!in_array($row_result['T_SamplingAdditionalFisikVisusTKODV'], $normal)) {
|
|
$value_koreksi_od = "";
|
|
$od_sph = $row_result['T_SamplingAdditionalFisikVisusODSPH'];
|
|
if ($od_sph != "" && $od_sph != "-" && $od_sph != "--" && $od_sph != "/-" && $od_sph != "/" && $od_sph != "-/" && strtolower(trim($od_sph)) != 'plano') {
|
|
if ($visus_kanan != "")
|
|
$visus_kanan .= ", ";
|
|
$visus_kanan .= $od_sph . " (Miopia)";
|
|
|
|
$miopia_od = true;
|
|
$miopia_od_value = $od_sph;
|
|
}
|
|
|
|
|
|
$od_cyl = $row_result['T_SamplingAdditionalFisikVisusODCYL'];
|
|
|
|
//$od_cyl = $row_result['T_SamplingAdditionalFisikVisusODCYL'];
|
|
if ($od_cyl != "" && $od_cyl != "-" && $od_cyl != "--" && $od_cyl != "/-" && $od_cyl != "/" && $od_cyl != "-/") {
|
|
if ($visus_kanan != "")
|
|
$visus_kanan .= ", ";
|
|
$visus_kanan .= "Cyl " . $od_cyl;
|
|
|
|
$astigmatismus_od = true;
|
|
$astigmatismus_od_value = $od_cyl;
|
|
}
|
|
|
|
|
|
$od_x = $row_result['T_SamplingAdditionalFisikVisusODX'];
|
|
//echo $od_x;
|
|
if ($od_x != "" && $od_x != "-" && $od_x != "--" && $od_x != "/-" && $od_x != "/" && $od_x != "-/") {
|
|
$visus_kanan .= " axis " . $od_x . " (Astigmatismus)";
|
|
$x_od = true;
|
|
$x_od = $od_x;
|
|
}
|
|
else {
|
|
if ($od_cyl != "" && $od_cyl != "-" && $od_cyl != "--" && $od_cyl != "/-" && $od_cyl != "/" && $od_cyl != "-/")
|
|
$visus_kanan .= " (Astigmatismus)";
|
|
}
|
|
//$value_koreksi_od .= "X (".$od_x.") ";
|
|
|
|
|
|
|
|
}
|
|
|
|
if (!in_array($row_result['T_SamplingAdditionalFisikVisusTKOSV'], $normal)) {
|
|
$value_koreksi_os = "";
|
|
$os_sph = $row_result['T_SamplingAdditionalFisikVisusOSSPH'];
|
|
if (strtolower(trim($os_sph)) != "tidak terkoreksi" && strtolower(trim($os_sph)) != "tidak dapat dinilai" && $os_sph != "" && $os_sph != "-" && $os_sph != "--" && $os_sph != "/-" && $os_sph != "/" && $os_sph != "-/" && strtolower(trim($os_sph)) != 'plano') {
|
|
if ($visus_kiri != "")
|
|
$visus_kiri .= ", ";
|
|
$visus_kiri .= $os_sph . " (Miopia)";
|
|
|
|
$miopia_os = true;
|
|
$miopia_os_value = $os_sph;
|
|
}
|
|
|
|
$os_cyl = $row_result['T_SamplingAdditionalFisikVisusOSCYL'];
|
|
|
|
if (strtolower(trim($os_cyl)) != "tidak terkoreksi" && strtolower(trim($os_cyl)) != "tidak dapat dinilai" && $os_cyl != "" && $os_cyl != "-" && $os_cyl != "--" && $os_cyl != "/-" && $os_cyl != "/" && $os_cyl != "-/") {
|
|
if ($visus_kiri != "")
|
|
$visus_kiri .= ", ";
|
|
$visus_kiri .= "Cyl " . $os_cyl;
|
|
|
|
$astigmatismus_os = true;
|
|
$astigmatismus_os_value = $os_cyl;
|
|
}
|
|
|
|
|
|
$os_x = $row_result['T_SamplingAdditionalFisikVisusOSX'];
|
|
|
|
if (strtolower(trim($os_x)) != "tidak terkoreksi" && strtolower(trim($os_x)) != "tidak dapat dinilai" && $os_x != "" && $os_x != "-" && $os_x != "--" && $os_x != "/-" && $os_x != "/" && $os_x != "-/") {
|
|
//if ($visus_kiri != "") $visus_kiri .= ", ";
|
|
$visus_kiri .= " axis " . $os_x . " (Astigmatismus)";
|
|
$x_os = true;
|
|
$x_os = $os_x;
|
|
}
|
|
else {
|
|
if ($os_cyl != "" && $os_cyl != "-")
|
|
$visus_kiri .= " (Astigmatismus)";
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((strtolower($row_result['T_SamplingAdditionalFisikVisusDKODV']) != "normal" && $row_result['T_SamplingAdditionalFisikVisusDKODV'] != "" && $row_result['T_SamplingAdditionalFisikVisusDKODV'] != "-") && ($row_result['T_SamplingAdditionalFisikVisusDKOSV'] != "" && $row_result['T_SamplingAdditionalFisikVisusDKOSV'] != "-" && strtolower($row_result['T_SamplingAdditionalFisikVisusDKODV']) != "normal" && strtolower($row_result['T_SamplingAdditionalFisikVisusDKOSV']) != "normal")) {
|
|
$visus[] = array(
|
|
"xx1" => "Dengan Kacamata",
|
|
"xx2" => "OD : ",
|
|
"xx3" => $row_result['T_SamplingAdditionalFisikVisusDKODV']
|
|
);
|
|
|
|
$visus[] = array(
|
|
"xx1" => "Dengan Kacamata",
|
|
"xx2" => "OS",
|
|
"xx3" => $row_result['T_SamplingAdditionalFisikVisusDKOSV']
|
|
);
|
|
|
|
$rst['kelainan'] = "Kelainan refraksi (dengan kacamata)";
|
|
$od_visus = $row_result['T_SamplingAdditionalFisikVisusDKODV'];
|
|
$os_visus = $row_result['T_SamplingAdditionalFisikVisusDKOSV'];
|
|
|
|
|
|
$value_koreksi_od = "";
|
|
$od_sph = $row_result['T_SamplingAdditionalFisikVisusODSPH'];
|
|
if (strtolower(trim($od_sph)) != "tidak terkoreksi" && strtolower(trim($od_sph)) != "tidak dapat dinilai" && $od_sph != "" && $od_sph != "-" && $od_sph != "--" && $od_sph != "/-" && $od_sph != "/" && $od_sph != "-/" && strtolower(trim($od_sph)) != 'plano') {
|
|
if ($visus_kanan != "")
|
|
$visus_kanan .= ", ";
|
|
$visus_kanan .= $od_sph . " (Miopia)";
|
|
|
|
$miopia_od = true;
|
|
$miopia_od_value = $od_sph;
|
|
}
|
|
|
|
$od_cyl = $row_result['T_SamplingAdditionalFisikVisusODCYL'];
|
|
|
|
if (strtolower(trim($od_cyl)) != "tidak terkoreksi" && strtolower(trim($od_cyl)) != "tidak dapat dinilai" && $od_cyl != "" && $od_cyl != "-" && $od_cyl != "--" && $od_cyl != "/-" && $od_cyl != "/" && $od_cyl != "-/") {
|
|
if ($visus_kanan != "")
|
|
$visus_kanan .= ", ";
|
|
$visus_kanan .= "Cyl " . $od_cyl;
|
|
|
|
$astigmatismus_od = true;
|
|
$astigmatismus_od_value = $od_cyl;
|
|
}
|
|
|
|
$od_x = $row_result['T_SamplingAdditionalFisikVisusODX'];
|
|
if (strtolower(trim($od_x)) != "tidak terkoreksi" && strtolower(trim($od_x)) != "tidak dapat dinilai" && $od_x != "" && $od_x != "-" && $od_x != "--" && $od_x != "/-" && $od_x != "/" && $od_x != "-/") {
|
|
//if ($visus_kanan != "") $visus_kanan .= ", ";
|
|
$visus_kanan .= " axis " . $od_x . " (Astigmatismus)";
|
|
$x_od = true;
|
|
$x_od = $od_x;
|
|
}
|
|
else {
|
|
if ($od_cyl != "" && $od_cyl != "-" && $od_cyl != "--" && $od_cyl != "/-" && $od_cyl != "/" && $od_cyl != "-/")
|
|
$visus_kanan .= " (Astigmatismus)";
|
|
}
|
|
//$value_koreksi_od .= "X (".$od_x.") ";
|
|
|
|
|
|
|
|
|
|
|
|
$value_koreksi_os = "";
|
|
$os_sph = $row_result['T_SamplingAdditionalFisikVisusOSSPH'];
|
|
if (strtolower(trim($os_sph)) != "tidak terkoreksi" && strtolower(trim($os_sph)) != "tidak dapat dinilai" && $os_sph != "" && $os_sph != "-" && $os_sph != "--" && $os_sph != "/-" && $os_sph != "/" && $os_sph != "-/" && strtolower(trim($os_sph)) != 'plano') {
|
|
if ($visus_kiri != "")
|
|
$visus_kiri .= ", ";
|
|
$visus_kiri .= $os_sph . " (Miopia)";
|
|
|
|
$miopia_os = true;
|
|
$miopia_os_value = $os_sph;
|
|
}
|
|
|
|
$os_cyl = $row_result['T_SamplingAdditionalFisikVisusOSCYL'];
|
|
|
|
if (strtolower(trim($os_cyl)) != "tidak terkoreksi" && strtolower(trim($os_cyl)) != "tidak dapat dinilai" && $os_cyl != "" && $os_cyl != "-" && $os_cyl != "--" && $os_cyl != "/-" && $os_cyl != "/" && $os_cyl != "-/") {
|
|
if ($visus_kiri != "")
|
|
$visus_kiri .= ", ";
|
|
$visus_kiri .= "Cyl " . $os_cyl;
|
|
|
|
$astigmatismus_os = true;
|
|
$astigmatismus_os_value = $os_cyl;
|
|
}
|
|
|
|
$os_x = $row_result['T_SamplingAdditionalFisikVisusOSX'];
|
|
|
|
if (strtolower(trim($os_x)) != "tidak terkoreksi" && strtolower(trim($os_x)) != "tidak dapat dinilai" && $os_x != "" && $os_x != "-" && $os_x != "--" && $os_x != "/-" && $os_x != "/" && $os_x != "-/") {
|
|
$visus_kiri .= " axis " . $os_x . " (Astigmatismus)";
|
|
$x_os = true;
|
|
$x_os = $os_x;
|
|
}
|
|
else {
|
|
if ($os_cyl != "" && $os_cyl != "-" && $os_cyl != "--" && $os_cyl != "/-" && $os_cyl != "/" && $os_cyl != "-/")
|
|
$visus_kiri .= " (Astigmatismus)";
|
|
}
|
|
//$value_koreksi_os .= "X (".$os_x.") ";
|
|
|
|
|
|
}
|
|
|
|
if (($row_result['T_SamplingAdditionalFisikVisusTKODV'] != "" && $row_result['T_SamplingAdditionalFisikVisusTKODV'] != "-") && ($row_result['T_SamplingAdditionalFisikVisusTKOSV'] != "" && $row_result['T_SamplingAdditionalFisikVisusTKOSV'] != "-")) {
|
|
if (!in_array($row_result['T_SamplingAdditionalFisikVisusTKODV'], $normal) && $visus_kanan == '') {
|
|
$visus_kanan = "Miopia";
|
|
$miopia_od = true;
|
|
$miopia_od_value = "";
|
|
}
|
|
|
|
if (!in_array($row_result['T_SamplingAdditionalFisikVisusTKOSV'], $normal) && $visus_kiri == '') {
|
|
$visus_kiri = "Miopia";
|
|
$miopia_os = true;
|
|
$miopia_os_value = "";
|
|
}
|
|
}
|
|
|
|
if (($row_result['T_SamplingAdditionalFisikVisusDKODV'] != "" && $row_result['T_SamplingAdditionalFisikVisusDKODV'] != "-") && ($row_result['T_SamplingAdditionalFisikVisusDKOSV'] != "" && $row_result['T_SamplingAdditionalFisikVisusDKOSV'] != "-")) {
|
|
if (!in_array($row_result['T_SamplingAdditionalFisikVisusDKODV'], $normal) && $visus_kanan == '') {
|
|
$visus_kanan = "Miopia";
|
|
$miopia_od = true;
|
|
$miopia_od_value = "";
|
|
}
|
|
|
|
if (!in_array($row_result['T_SamplingAdditionalFisikVisusDKOSV'], $normal) && $visus_kiri == '') {
|
|
$visus_kiri = "Miopia";
|
|
$miopia_os = true;
|
|
$miopia_os_value = "";
|
|
}
|
|
}
|
|
|
|
$od_add = $row_result['T_SamplingAdditionalFisikVisusADD'];
|
|
if ($od_add != "" && $od_add != "-" && $od_add != "--" && $od_add != "/-" && $od_add != "/" && $od_add != "-/") {
|
|
if ($visus_kanan != "")
|
|
$visus_kanan .= ", ";
|
|
$visus_kanan .= $od_add . " (Presbiopia)";
|
|
|
|
if ($visus_kiri != "")
|
|
$visus_kiri .= ", ";
|
|
$visus_kiri .= $od_add . " (Presbiopia)";
|
|
|
|
|
|
$presbiopia_ods = true;
|
|
$presbiopia_ods_value = $od_add;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
$data_insert = array(
|
|
'code' => 'visus',
|
|
'label' => 'visus',
|
|
'note' => $rst['kelainan'],
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus','visus');
|
|
|
|
if ($miopia_od) {
|
|
$data_insert = array(
|
|
'code' => 'visus_miopia_od',
|
|
'label' => 'visus Miopia OD',
|
|
'note' => $miopia_od_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_miopia_od','visus Miopia OD');
|
|
}
|
|
if ($miopia_os) {
|
|
$data_insert = array(
|
|
'code' => 'visus_miopia_os',
|
|
'label' => 'visus Miopia OS',
|
|
'note' => $miopia_os_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_miopia_os','visus Miopia OS');
|
|
}
|
|
if ($miopia_od) {
|
|
$in_value = ["20/30", "20/40"];
|
|
$exp_value_od = explode("/", $od_visus);
|
|
if (isset($exp_value_od[1]) && intval($exp_value_od[1]) < 50) {
|
|
$data_insert = array(
|
|
'code' => 'visus_miopia_od_30_40',
|
|
'label' => 'visus Miopia OD 20/30 20/40',
|
|
'note' => $miopia_od_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_miopia_od_30_40','visus Miopia OD 20/30 20/40');
|
|
}
|
|
if (isset($exp_value_od[1]) && intval($exp_value_od[1]) > 50) {
|
|
$data_insert = array(
|
|
'code' => 'visus_miopia_od_over_50',
|
|
'label' => 'visus Miopia OD > 20/50',
|
|
'note' => $miopia_od_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_miopia_ods_over_50','visus Miopia ODS > 20/50');
|
|
}
|
|
}
|
|
|
|
if ($miopia_os) {
|
|
|
|
$in_value = ["20/30", "20/40"];
|
|
$exp_value_os = explode("/", $os_visus);
|
|
//print_r($exp_value_os);
|
|
if (isset($exp_value_os[1]) && intval($exp_value_os[1]) < 50) {
|
|
$data_insert = array(
|
|
'code' => 'visus_miopia_os_30_40',
|
|
'label' => 'visus Miopia OS 20/30 20/40',
|
|
'note' => $miopia_os_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_miopia_od_30_40','visus Miopia OD 20/30 20/40');
|
|
}
|
|
if (isset($exp_value_os[1]) && intval($exp_value_os[1]) > 50) {
|
|
$data_insert = array(
|
|
'code' => 'visus_miopia_os_over_50',
|
|
'label' => 'visus Miopia OS > 20/50',
|
|
'note' => $miopia_os_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_miopia_ods_over_50','visus Miopia ODS > 20/50');
|
|
}
|
|
}
|
|
|
|
if ($astigmatismus_od) {
|
|
$data_insert = array(
|
|
'code' => 'visus_astigmatismus_od',
|
|
'label' => 'visus Astigmatismus OD',
|
|
'note' => $astigmatismus_od_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_astigmatismus_od','visus Astigmatismus OD');
|
|
}
|
|
if ($astigmatismus_os) {
|
|
$data_insert = array(
|
|
'code' => 'visus_astigmatismus_os',
|
|
'label' => 'visus Astigmatismus OS',
|
|
'note' => $astigmatismus_os_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_astigmatismus_os','visus Astigmatismus OS');
|
|
}
|
|
if ($astigmatismus_od && $astigmatismus_os) {
|
|
$data_insert = array(
|
|
'code' => 'visus_astigmatismus_ods',
|
|
'label' => 'visus Astigmatismus ODS',
|
|
'note' => $astigmatismus_os_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_astigmatismus_ods','visus Astigmatismus ODS');
|
|
}
|
|
if ($x_od) {
|
|
$data_insert = array(
|
|
'code' => 'visus_x_od',
|
|
'label' => 'visus X OD',
|
|
'note' => $x_od_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_x_od','visus X OD');
|
|
}
|
|
if ($x_os) {
|
|
$data_insert = array(
|
|
'code' => 'visus_x_os',
|
|
'label' => 'visus X OS',
|
|
'note' => $x_od_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_x_os','visus X OS');
|
|
}
|
|
if ($presbiopia_ods) {
|
|
$data_insert = array(
|
|
'code' => 'visus_presbiopia_ods',
|
|
'label' => 'visus Presbiopia ODS',
|
|
'note' => $presbiopia_ods_value,
|
|
'segment' => 'visus',
|
|
'category' => 'mata',
|
|
'order_id' => $orderID
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('visus_presbiopia_ods','visus Presbiopia ODS');
|
|
}
|
|
return $errors;
|
|
}
|
|
|
|
function keluhan($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'fisik_keluhan'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/keluhan'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'fisik_keluhan',
|
|
'category' => ''
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']);
|
|
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function riwayat_penyakit($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'fisik_penyakit'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/riwayat_penyakit'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $value['segment_name'],
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$value['segment_name']);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function penyakit_keluarga($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'fisik_penyakitkeluarga'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/penyakit_keluarga'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
$results = [];
|
|
$options = $value['options'];
|
|
foreach ($options as $ko => $vo) {
|
|
if ($vo['selected'] == '1')
|
|
$results[] = $vo['label'];
|
|
}
|
|
|
|
if (count($results) > 0) {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => join(", ", $results),
|
|
'segment' => $value['table_name'],
|
|
'category' => $value['table_name'],
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']);
|
|
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
|
|
function kebiasaan_hidup($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'fisik_kebiasaanhidup'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $value['segment_name'],
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$value['segment_name']);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function fisik_konsumsiobatteratur($id, $userid)
|
|
{
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'fisik_konsumsiobatteratur'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/fisik_konsumsiobatteratur'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $value['table_name'],
|
|
'category' => $value['table_name']
|
|
);
|
|
$this->insert_data_etl($data_insert, $userid);
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']);
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
|
|
function imunasi($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'fisik_riwayatimunisasi'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/imunasi'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $value['segment_name'],
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$value['segment_name']);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function vital_sign($id, $userid)
|
|
{
|
|
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'tanda_vital'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/vital_sign'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
//return $datas;
|
|
//exit;
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['id_code'] == 'tanda_vital_5') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'] . '_1',
|
|
'label' => $value['label_x'],
|
|
'note' => $value['value_x'],
|
|
'segment' => 'tekanan_darah',
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code($value['id_code'].'_1',$value['label_x']);
|
|
$rst[] = $data_insert;
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'] . '_2',
|
|
'label' => $value['label_y'],
|
|
'note' => $value['value_y'],
|
|
'segment' => 'tekanan_darah',
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code($value['id_code'].'_2',$value['label_y']);
|
|
$rst[] = $data_insert;
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => 'tekanan_darah_conclusion',
|
|
'label' => $value['standart'],
|
|
'note' => $value['value'],
|
|
'segment' => 'tekanan_darah',
|
|
'category' => $value['table_name']
|
|
);
|
|
//echo 'tekanan_darah_conclusion: '.$value['value'];
|
|
//exit;
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code('tekanan_darah_conclusion',$value['label_y']);
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
if ($value['id_code'] == 'tanda_vital_6') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['chx_y'] == '1' ? $value['label_y'] : $value['label_x'],
|
|
'note' => $value['value'],
|
|
'segment' => 'suhu',
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code($value['id_code'],'Suhu');
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
if ($value['id_code'] == 'tanda_vital_1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'denyut_nadi',
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code($value['id_code'],$value['label']);
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
if ($value['id_code'] == 'tanda_vital_2') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['chx_y'] == '1' ? $value['label_y'] : $value['label_x'],
|
|
'note' => $value['value'],
|
|
'segment' => 'ritme_denyut_nadi',
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code($value['id_code'],'Denyut Nadi');
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
if ($value['id_code'] == 'tanda_vital_3') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'laju_pernafasan',
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code($value['id_code'],$value['label']);
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
if ($value['id_code'] == 'tanda_vital_4') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['chx_y'] == '1' ? $value['label_y'] : $value['label_x'],
|
|
'note' => $value['value'],
|
|
'segment' => 'pola_nafas',
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
//$this->insert_code($value['id_code'],'Pola Nafas');
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
//echo json_encode($rst);
|
|
//exit;
|
|
|
|
return $errors;
|
|
}
|
|
|
|
|
|
function keadaan_umum($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'keadaan_umum'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/keadaan_umum'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx_x'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'] + '_x',
|
|
'label' => $value['label_x'],
|
|
'note' => $value['value'],
|
|
'segment' => $value['table_name'],
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
}
|
|
if ($value['chx_y'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'] . '_y',
|
|
'label' => $value['label_y'],
|
|
'note' => $value['value'],
|
|
'segment' => $value['table_name'],
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
}
|
|
|
|
////$this->insert_code($value['id_code'],'Keadaan Umum');
|
|
$rst[] = $data_insert;
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function kepala_wajah($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'kepala_wajah'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/kepala_wajah'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1' && $value['is_normal'] == 'N') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $value['table_name'],
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | '.$value['table_name']);
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function mata($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'mata'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/mata'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'mata',
|
|
'category' => 'mata'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | Mata");
|
|
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function lapang_pandang($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'lapang_pandang'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/lapang_pandang'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
$value_data = $details[0];
|
|
|
|
if ($value_data['chx_x'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => 'lapang_pandang_x',
|
|
'label' => $value_data['label_x'],
|
|
'note' => $value_data['value'],
|
|
'segment' => 'lapang_pandang',
|
|
'category' => 'lapang_pandang'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
if ($value_data['chx_y'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => 'lapang_pandang_y',
|
|
'label' => $value_data['label_y'],
|
|
'note' => $value_data['value'],
|
|
'segment' => 'lapang_pandang',
|
|
'category' => 'lapang_pandang'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code('lapang_pandang_x','Lapang Pandang Tidak Normal');
|
|
//$this->insert_code('lapang_pandang_y','Lapang Pandang Normal');
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function telinga($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'telinga'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/telinga'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'telinga',
|
|
'category' => 'telinga'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Telinga');
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function hidung($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'hidung'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/hidung'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'hidung',
|
|
'category' => 'hidung'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Hidung');
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function gigi($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'gigi'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/gigi'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'gigi',
|
|
'category' => 'gigi'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Gigi');
|
|
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function mulut($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'mukosa_rongga_mulut'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/mulut'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
$segment = strtolower(str_replace(" ", "_", $value['segment_name']));
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function leher($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'leher'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/leher'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'leher',
|
|
'category' => 'leher'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Leher');
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function thorax($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'thorax'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/thorax'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'thorax',
|
|
'category' => 'thorax'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Thorax');
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function paru($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'paru'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/paru'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'paru',
|
|
'category' => 'paru'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Paru');
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function jantung($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'jantung'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/jantung'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
$segment = strtolower(str_replace(" ", "_", str_replace("/", "", $value['segment_name'])));
|
|
if ($value['chx'] == '1') {
|
|
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function perut($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'perut'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/perut'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
if ($v['name'] != 'Hernia' && $v['name'] != 'Pengukuran') {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
$segment = strtolower(str_replace(" ", "_", $v['name']));
|
|
if ($value['chx'] == '1') {
|
|
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
}
|
|
}
|
|
|
|
if ($v['name'] == 'Hernia') {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['id_code'] == 'perut_13') {
|
|
if ($value['chx'] == '1') {
|
|
$segment = strtolower(str_replace(" ", "_", $v['name']));
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Hernia '.$segment);
|
|
}
|
|
|
|
if ($value['id_code'] == 'perut_14') {
|
|
$segment = strtolower(str_replace(" ", "_", $v['name']));
|
|
if ($value['chx'] == '1') {
|
|
$child_details = $value['details'];
|
|
foreach ($child_details as $kx => $vx) {
|
|
if ($vx['id_code'] == 'perut_14_1') {
|
|
if ($vx['chx_value'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $vx['id_code'],
|
|
'label' => $vx['label'],
|
|
'note' => '',
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | Hernia '.$segment);
|
|
}
|
|
|
|
if ($vx['id_code'] != 'perut_14_1') {
|
|
if ($vx['chx_a_value'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $vx['id_code'] . '_' . $vx['chx_a_label'],
|
|
'label' => $vx['label'],
|
|
'note' => $vx['chx_a_label'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
|
|
if ($vx['chx_b_value'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $vx['id_code'] . '_' . $vx['chx_b_label'],
|
|
'label' => $vx['label'],
|
|
'note' => $vx['chx_b_label'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($vx['id_code'].'_'.$vx['chx_a_label'],$value['label'].' | Hernia '.$segment);
|
|
//$this->insert_code($vx['id_code'].'_'.$vx['chx_b_label'],$value['label'].' | Hernia '.$segment);
|
|
}
|
|
|
|
}
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
if ($v['name'] == 'Hernia') {
|
|
$details = $v['details'];
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function sistem_integumen($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'sistem_integumen'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/sistem_integumen'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
$segment = strtolower(str_replace(" ", "_", $value['segment_name']));
|
|
if ($value['chx'] == '1') {
|
|
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function genitourinaria($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'genitourinaria'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/genitourinaria'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => 'genitourinaria',
|
|
'category' => 'genitourinaria'
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' Genitourinaria');
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function anggota_gerak($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'anggota_gerak'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/anggota_gerak'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$segment = strtolower(str_replace(" ", "_", str_replace("/", "", $value['segment_name'])));
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function sistem_persyarafan($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'sistem_persyarafan'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/sistem_persyarafan'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$segment = strtolower(str_replace(" ", "_", str_replace("&", "", $value['segment_name'])));
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function smell_test($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'smell_test'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/smell_test'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$segment = strtolower(str_replace(" ", "_", $value['segment_name']));
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function low_back_pain_screening_test($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
FisikTemplateTableName = 'low_back_pain_screening_test'
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/low_back_pain_screening_test'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
//echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$header_details = $valdata['details'];
|
|
//print_r($header_details);
|
|
foreach ($header_details as $k => $v) {
|
|
$details = $v['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$segment = strtolower(str_replace(" ", "_", $value['segment_name']));
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => $value['value'],
|
|
'segment' => $segment,
|
|
'category' => $value['table_name']
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label']." | ".$segment);
|
|
}
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function k3($type, $id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rst = [];
|
|
$sql = "SELECT *
|
|
FROM fisik_template
|
|
JOIN so_resultentry_fisik_umum ON So_ResultEntryFisikUmumFisikTemplateID = FisikTemplateID AND
|
|
So_ResultEntryFisikUmumT_OrderHeaderID = ? AND So_ResultEntryFisikUmumIsActive = 'Y'
|
|
WHERE
|
|
FisikTemplateIsActive = 'Y' AND
|
|
`FisikTemplateType` = 'k3' AND
|
|
FisikTemplateTableName = ?
|
|
ORDER BY FisikTemplateCode ASC
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($id, $type));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_FISIK_TEMPLATE', 'genkelainan/k3'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['id' => $id]));
|
|
$errors[] = "SELECT_FISIK_TEMPLATE";
|
|
}
|
|
// echo $this->db_smartone->last_query();
|
|
$datas = $qry->result_array();
|
|
if ($datas && count($datas) > 0) {
|
|
$order_header_id = $datas[0]['So_ResultEntryFisikUmumT_OrderHeaderID'];
|
|
$valdata = json_decode($datas[0]['So_ResultEntryFisikUmumDetails'], true);
|
|
$details = $valdata['details'];
|
|
foreach ($details as $key => $value) {
|
|
if ($value['chx'] == '1') {
|
|
$data_insert = array(
|
|
'order_id' => $order_header_id,
|
|
'code' => $value['id_code'],
|
|
'label' => $value['label'],
|
|
'note' => '',
|
|
'segment' => $type,
|
|
'category' => $type
|
|
);
|
|
$errors = array_merge($errors, $this->insert_data_etl($data_insert, $userid));
|
|
$rst[] = $data_insert;
|
|
}
|
|
//$this->insert_code($value['id_code'],$value['label'].' | '.$type);
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
function loop_k3($id, $userid)
|
|
{
|
|
$errors = [];
|
|
$rspn = [];
|
|
$arr = ['faktor_fisik', 'faktor_kimia', 'faktor_biologi', 'faktor_ergonomi', 'faktor_psikologi'];
|
|
foreach ($arr as $key => $value) {
|
|
$rtn = $this->k3($value, $id, $userid);
|
|
if (count($rtn) > 0)
|
|
$errors = array_merge($errors, $rtn);
|
|
}
|
|
return $errors;
|
|
}
|
|
|
|
function generate_summaries($orderID, $userID, $debugID = 0)
|
|
{
|
|
$errors = [];
|
|
$sql = "UPDATE t_kelainan_fisik SET
|
|
T_KelainanFiskIsActive = 'N',
|
|
T_KelainanFiskDeletedUserID = ? ,
|
|
T_KelainanFiskDeleted = NOW()
|
|
WHERE
|
|
T_KelainanFiskT_OrderHeaderID = ? AND
|
|
T_KelainanFiskIsActive = 'Y'";
|
|
$query = $this->db_smartone->query($sql, [
|
|
$userID,
|
|
$orderID
|
|
]);
|
|
if (!$query) {
|
|
$prm_log = ['UPDATE_T_KELAINAN_FISIK', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "UPDATE_T_KELAINAN_FISIK";
|
|
}
|
|
$kelainanrst = [];
|
|
$sql = "SELECT *
|
|
FROM mcu_fisiksummary
|
|
JOIN mcu_kelainan ON Mcu_kelainanID = Mcu_FisikSummaryMcu_KelainanID
|
|
WHERE Mcu_FisikSummaryIsActive = 'Y'";
|
|
$query = $this->db_smartone->query($sql);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_MCU_FISIKSUMMARY', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_MCU_FISIKSUMMARY";
|
|
}
|
|
$rumus_summaries = $query->result_array();
|
|
|
|
foreach ($rumus_summaries as $key => $value) {
|
|
$results = [];
|
|
$sql = "SELECT *
|
|
FROM mcu_fisiksummarydetail
|
|
WHERE
|
|
Mcu_FisikSummaryDetailMcu_FisikSummaryID = ? AND
|
|
Mcu_FisikSummaryDetailIsActive = 'Y'";
|
|
|
|
$query = $this->db_smartone->query($sql, [$value['Mcu_FisikSummaryID']]);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_MCU_FISIKSUMMARYDETAIL', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_MCU_FISIKSUMMARYDETAIL";
|
|
}
|
|
$details = $query->result_array();
|
|
foreach ($details as $k => $v) {
|
|
if ($v['Mcu_FisikSummaryDetailType'] == 'VK') {
|
|
$sql = "SELECT *
|
|
FROM mcu_fisikvalue
|
|
WHERE
|
|
Mcu_FisikValueT_OrderHeaderID = ? AND
|
|
Mcu_FisikValueIsActive = 'Y' AND
|
|
Mcu_FisikValueCode = ? AND
|
|
Mcu_FisikValueNote = ?";
|
|
$query = $this->db_smartone->query($sql, [$orderID, $v['Mcu_FisikSummaryDetailCode'], $value['Mcu_KelainanName']]);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_MCU_FISIKVALUE', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_MCU_FISIKVALUE";
|
|
}
|
|
|
|
$exist_rows = $query->result_array();
|
|
$return_x = false;
|
|
if (count($exist_rows) > 0) {
|
|
$return_x = true;
|
|
}
|
|
$results[] = $return_x;
|
|
}
|
|
|
|
if ($v['Mcu_FisikSummaryDetailType'] == 'V') {
|
|
$sql = "SELECT *
|
|
FROM mcu_fisikvalue
|
|
JOIN mcu_fisiksummarydetail
|
|
ON Mcu_FisikSummaryDetailIsActive = 'Y'
|
|
AND Mcu_FisikSummaryDetailCode = Mcu_FisikValueCode
|
|
AND Mcu_FisikValueCode = ?
|
|
AND Mcu_FisikSummaryDetailType = 'V'
|
|
JOIN mcu_fisiksummary
|
|
ON Mcu_FisikSummaryDetailMcu_FisikSummaryID = Mcu_FisikSummaryID
|
|
AND Mcu_FisikSummaryMcu_KelainanID = ?
|
|
WHERE Mcu_FisikValueT_OrderHeaderID = ?
|
|
AND Mcu_FisikValueIsActive = 'Y'
|
|
AND Mcu_FisikSummaryDetailValue REGEXP CONCAT('(^|, )', TRIM(Mcu_FisikValueNote), '(,|$)')";
|
|
$query = $this->db_smartone->query($sql, [$v['Mcu_FisikSummaryDetailCode'], $value['Mcu_KelainanID'], $orderID]);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_MCU_FISIKVALUE', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_MCU_FISIKVALUE";
|
|
}
|
|
if ($value['Mcu_FisikSummaryID'] == $debugID) {
|
|
echo $this->db_smartone->last_query();
|
|
}
|
|
$exist_rows = $query->result_array();
|
|
$return_x = false;
|
|
if (count($exist_rows) > 0) {
|
|
$return_x = true;
|
|
}
|
|
$results[] = $return_x;
|
|
}
|
|
|
|
if ($v['Mcu_FisikSummaryDetailType'] == 'C') {
|
|
$sql = "SELECT *
|
|
FROM mcu_fisikvalue
|
|
WHERE
|
|
Mcu_FisikValueT_OrderHeaderID = ? AND
|
|
Mcu_FisikValueIsActive = 'Y' AND
|
|
Mcu_FisikValueCode = ?";
|
|
$query = $this->db_smartone->query($sql, [$orderID, $v['Mcu_FisikSummaryDetailCode']]);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_MCU_FISIKVALUE', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_MCU_FISIKVALUE";
|
|
}
|
|
if ($value['Mcu_FisikSummaryID'] == $debugID) {
|
|
echo $this->db_smartone->last_query();
|
|
}
|
|
|
|
$exist_rows = $query->result_array();
|
|
$return_x = false;
|
|
if (count($exist_rows) > 0) {
|
|
$return_x = true;
|
|
}
|
|
$results[] = $return_x;
|
|
}
|
|
}
|
|
|
|
$is_kelainan = false;
|
|
if ($value['Mcu_FisikSummaryType'] == "AND") {
|
|
if (!in_array(false, $results))
|
|
$is_kelainan = true;
|
|
|
|
}
|
|
if ($value['Mcu_FisikSummaryType'] == "OR") {
|
|
if (in_array(true, $results))
|
|
$is_kelainan = true;
|
|
|
|
}
|
|
|
|
if ($is_kelainan) {
|
|
|
|
$sql = "INSERT INTO t_kelainan_fisik(
|
|
T_KelainanFiskT_OrderHeaderID,
|
|
T_KelainanFiskMcu_KelainanID,
|
|
T_KelainanFiskMcu_FisikSummaryID,
|
|
T_KelainanFiskCreatedUserID,
|
|
T_KelainanFiskCreated
|
|
) VALUES(?,?,?,?,NOW())";
|
|
$query = $this->db_smartone->query($sql, [
|
|
$orderID,
|
|
$value['Mcu_FisikSummaryMcu_KelainanID'],
|
|
$value['Mcu_FisikSummaryID'],
|
|
$userID
|
|
]);
|
|
if (!$query) {
|
|
$prm_log = ['INSERT_T_KELAINAN_FISIK', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "INSERT_T_KELAINAN_FISIK";
|
|
}
|
|
$kelainanrst[] = array(
|
|
'id' => $value['Mcu_FisikSummaryMcu_KelainanID'],
|
|
'name' => $value['Mcu_KelainanName']
|
|
);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
function generateKesimpulanSaran($id, $debug = 'N')
|
|
{
|
|
//get kelainan nonlab
|
|
$sql = "SELECT
|
|
T_KelainanNonLabID AS kelainanNonlabID,
|
|
T_KelainanNonLabT_OrderHeaderID as orderID,
|
|
Mcu_KelainanID as kelainanID,
|
|
T_KelainanNonLabMcu_SummaryNonlabID As summaryID,
|
|
Mcu_KelainanName as kelainanName,
|
|
fn_get_translate_word_separator_comma(Mcu_KelainanName,2) as kelainanNameEng,
|
|
'NONLAB' as type
|
|
FROM
|
|
t_kelainan_nonlab
|
|
JOIN mcu_summarynonlab
|
|
ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
|
AND T_KelainanNonLabT_OrderHeaderID = ?
|
|
AND T_KelainanNonLabIsActive = 'Y'
|
|
JOIN mcu_kelainan
|
|
ON Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
|
AND Mcu_KelainanIsActive = 'Y'
|
|
GROUP BY Mcu_KelainanID
|
|
";
|
|
$query = $this->db_smartone->query($sql, [$id]);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_T_KELAINAN_NONLAB', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_T_KELAINAN_NONLAB";
|
|
}
|
|
|
|
$kelainanNonlab = $query->result_array();
|
|
|
|
//get kelainan lab
|
|
$sql = "SELECT
|
|
T_KelainanLabID as kelainanLabID,
|
|
T_KelainanLabT_OrderHeaderID as orderID,
|
|
Mcu_KelainanID as kelainanID,
|
|
Mcu_SummaryLabID as summaryID,
|
|
Mcu_KelainanName as kelainanName,
|
|
fn_get_translate_word_separator_comma(Mcu_KelainanName,2) as kelainanNameEng,
|
|
'LAB' as type
|
|
FROM t_kelainan_lab
|
|
JOIN mcu_summarylab
|
|
ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
|
AND Mcu_SummaryLabIsActive = 'Y'
|
|
AND T_KelainanLabT_OrderHeaderID = ?
|
|
JOIN mcu_kelainan
|
|
ON Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
|
AND Mcu_KelainanIsActive = 'Y'
|
|
AND T_KelainanLabIsActive = 'Y'
|
|
GROUP BY Mcu_KelainanID
|
|
";
|
|
$query = $this->db_smartone->query($sql, [$id]);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_T_KELAINAN_LAB', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_T_KELAINAN_LAB";
|
|
}
|
|
$kelainanLab = $query->result_array();
|
|
|
|
//get kelainan fisik
|
|
$sql = "SELECT
|
|
T_KelainanFiskID as kelainanFisikID,
|
|
T_KelainanFiskT_OrderHeaderID orderID,
|
|
Mcu_FisikSummaryID summaryID,
|
|
Mcu_KelainanID as kelainanID ,
|
|
Mcu_KelainanName as kelainanName,
|
|
fn_get_translate_word_separator_comma(Mcu_KelainanName,2) as kelainanNameEng,
|
|
'FISIK' as type
|
|
FROM t_kelainan_fisik
|
|
JOIN mcu_fisiksummary
|
|
ON T_KelainanFiskMcu_FisikSummaryID = Mcu_FisikSummaryID
|
|
AND Mcu_FisikSummaryIsActive = 'Y'
|
|
AND T_KelainanFiskT_OrderHeaderID = ?
|
|
AND T_KelainanFiskIsActive = 'Y'
|
|
JOIN mcu_kelainan
|
|
ON Mcu_FisikSummaryMcu_KelainanID = Mcu_KelainanID
|
|
AND Mcu_KelainanIsActive = 'Y'
|
|
GROUP BY Mcu_KelainanID
|
|
";
|
|
$query = $this->db_smartone->query($sql, [$id]);
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_T_KELAINAN_FISIK', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_T_KELAINAN_FISIK";
|
|
}
|
|
$kelainanFisik = $query->result_array();
|
|
|
|
$arrMcuKelainanID = array();
|
|
$arrMcuKelainanIDEng = array();
|
|
$kesimpulan = "";
|
|
$counterKesimpulan = 1;
|
|
$conclusion = "";
|
|
$counterConclusion = 1;
|
|
for ($i = 0; $i < count($kelainanNonlab); $i++) {
|
|
$kesimpulan .= "- " . $kelainanNonlab[$i]['kelainanName'] . "\n";
|
|
$counterKesimpulan += 1;
|
|
array_push($arrMcuKelainanID, $kelainanNonlab[$i]['kelainanID']);
|
|
|
|
$conclusion .= "- " . $kelainanNonlab[$i]['kelainanNameEng'] . "\n";
|
|
$counterConclusion += 1;
|
|
array_push($arrMcuKelainanIDEng, $kelainanNonlab[$i]['kelainanNameEng']);
|
|
}
|
|
for ($i = 0; $i < count($kelainanLab); $i++) {
|
|
$kesimpulan .= "- " . $kelainanLab[$i]['kelainanName'] . "\n";
|
|
$counterKesimpulan += 1;
|
|
array_push($arrMcuKelainanID, $kelainanLab[$i]['kelainanID']);
|
|
|
|
$conclusion .= "- " . $kelainanLab[$i]['kelainanNameEng'] . "\n";
|
|
$counterConclusion += 1;
|
|
array_push($arrMcuKelainanIDEng, $kelainanLab[$i]['kelainanNameEng']);
|
|
}
|
|
for ($i = 0; $i < count($kelainanFisik); $i++) {
|
|
$kesimpulan .= "- " . $kelainanFisik[$i]['kelainanName'] . "\n";
|
|
$counterKesimpulan += 1;
|
|
array_push($arrMcuKelainanID, $kelainanFisik[$i]['kelainanID']);
|
|
|
|
$conclusion .= "- " . $kelainanFisik[$i]['kelainanNameEng'] . "\n";
|
|
$counterConclusion += 1;
|
|
array_push($arrMcuKelainanIDEng, $kelainanFisik[$i]['kelainanNameEng']);
|
|
}
|
|
//get kelainan saran nonlab
|
|
$sql = "SELECT
|
|
Nat_AdvicekelainanID adviceID,
|
|
Nat_AdvicekelainanMcu_KelainanID mcuKelainanID,
|
|
Nat_AdviceIna saranIna,
|
|
IF(Nat_AdviceEng = '',Nat_AdviceIna, Nat_AdviceEng) saranEng,
|
|
fn_get_translate_word_separator_comma(Nat_AdviceIna,2) as translate_eng
|
|
FROM nat_advice_kelainan
|
|
JOIN nat_advice
|
|
ON Nat_AdvicekelainanNat_AdviceID = Nat_AdviceID
|
|
AND Nat_AdvicekelainanMcu_KelainanID IN ?
|
|
AND Nat_AdviceIsActive = 'Y'
|
|
AND Nat_AdvicekelainanIsActive = 'Y'
|
|
group by Nat_AdviceIna
|
|
";
|
|
|
|
$query = $this->db_smartone->query($sql, [$arrMcuKelainanID]);
|
|
//echo $this->db_smartone->last_query();
|
|
if (!$query) {
|
|
$prm_log = ['SELECT_NAT_ADVICE_KELAINAN', 'genkelainan/generate_summaries'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode(['orderID' => $orderID]));
|
|
$errors[] = "SELECT_NAT_ADVICE_KELAINAN";
|
|
}
|
|
$arrSaran = $query->result_array();
|
|
if (count($arrSaran) > 0) {
|
|
foreach ($arrSaran as $key => $value) {
|
|
$adv = $value['saranEng'];
|
|
if (trim($adv) == '' || $adv == $value['saranIna']) {
|
|
$adv = $value['translate_eng'];
|
|
}
|
|
$arrSaran[$key]['saranEng'] = $adv;
|
|
}
|
|
}
|
|
|
|
$saran = "";
|
|
$counterSaran = 1;
|
|
$advice = "";
|
|
$counterAdvice = 1;
|
|
for ($i = 0; $i < count($arrSaran); $i++) {
|
|
$saran .= "- " . $arrSaran[$i]['saranIna'] . "\n";
|
|
$counterSaran += 1;
|
|
$advice .= "- " . $arrSaran[$i]['saranEng'] . "\n";
|
|
$counterAdvice += 1;
|
|
}
|
|
if ($debug == 'Y') {
|
|
$this->sys_ok(array(
|
|
"kesimpulan" => $kesimpulan,
|
|
"saran" => $saran,
|
|
"advice" => $advice,
|
|
"conclusion" => $conclusion,
|
|
));
|
|
}
|
|
else {
|
|
return array(
|
|
"kesimpulan" => $kesimpulan,
|
|
"saran" => $saran,
|
|
"advice" => $advice,
|
|
"conclusion" => $conclusion,
|
|
);
|
|
}
|
|
}
|
|
|
|
function generate_fitness_category($orderID)
|
|
{
|
|
$sql = " SELECT 'lab' as type,
|
|
T_KelainanLabID,
|
|
Mcu_KelainanName,
|
|
fn_get_translate_word_separator_comma(Mcu_KelainanName,2) as Mcu_KelainanNameEng,
|
|
Mcu_FitnessCategoryID,
|
|
Mcu_FitnessCategoryName,
|
|
Mcu_FitnessCategoryEng,
|
|
Mcu_FitnessCategoryLevel,
|
|
Nat_TestName
|
|
FROM t_kelainan_lab
|
|
JOIN mcu_summarylab ON T_KelainanLabMcu_SummaryLabID = Mcu_SummaryLabID
|
|
JOIN mcu_kelainan ON Mcu_summaryLabMcu_KelainanID = Mcu_KelainanID
|
|
JOIN mcu_fitness_category ON Mcu_SummaryLabMcu_FitnessCategoryID = Mcu_FitnessCategoryID
|
|
JOIN nat_test ON Mcu_SummaryLabNat_TestID = Nat_TestID
|
|
WHERE
|
|
T_KelainanLabT_OrderHeaderID = ? AND
|
|
T_KelainanLabIsActive= 'Y'
|
|
UNION
|
|
SELECT 'nonlab' as type,
|
|
T_KelainanNonLabID,
|
|
Mcu_KelainanName,
|
|
fn_get_translate_word_separator_comma(Mcu_KelainanName,2) as Mcu_KelainanNameEng,
|
|
Mcu_FitnessCategoryID,
|
|
Mcu_FitnessCategoryName,
|
|
Mcu_FitnessCategoryEng,
|
|
Mcu_FitnessCategoryLevel,
|
|
Nat_TestName
|
|
FROM t_kelainan_nonlab
|
|
JOIN mcu_summarynonlab ON T_KelainanNonLabMcu_SummaryNonlabID = Mcu_SummaryNonlabID
|
|
JOIN mcu_kelainan ON Mcu_SummaryNonlabMcu_KelainanID = Mcu_KelainanID
|
|
JOIN mcu_fitness_category ON Mcu_SummaryNonlabMcu_FitnessCategoryID = Mcu_FitnessCategoryID
|
|
JOIN nat_test ON Mcu_SummaryNonlabNat_TestID = Nat_TestID
|
|
WHERE
|
|
T_KelainanNonLabT_OrderHeaderID = ? AND
|
|
T_KelainanNonLabIsActive= 'Y'
|
|
UNION
|
|
SELECT 'fisik' as type,
|
|
T_KelainanFiskID,
|
|
Mcu_KelainanName,
|
|
fn_get_translate_word_separator_comma(Mcu_KelainanName,2) as Mcu_KelainanNameEng,
|
|
Mcu_FitnessCategoryID,
|
|
Mcu_FitnessCategoryName,
|
|
Mcu_FitnessCategoryEng,
|
|
Mcu_FitnessCategoryLevel,
|
|
GROUP_CONCAT(CONCAT(Mcu_FisikValueLabel,'|',Mcu_FisikValueSegment,'|',Mcu_FisikValueCategory)) as Nat_TestName
|
|
FROM t_kelainan_fisik
|
|
JOIN mcu_fisiksummary ON T_KelainanFiskMcu_FisikSummaryID = Mcu_FisikSummaryID
|
|
JOIN mcu_kelainan ON Mcu_FisikSummaryMcu_KelainanID = Mcu_KelainanID
|
|
JOIN mcu_fitness_category ON Mcu_FisikSummaryMcu_FitnessCategoryID = Mcu_FitnessCategoryID
|
|
JOIN mcu_fisiksummarydetail ON Mcu_FisikSummaryDetailMcu_FisikSummaryID = Mcu_FisikSummaryID AND
|
|
Mcu_FisikSummaryDetailIsActive = 'Y'
|
|
JOIN mcu_fisikvalue ON Mcu_FisikValueT_OrderHeaderID = T_KelainanFiskT_OrderHeaderID AND
|
|
Mcu_FisikSummaryDetailCode = Mcu_FisikValueCode AND Mcu_FisikValueIsActive = 'Y'
|
|
WHERE
|
|
T_KelainanFiskT_OrderHeaderID = ? AND
|
|
T_KelainanFiskIsActive = 'Y'
|
|
GROUP BY T_KelainanFiskID";
|
|
$query = $this->db_smartone->query($sql, array($orderID, $orderID, $orderID));
|
|
//echo $this->db_smartone->last_query();
|
|
$rtn = $query->result_array();
|
|
$status = array("id" => "1", "name" => "BAIK", "name_eng" => "FIT FOR WORK", "level" => "1");
|
|
if (count($rtn) > 0) {
|
|
$max = 0;
|
|
foreach ($rtn as $key => $value) {
|
|
if (intval($value['Mcu_FitnessCategoryLevel']) > $max) {
|
|
$max = intval($value['Mcu_FitnessCategoryLevel']);
|
|
$status = array("id" => $value['Mcu_FitnessCategoryID'], "name" => $value['Mcu_FitnessCategoryName'], "name_eng" => $value['Mcu_FitnessCategoryEng'], "level" => $value['Mcu_FitnessCategoryLevel']);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
return array("status" => $status, "data" => $rtn);
|
|
}
|
|
|
|
function translate_word($word, $langid = 1)
|
|
{
|
|
if ($langid == 1) {
|
|
return $word;
|
|
}
|
|
else {
|
|
$sql = "SELECT * FROM translate_word WHERE Translate_WordIsActive = 'Y' AND Translate_WordFrom = '{$word}'";
|
|
//echo $sql;
|
|
$qry = $this->db_smartone->query($sql);
|
|
if (!$qry) {
|
|
return $word;
|
|
}
|
|
|
|
$rows = $qry->result_array();
|
|
if (count($rows) > 0) {
|
|
return $rows[0]["Translate_WordTo"];
|
|
}
|
|
else {
|
|
return $word;
|
|
}
|
|
}
|
|
}
|
|
|
|
function translate_multiline_text($text, $langid = 1)
|
|
{
|
|
// Split the text into lines
|
|
$lines = explode("\n", $text);
|
|
|
|
// Translate each line
|
|
$translated_lines = array_map(function ($line) use ($langid) {
|
|
// Remove the leading "- " and translate the rest
|
|
$trimmed_line = ltrim($line, "- ");
|
|
return "- " . $this->translate_sentence($trimmed_line, $langid);
|
|
}, $lines);
|
|
|
|
// Join the translated lines back into a multiline string
|
|
return implode("\n", $translated_lines);
|
|
}
|
|
|
|
function translate_sentence($sentence, $langid = 1)
|
|
{
|
|
// Split the sentence into words
|
|
$words = preg_split('/[\s-]+/', $sentence);
|
|
|
|
// Translate each word
|
|
$translated_words = array_map(function ($word) use ($langid) {
|
|
return $this->translate_word($word, $langid);
|
|
}, $words);
|
|
|
|
// Join the translated words back into a sentence
|
|
return implode(' ', $translated_words);
|
|
}
|
|
|
|
function insert_data_etl($data, $userid)
|
|
{
|
|
$errors = [];
|
|
if ($data) {
|
|
|
|
/*$sql = "UPDATE mcu_fisikvalue SET
|
|
Mcu_FisikValueIsActive = 'N',
|
|
Mcu_FisikValueLastUpdated = NOW() ,
|
|
Mcu_FisikValueLastUpdatedUserID = ?
|
|
WHERE
|
|
Mcu_FisikValueT_OrderHeaderID = ? AND
|
|
Mcu_FisikValueCode = ? AND
|
|
Mcu_FisikValueIsActive = 'Y'";
|
|
$qry = $this->db_smartone->query($sql,array($userid,$data['order_id'],$data['code']));
|
|
if (! $qry) {
|
|
return false;
|
|
}*/
|
|
|
|
$sql = "SELECT COUNT(*) as xcount, Mcu_FisikValueID as id
|
|
FROM mcu_fisikvalue
|
|
WHERE
|
|
Mcu_FisikValueT_OrderHeaderID = ? AND
|
|
Mcu_FisikValueCode = ?
|
|
LIMIT 1
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($data['order_id'], $data['code']));
|
|
if (!$qry) {
|
|
$prm_log = ['SELECT_MCU_FISIKVALUE', 'genkelainan/insert_data_etl'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($data));
|
|
$errors[] = "SELECT_MCU_FISIKVALUE";
|
|
|
|
}
|
|
|
|
//echo $this->db_smartone->last_query();
|
|
//print_r($data);
|
|
//echo $data['code'];
|
|
/*if($data['code'] == 'bmi_classification_asia_pacific'){
|
|
echo $this->db_smartone->last_query();
|
|
}*/
|
|
|
|
$exist_dt = $qry->row_array();
|
|
/*if($data['code'] == 'bmi_classification_asia_pacific'){
|
|
print_r($exist_dt);
|
|
}*/
|
|
|
|
if ($exist_dt['xcount'] > 0) {
|
|
$sql = "UPDATE mcu_fisikvalue SET
|
|
Mcu_FisikValueIsActive = 'Y',
|
|
Mcu_FisikValueLastUpdated = NOW() ,
|
|
Mcu_FisikValueLastUpdatedUserID = ?,
|
|
Mcu_FisikValueLabel = ?,
|
|
Mcu_FisikValueNote = ?,
|
|
Mcu_FisikValueSegment = ?,
|
|
Mcu_FisikValueCategory = ?
|
|
WHERE
|
|
Mcu_FisikValueID = ?
|
|
";
|
|
$qry = $this->db_smartone->query($sql, array($userid, $data['label'], $data['note'], $data['segment'], $data['category'], $exist_dt['id']));
|
|
if (!$qry) {
|
|
$prm_log = ['UPDATE_MCU_FISIKVALUE', 'genkelainan/insert_data_etl'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($data));
|
|
$errors[] = "UPDATE_MCU_FISIKVALUE";
|
|
}
|
|
}
|
|
else {
|
|
$sql = "INSERT INTO mcu_fisikvalue (
|
|
`Mcu_FisikValueT_OrderHeaderID`,
|
|
`Mcu_FisikValueCode`,
|
|
`Mcu_FisikValueLabel`,
|
|
`Mcu_FisikValueNote`,
|
|
`Mcu_FisikValueSegment`,
|
|
`Mcu_FisikValueCategory`,
|
|
`Mcu_FisikValueCreated`,
|
|
`Mcu_FisikValueCreatedUserID`
|
|
) VALUES(?,?,?,?,?,?,NOW(),?)";
|
|
$qry = $this->db_smartone->query($sql, array(
|
|
$data['order_id'],
|
|
$data['code'],
|
|
$data['label'],
|
|
$data['note'],
|
|
$data['segment'],
|
|
$data['category'],
|
|
$userid
|
|
));
|
|
if (!$qry) {
|
|
$prm_log = ['INSERT_MCU_FISIKVALUE', 'genkelainan/insert_data_etl'];
|
|
$xsql = $this->db_smartone->last_query();
|
|
$log_error = $this->insert_log_error($xsql, $prm_log, json_encode($data));
|
|
$errors[] = "INSERT_MCU_FISIKVALUE";
|
|
}
|
|
}
|
|
}
|
|
return $errors;
|
|
}
|
|
|
|
function insert_log_error($log_sql, $params, $data = '')
|
|
{
|
|
// Membersihkan SQL dari \r\n dan whitespace berlebih
|
|
//$clean_log_sql = trim(str_replace(["\r\n", "\r", "\n"], ' ', $log_sql));
|
|
|
|
$sql = "INSERT INTO one_lab_log.error_log(
|
|
ErrorLogCode,
|
|
ErrorLogName,
|
|
ErrorLogDescription,
|
|
ErrorLogData,
|
|
ErrorLogOrderCreated
|
|
)
|
|
VALUES(
|
|
?,?,?,?,NOW()
|
|
)";
|
|
|
|
$query = $this->db_smartone->query($sql, [$params[0], $params[1], $log_sql, json_encode($data)]);
|
|
// echo $this->db_log->last_query();
|
|
if (!$query) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
} |