db_onedev = $this->load->database("onedev", true); } function kesimpulanv4($orderHeaderID, $langid = 1) { //mata visus gigi $sql = "select So_ResultEntryID,So_ResultEntrySo_TemplateName from so_resultentry where So_ResultEntryT_OrderHeaderID= ? and So_ResultEntryIsActive = 'Y'"; $qry = $this->db->query($sql, [$orderHeaderID]); if (!$qry) { return ["", "", ""]; } $rows = $qry->result_array(); $id = 0; foreach ($rows as $r) { if ($r["So_ResultEntrySo_TemplateName"] == "FISIK UMUM") { $id = $r["So_ResultEntryID"]; break; } if (substr($r["So_ResultEntrySo_TemplateName"], 0, 5) == "FISIK") { $id = $r["So_ResultEntryID"]; break; } } $sql = "SELECT * FROM so_resultentry_fisik_umum WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ? AND So_ResultEntryFisikUmumM_LangID = ? AND So_ResultEntryFisikUmumType = 'riwayat' "; $qry = $this->db->query($sql, array($id, $langid)); $data_rows = $qry->result_array(); if (count($data_rows) == 0) return ''; $riwayat_data = json_decode($data_rows[0]["So_ResultEntryFisikUmumDetails"], true); $kode_gigi = array( "X" => "Berlubang", "C" => "Tambalan", "O" => "Tanggal", "R" => "Sisa akar", "A" => "Gigi Palsu", "K" => "Karang Gigi" ); $sql = "SELECT so_resultentry_fisik_umum.*, M_SexCode FROM so_resultentry_fisik_umum JOIN so_resultentry ON So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID JOIN t_orderheader ON So_ResultEntryT_OrderHeaderID = T_OrderHeaderID JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN m_sex ON M_PatientM_SexID = M_SexID WHERE So_ResultEntryFisikUmumSo_ResultEntryID = ? AND So_ResultEntryFisikUmumM_LangID = ? AND So_ResultEntryFisikUmumType = 'fisik'"; $qry = $this->db->query($sql, array($id, $langid)); $rows = $qry->result_array(); if (count($rows) == 0) return ''; $data = json_decode($rows[0]["So_ResultEntryFisikUmumDetails"], true); $sexcode = $rows[0]["M_SexCode"]; $kesimpulan_mata = ""; $kesimpulan_visus = ""; $kesimpulan_gigi = ""; foreach ($data as $da) { if ($da["title"] == "MATA") { $rst_x = ''; foreach ($da["details"] as $db) { if ($db["chx"] == "1" && $db["is_normal"] == "N" && $db["label"] != "Lain-lain") { if ($rst_x != "") $rst_x .= ", "; $rst_x .= $db["label"] . " " . $db["value"]; } if ($db["label"] == "Lain-lain" && $db["chx"] == "1") { if ($rst_x != "") $rst_x .= ", "; $rst_x .= $db["value"]; } } if ($rst_x !== '') { $kesimpulan_mata .= ucwords(strtolower($da["title"])) . " : " . $rst_x; } } if ($da["title"] == "VISUS JAUH") { $s_rst = ''; foreach ($da["details"] as $db) { $str_data = ""; $r_ods = ''; $xr_ods = array(); $kelainan = ''; foreach ($db['details'] as $dc) { if ($dc['chx'] == '1' && $dc['segment_name'] == 'Tanpa kacamata' && ($dc['value'] != '' && $dc['value'] != '6/6')) { $r_ods .= $dc['label'] . " : " . $dc['value'] . " "; array_push($xr_ods, $dc['value']); } if ($dc['chx'] == '1' && $dc['segment_name'] == 'Dengan kacamata' && $dc['value'] != '') { if ($dc['value'] != '6/6') $r_ods .= $dc['label'] . " : " . $dc['value'] . " "; array_push($r_ods); array_push($xr_ods, $dc['value']); } } //print_r($xr_ods); if (!empty($xr_ods)) { if ($db['name'] == 'Tanpa kacamata') { $kelainan = "Kelainan Refraksi"; $str_data .= $kelainan . " " . $db['name']; } if ($db['name'] == 'Dengan kacamata') { $all66 = true; foreach ($xr_ods as $xd => $xv) { if ($xv != '6/6') { $all66 = false; } } if ($all66) { $kelainan = "Kelainan Refraksi Terkoreksi"; } else { $kelainan = "Kelainan Refraksi"; } if ($r_ods != '') $str_data .= $kelainan . " " . $db['name']; else $str_data .= $kelainan . " " . $db['name']; } $s_rst .= $str_data; } //echo $str_data; } if ($s_rst != "") { $kesimpulan_visus .= $s_rst; } } if ($da["title"] == "GIGI") { $arr_gigi = array(); foreach ($da["details"] as $db) { foreach ($db["details"] as $dc) { $dc["value"] = strtoupper($dc["value"]); if ($dc["value"] != "" && isset($kode_gigi[$dc["value"]])) { $value = $kode_gigi[$dc["value"]]; if (!isset($arr_gigi[$value])) $arr_gigi[$value] = array(); $kode = $dc["id_code"]; $pos = substr($kode, -1); if (strpos($kode, "atas")) { if (strpos($kode, "kiri")) { $arr_gigi[$value][] = "└" . $pos; } else { $arr_gigi[$value][] = $pos . "┘"; } } else { if (strpos($kode, "kiri")) { $arr_gigi[$value][] = "┌" . $pos; } else { $arr_gigi[$value][] = $pos . "┐"; } } } } } $r_gigi = ""; foreach ($arr_gigi as $v => $g) { if ($r_gigi != "") $r_gigi .= " "; $r_gigi .= " " . $v . " " . join(",", $g) . " "; } if ($r_gigi != "") { $kesimpulan_gigi .= $r_gigi; // $r_gigi = ""; // foreach ($arr_gigi as $v => $g) { // if ($r_gigi != "") $r_gigi .= "
"; // $r_gigi .= "" . $v . " " . join(",", $g) . ""; // } // if ($r_gigi != "") { // $kesimpulan_gigi .= $r_gigi; } } } $result = [$kesimpulan_mata, $kesimpulan_visus, $kesimpulan_gigi]; return $result; } function json($orderID) { $start = $start . " 00:00:01"; $end = $end . " 23:59:59"; $sql = "select T_OrderHeaderID from t_orderheader where T_OrderHeaderIsActive = 'Y' and T_OrderHeaderID=? "; $qry = $this->db->query($sql, array($orderID)); if (!$qry) { //Error Query $db_err = $this->db->error(); echo json_encode(array( "status" => "ERR", "message" => $db_err["message"] )); exit; } $rows = $qry->result_array(); $sid = "0"; foreach ($rows as $r) { $sid .= ", " . $r["T_OrderHeaderID"]; } $sql = "select fn_global_patient_name(T_OrderHeaderM_PatientID) M_PatientName, fn_get_patient_atribute(T_OrderHeaderM_PatientID) attr, T_OrderHeaderDate,T_OrderHeaderLabNumber, -- T_OrderHeaderLabNumberExt, T_OrderHeaderM_PatientAge, '' M_CompanyName, '' M_MouName, T_TestName, -- So_ResultEntryFisikUmumType, So_ResultEntryFisikUmumDetails from t_orderheader -- join m_company on T_OrderHeaderM_CompanyID = M_CompanyID -- join m_mou on T_OrderHeaderM_MouID = M_MouID join t_orderdetail on T_OrderDetailT_OrderHeaderID= T_OrderHeaderID and T_OrderDetailIsActive = 'Y' join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' and T_TestNat_GroupID = '4' join so_resultentry on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and So_ResultEntryT_OrderDetailID = T_OrderDetailID join so_resultentry_fisik_umum on So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID where T_OrderHeaderID in ($sid) order by So_ResultEntryFisikUmumID "; $qry = $this->db->query($sql); if (!$qry) { //Error Query $db_err = $this->db->error(); echo json_encode(array( "status" => "ERR", "message" => $db_err["message"] )); exit; } $rows = $qry->result_array(); $data = array(); $new_d = array(); $a_title = array(); $have_gigi = false; list($kesimpulan_mata, $kesimpulan_visus, $kesimpulan_gigi) = $this->kesimpulanv4($orderID); foreach ($rows as $r) { $attr = json_decode($r["attr"], true); unset($r["attr"]); $r_details = json_decode($r["So_ResultEntryFisikUmumDetails"], true); unset($r["So_ResultEntryFisikUmumDetails"]); //$new_r = array(); $is_gigi = false; foreach ($r_details as $idx => $d) { $details = $d["details"]; if (isset($d["details"])) unset($d["details"]); $d["T_TestName"] = $r["T_TestName"]; $d["T_OrderHeaderDate"] = $r["T_OrderHeaderDate"]; $d["T_OrderHeaderLabNumber"] = $r["T_OrderHeaderLabNumber"]; $d["T_OrderHeaderLabNumberExt"] = $r["T_OrderHeaderLabNumberExt"]; $d["M_PatientName"] = $r["M_PatientName"]; $d["M_PatientDOB"] = $attr["M_PatientDOB"]; $d["M_PatientAge"] = $r["T_OrderHeaderM_PatientAge"]; $d["M_SexName"] = $attr["M_SexName"]; $d["M_CompanyName"] = $r["M_CompanyName"]; $d["M_MouName"] = $r["M_MouName"]; $d["So_ResultEntryFisikUmumType"] = $r["So_ResultEntryFisikUmumType"]; /* if ($d["title"] == "GIGI") { $dx = $details[0]; $dy = $dx["details"][0]; $dy["label"] = "kesimpulan"; $dy["value"] = $this->hasil_gigi($dx["details"]); $new_d[] = array_merge($d,$dy); continue; } */ foreach ($details as $dx) { if (isset($dx["details"])) { $dy_details = $dx["details"]; unset($dx["details"]); foreach ($dy_details as $dy_detail) { if ( $d["title"] == "ANGGOTA GERAK" || $d["title"] == "MULUT" || $d["title"] == "JANTUNG" || $d["title"] == "PERUT / ABDOMEN" || $d["title"] == "SISTEM PERSYARAFAN" || $d["title"] == "SISTEM INTEGUMEN" ) { if ($dy_detail["chx"] == "1") { $dy_detail["value"] = $dy_detail["label"]; $dy_detail["label"] = $dy_detail["segment_name"]; $new_d[] = array_merge($d, $dx, $dy_detail); } } //if ($dy["value"] == "") continue; if (isset($dy_detail["unit"]) && isset($dy_detail["value"])) { $dy_detail["value"] = $dy_detail["value"] . " " . $dy_detail["unit"]; } if ($d["title"] == "VISUS JAUH") { $dy_detail["kesimpulan"] = $kesimpulan_visus; } if ($d["title"] == "GIGI") { // if (!$have_gigi) { // $dy_detail["label"] = "kesimpulan"; // $dy_detail["value"] = $this->hasil_gigi($dy_details); // $new_d[] = array_merge($d, $dx, $dy_detail); // } if ($kesimpulan_gigi != "" && !$is_gigi) { $is_gigi = true; $dy_detail["label"] = "kesimpulan"; $dy_detail["value"] = $kesimpulan_gigi; $new_d[] = array_merge($d, $dx, $dy_detail); } $have_gigi = true; } else { $new_d[] = array_merge($d, $dx, $dy_detail); } } } else { if ($dx["value"] != "") { if (isset($dx["unit"]) && isset($dx["value"])) { $dx["value"] = $dx["value"]; } $new_d[] = array_merge($d, $dx); } if ($dx["chx_y"] == 1) { $dx["value"] = $dx["label_y"]; $new_d[] = array_merge($d, $dx); } if ($dx["chx_x"] == 1) { $dx["value"] = $dx["label_x"]; $new_d[] = array_merge($d, $dx); } if ($dx["chx"] == 1) { $dx["value"] = $dx["label"] . " " . $d["value"]; $new_d[] = array_merge($d, $dx); } } } //$new_r[] = $new_d; } } $x_d = usort($new_d, array("Fisik01", "cmp")); echo json_encode($new_d); } function hasil_gigi($da) { $arr_gigi = array(); foreach ($da["details"] as $db) { foreach ($db["details"] as $dc) { $dc["value"] = strtoupper($dc["value"]); if ($dc["value"] != "" && isset($kode_gigi[$dc["value"]])) { $value = $kode_gigi[$dc["value"]]; if (!isset($arr_gigi[$value])) $arr_gigi[$value] = array(); $kode = $dc["id_code"]; $pos = substr($kode, -1); if (strpos($kode, "atas")) { if (strpos($kode, "kiri")) { $arr_gigi[$value][] = "└" . $pos; } else { $arr_gigi[$value][] = $pos . "┘"; } } else { if (strpos($kode, "kiri")) { $arr_gigi[$value][] = "┌" . $pos; } else { $arr_gigi[$value][] = $pos . "┐"; } } } } } $r_gigi = ""; foreach ($arr_gigi as $v => $g) { if ($r_gigi != "") $r_gigi .= "\n"; $r_gigi .= $v . " " . join(",", $g); } return $r_gigi; } function cmp($a, $b) { $a_key = substr($a["title"], 1, 3) . "-" . $a["label"]; $b_key = substr($b["title"], 1, 3) . "-" . $b["label"]; return strcmp($a_key, $b_key); } function json_single($headerID) { $sql = "select fn_global_patient_name(T_OrderHeaderM_PatientID) M_PatientName, fn_get_patient_atribute(T_OrderHeaderM_PatientID) attr, T_OrderHeaderDate,T_OrderHeaderLabNumber, T_OrderHeaderLabNumberExt,T_OrderHeaderM_PatientAge, ' ' M_CompanyName, M_MouName, T_TestName, So_ResultEntryFisikUmumType, So_ResultEntryFisikUmumDetails from t_orderheader -- join m_company on T_OrderHeaderM_CompanyID = M_CompanyID join m_mou on T_OrderHeaderM_MouID = M_MouID join t_orderdetail on T_OrderDetailT_OrderHeaderID= T_OrderHeaderID and T_OrderDetailIsActive = 'Y' join t_test ON T_TestID = T_OrderDetailT_TestID and T_TestIsActive = 'Y' and T_TestNat_GroupID = '4' join so_resultentry on So_ResultEntryT_OrderHeaderID = T_OrderHeaderID and So_ResultEntryT_OrderDetailID = T_OrderDetailID join so_resultentry_fisik_umum on So_ResultEntryFisikUmumSo_ResultEntryID = So_ResultEntryID where T_OrderHeaderID =?"; $qry = $this->db->query($sql, array($headerID)); if (!$qry) { //Error Query $db_err = $this->db->error(); echo json_encode(array( "status" => "ERR", "message" => $db_err["message"] )); exit; } $rows = $qry->result_array(); $data = array(); echo "
";
    $new_d = array();
    foreach ($rows as $r) {
      $attr = json_decode($r["attr"], true);
      unset($r["attr"]);
      $r_details = json_decode($r["So_ResultEntryFisikUmumDetails"], true);
      unset($r["So_ResultEntryFisikUmumDetails"]);
      $new_r = array();
      foreach ($r_details as $idx => $d) {
        $details = $d["details"];
        unset($d["details"]);
        $d["T_TestName"] = $r["T_TestName"];
        $d["T_OrderHeaderDate"] = $r["T_OrderHeaderDate"];
        $d["T_OrderHeaderLabNumber"] = $r["T_OrderHeaderLabNumber"];
        $d["T_OrderHeaderLabNumberExt"] = $r["T_OrderHeaderLabNumberExt"];
        $d["M_PatientName"] = $r["M_PatientName"];
        $d["M_PatientDOB"] = $attr["M_PatientDOB"];
        $d["M_PatientAge"] = $r["T_OrderHeaderM_PatientAge"];
        $d["M_SexName"] = $attr["M_SexName"];
        $d["M_CompanyName"] = $r["M_CompanyName"];
        $d["M_MouName"] = $r["M_MouName"];

        $d["So_ResultEntryFisikUmumType"] = $r["So_ResultEntryFisikUmumType"];
        foreach ($details as $dx) {
          if (isset($dx["details"])) {
            $dy_details = $dx["details"];
            unset($dx["details"]);
            foreach ($dy_details as $dy_detail) {
              if (isset($dy_detail["unit"]) && isset($dy_detail["value"])) {
                $dy_detail["value"] = $dy_detail["value"];
              }
              $new_d[] = array_merge($d, $dx, $dy_detail);
            }
          } else {
            if (isset($dx["unit"]) && isset($dx["value"])) {
              $dx["value"] = $dx["value"];
            }
            $new_d[] = array_merge($d, $dx);
          }
        }
        $new_r[] = $new_d;
      }
    }
    print_r($new_d);
  }
}