"; echo "order [instrumentID] [Nomor Reg]:\n Untuk melihat Status Order\n\n"; echo "reset_order [instrumentID] [Nomor Reg]:\n Untuk Mereset Order\n\n"; } function cek($nolab, $test = "ALL") { $sql = "select * from t_orderheader where T_OrderHeaderLabNumber = ?"; $qry = $this->db->query($sql, [$nolab]); if (!$qry) { $this->query_error(); exit; } $rows = $qry->result_array(); if (count($rows) == 0) { echo "
No Order found.\n";
exit;
}
$orderID = $rows[0]["T_OrderHeaderID"];
$sql = "select T_OrderDetailID, T_OrderDetailT_TestName, T_OrderDetailNat_InstrumentID ,
Nat_InstrumentName, T_OrderDetailResult
from t_orderdetail
left join nat_instrument on
T_OrderDetailIsActive = 'Y'
and T_OrderDetailNat_InstrumentID = Nat_InstrumentID
where T_OrderDetailT_OrderHeaderID = ?
";
$qry = $this->db->query($sql, [$orderID]);
if (!$qry) {
$this->query_error();
exit;
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "No Order Detail found.\n";
exit;
}
$fields = array_keys($rows[0]);
$this->print_table($rows, $fields);
}
function raw($rawID)
{
$sql = "select Nat_InstrumentName, itf_RawDate, concat('', Itf_RawData, '
') RawData
from itf_raw
join nat_instrument on Nat_InstrumentID = Itf_RawNat_InstrumentID
where itf_RawID=?";
$qry = $this->db->query($sql, [$rawID]);
if (!$qry) {
$this->query_error();
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "No Parsing Record found.\n";
exit();
}
$fields = array_keys($rows[0]);
$this->print_table($rows, $fields);
$sql = "select
Itf_ResultInstrumentDate, Itf_ResultNoreg, Itf_ResultKode, Itf_ResultResult, Itf_ResultIsSent, itf_ResultBacteri, itf_ResultAnti
from itf_result where Itf_ResultItf_RawID = ?";
$qry = $this->db->query($sql, [$rawID]);
if (!$qry) {
$this->query_error();
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "No Record found.\n";
echo $this->db->last_query();
exit();
}
$fields = array_keys($rows[0]);
$this->print_table($rows, $fields);
}
function incoming($instrumentID, $nolab)
{
$sample = $nolab . "%";
$sql = "select
Itf_ResultInstrumentDate, Itf_ResultNoreg, Itf_ResultAssay, Itf_ResultResult, ItfResultRawID
from itf_result
where Itf_ResultNoreg like ?
and Itf_ResultNat_InstrumentID=?";
$qry = $this->db->query($sql, [$sample, $instrumentID]);
if (!$qry) {
$this->query_error();
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "No Record found.\n";
echo $this->db->last_query();
exit();
}
$fields = array_keys($rows[0]);
$this->print_table($rows, $fields);
}
public function print_table_style()
{
echo "
";
}
public function print_table($rows, $keys)
{
$this->print_table_style();
echo "| $k | "; } echo "
| " . $r[$k] . " | "; } echo "
No Record found.\n";
echo $this->db->last_query();
exit();
}
$fields = array_keys($rows[0]);
$this->print_table($rows, $fields);
}
public function query_error()
{
echo "Erro Query : " . $this->db->error()["message"] . "\n";
echo $this->db->last_query();
exit();
}
public function reset_order($instrumentID, $nolab, $status = "N")
{
echo "";
$sql = "call sp_itf_order_reset(?,?,?)";
try {
$qry = $this->db->query($sql, [$instrumentID, $nolab, $status]);
if ($qry) {
echo json_encode(["status" => "OK", "message" => ""]);
} else {
$msg = print_r($this->db->error(), true);
echo json_encode(["status" => "OK", "message" => $msg]);
}
} catch (exception $e) {
echo json_encode(["status" => "ERR", "message" => $e->message()]);
}
}
public function order_api_v2($instrumentID, $sampleID)
{
$sql = "call sp_itf_order_v2(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID, $sampleID));
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK", "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK", "order" => array())
);
}
} catch (exception $e) {
echo json_encode(
array("status" => "ERR", "message" => $e->message())
);
}
}
public function order_api($instrumentID, $sampleID)
{
$sql = "call sp_itf_order(?,?)";
try {
$qry = $this->db->query($sql, array($instrumentID, $sampleID));
if (isset($qry->result_id->num_rows)) {
$rows = $qry->result_array();
echo json_encode(
array("status" => "OK", "order" => $rows)
);
} else {
echo json_encode(
array("status" => "OK", "order" => array())
);
}
} catch (exception $e) {
echo json_encode(
array("status" => "ERR", "message" => $e->message())
);
}
}
public function order($instrumentID, $nolab)
{
$sql = " select
T_BarcodeLabT_OrderHeaderID, T_BarcodeLabT_SampleTypeID ,
T_BarcodeLabBarcode
from t_barcodelab
where T_BarcodeLabBarcode like concat(?,'%')
and T_BarcodeLabIsActive ='Y'
order by T_BarcodeLabID desc
limit 0,1; ";
$qry = $this->db->query($sql, [$nolab]);
if (!$qry) {
echo "ERR select order :\n";
print_r($this->db->error());
exit();
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "Checking Order from rujukan";
$sql = " select
T_BarcodeLabT_OrderHeaderID, T_BarcodeLabT_SampleTypeID ,
T_BarcodeLabBarcodeOrigin
from t_barcodelab
where T_BarcodeLabBarcodeOrigin like concat(?,'%')
and T_BarcodeLabIsActive ='Y'
limit 0,1";
$qry = $this->db->query($sql, [$nolab]);
if (!$qry) {
echo "ERR select order :\n";
print_r($this->db->error());
exit();
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "Checking Order from rujukan WorkAround";
//02208301DCSK
$nolab_only = substr($nolab, 0, 10);
$sample = substr($nolab, 10, 2);
$sql = "select concat(T_OrderHeaderLabNumber,?) Nolab
from t_orderheaderaddon
join t_orderheader on T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
and T_OrderHeaderIsActive = 'Y'
where T_OrderHeaderAddOnLabNumberOrigin= ?
and T_OrderHeaderAddOnIsActive = 'Y'";
$qry = $this->db->query($sql, [$sample, $nolab_only]);
if (!$qry) {
echo "ERR select order WorkAround :\n";
print_r($this->db->error());
exit();
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "ERR order not found : noreg $nolab\n";
exit();
}
$new_nolab = $rows[0]["Nolab"];
$sql = " select
T_BarcodeLabT_OrderHeaderID, T_BarcodeLabT_SampleTypeID ,
T_BarcodeLabBarcode
from t_barcodelab
where T_BarcodeLabBarcode like concat(?,'%')
and T_BarcodeLabIsActive ='Y'
order by T_BarcodeLabID desc
";
$qry = $this->db->query($sql, [$new_nolab]);
if (!$qry) {
echo "ERR select order :\n";
print_r($this->db->error());
exit();
}
$rows = $qry->result_array();
print_r($rows);
if (count($rows) == 0) {
echo "ERR order not found : noreg $nolab\n";
exit();
}
$r = $rows[0];
$barcode = $r["T_BarcodeLabBarcode"];
} else {
$r = $rows[0];
$barcode = $r["T_BarcodeLabBarcode"];
}
} else {
$r = $rows[0];
$barcode = $r["T_BarcodeLabBarcode"];
}
$orderHeaderID = $r["T_BarcodeLabT_OrderHeaderID"];
$sampleTypeID = $r["T_BarcodeLabT_SampleTypeID"];
$sql = "select if(@flagOrigin, T_OrderHeaderAddOnLabNumberOrigin,
T_OrderHeaderLabNumber) T_OrderHeaderLabNumber,
concat(M_TitleName,' ', M_PatientName)
M_PatientName,
concat(M_DoctorPrefix, if(M_DoctorPrefix <> '' , ' ','') ,
M_DoctorPrefix2,if(M_DoctorPrefix2 <> '' , ' ',''),
M_DoctorName,
M_DoctorSufix) M_DoctorName,
replace(M_PatientDob,'-','') M_PatientDob,
T_OrderHeaderM_PatientAge, T_OrderHeaderDate ,
M_PatientNoReg,
case
when M_SexCode = 'P' then 'F'
when M_SexCode = 'L' then 'M'
else M_SexCode
end Sex
from t_orderheader
join t_orderheaderaddon on T_OrderHeaderID = T_OrderHeaderAddOnT_OrderHeaderID
join m_patient on T_OrderHeaderID =?
and M_PatientID = T_OrderHeaderM_PatientID
and T_OrderHeaderIsActive = 'Y'
and M_PatientIsActive = 'Y'
join m_sex on M_PatientM_SexID = M_SexID
join m_title on M_PatientM_TitleID = M_TitleID
join m_doctor on T_OrderHeaderSenderM_DoctorID = M_DoctorID ";
$qry = $this->db->query($sql, [$orderHeaderID]);
if (!$qry) {
echo "ERR select order :\n";
$this->query_error();
}
$rows = $qry->result_array();
$r = $rows[0];
$noreg = $r["T_OrderHeaderLabNumber"];
$pasien = $r["M_PatientName"];
$dokter = $r["M_DoctorName"];
$dob = $r["M_PatientDob"];
$orderDate = $r["T_OrderHeaderDate"];
$sex = $r["M_SexCode"];
$pid = $r["pid"];
$this->print_table([$r], array_keys($r));
echo "Assay
";
$sql = "select
T_OrderDetailAddOnID,T_OrderDetailT_TestName, M_InstrumentAssayCode,T_OrderDetailAddOnFlagIsRunning,
if(T_OrderDetailAddOnFlagIsRunning='N','-',T_OrderDetailAddOnRunDate)
T_OrderDetailAddOnRunDate,
Nat_InstrumentName
from
m_instrumentassay
join t_test on M_InstrumentAssayNat_TestID = T_TestNat_TestID
and M_InstrumentAssayNat_InstrumentID = ?
and M_InstrumentAssayIsActive = 'Y'
and M_InstrumentAssaySentToInstrument ='Y'
and (
T_TestT_SampleTypeID = ? or
fn_sampletype_from_local(T_TestNat_TestID) = ?
)
join t_orderdetail on T_OrderDetailT_OrderHeaderID = ?
and T_OrderDetailT_TestID = T_TestID and T_OrderDetailIsActive = 'Y'
join t_orderdetailaddon on T_OrderDetailID = T_OrderDetailAddOnT_OrderDetailID
left join nat_instrument on T_OrderDetailAddOnRunNat_InstrumentID = Nat_InstrumentID
";
$qry = $this->db->query($sql, [
$instrumentID,
$sampleTypeID,
$sampleTypeID,
$orderHeaderID,
]);
if (!$qry) {
echo "ERR select Assay :\n";
$this->query_error();
exit();
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "No Assay.";
echo "" . $this->db->last_query() . "
";
exit();
}
$f = array_keys($rows[0]);
$this->print_table($rows, $f);
}
}