908 lines
52 KiB
PHP
908 lines
52 KiB
PHP
<?php
|
|
if (!session_id()) {
|
|
session_start();
|
|
}
|
|
|
|
require_once 'main.php';
|
|
require_once('SQLServerDb.php');
|
|
|
|
$db_pec = new SQLServerDb(
|
|
$_ENV['PEC_DB_USER'],
|
|
$_ENV['PEC_DB_PASS'],
|
|
$_ENV['PEC_DB_NAME'],
|
|
$_ENV['PEC_DB_HOST']
|
|
);
|
|
$post = $_REQUEST;
|
|
|
|
if (array_key_exists('list_pec', $post) && $post['list_pec'] == true) {
|
|
global $db_pec;
|
|
global $db;
|
|
|
|
$tgl = (array_key_exists('tgl_awal', $post)) ? $post['tgl_awal'] : null;
|
|
$jam_awal = (array_key_exists('jam_awal', $post)) ? $post['jam_awal'] : null;
|
|
$jam_akhir = (array_key_exists('jam_akhir', $post)) ? $post['jam_akhir'] : null;
|
|
$nomr = (array_key_exists('nomr', $post)) ? $post['nomr'] : null;
|
|
$nobill = (array_key_exists('nobill', $post)) ? $post['nobill'] : null;
|
|
$ruang = (array_key_exists('ruang', $post)) ? $post['ruang'] : null;
|
|
|
|
$where_nomr = ($nomr != null) ? ' and p.Lab_PatientID = \'' . $nomr . '\'' : null;
|
|
$where_tgl_list = ($tgl != null) ? " and convert(date,r.TestEndDate) = '$tgl' " : '';
|
|
$where_ruang = ($ruang != null) ? " and p.Location like '%$ruang' " : '';
|
|
$where_jam = ($jam_awal != null && $jam_akhir != null) ? " and convert(time,TestEndDate) between '$jam_awal' and '$jam_akhir' " : '';
|
|
$tmp_list_trans = $db_pec->get_results("SELECT p.ID as p_id,p.Lab_PatientID as nomr,p.Location as ruang,r.ID as r_id,r.UnivTestName as DN,r.RValue as rvalue,r.Unit as unit,r.ANormalFlag as normalflah,convert(varchar, r.TestEndDate, 20) as specimen_dttm,op.FirstName,op.LastName
|
|
from Patient as p
|
|
left join Result as r on p.ID = r._PID
|
|
left join Operator as op on r.OperatiorID = op.OperatorID
|
|
where r.RValue <> '' $where_tgl_list $where_nomr $where_ruang $where_jam
|
|
order by r.TestEndDate desc", 'array');
|
|
|
|
if (!empty($tmp_list_trans)) {
|
|
// get list t_poct berdasarkan tanggl
|
|
$where_cek_poct = ($tgl != null) ? "and substring(date_trunc('day',tgl_spesimen::timestamp)::varchar from 1 for 10) = '$tgl'" : '';
|
|
$tmp_poct = $db->query("SELECT p_id,r_id from t_poct where st_aktif = 1 $where_cek_poct ");
|
|
$arr_poct_validated = [];
|
|
if ($tmp_poct->numRows() > 0) {
|
|
foreach ($tmp_poct->fetchAll() as $row) {
|
|
$arr_poct_validated[] = $row['p_id'] . '|' . $row['r_id'];
|
|
}
|
|
}
|
|
|
|
$arr_pasien = [];
|
|
$arr_tempat = ['' => 'Semua Ruang'];
|
|
$no = 1;
|
|
foreach ($tmp_list_trans as $k => $list) {
|
|
// get nobill
|
|
list($ruang, $nama_ruang) = explode('^', $list['ruang']);
|
|
|
|
$arr_tempat[$nama_ruang] = $nama_ruang;
|
|
|
|
if (preg_match("/IRD|IGD/", $nama_ruang)) {
|
|
$get_nobill = $db->query("SELECT nobill from t_billrajal where nomr = '{$list['nomr']}' order by idxbill desc limit 1");
|
|
} else {
|
|
$get_nobill = $db->query("SELECT nobill from t_billranap where nomr = '{$list['nomr']}' order by idxbill desc limit 1");
|
|
}
|
|
$get_nobill = ($get_nobill->numRows() > 0) ? $get_nobill->fetchFirst()['nobill'] : '';
|
|
|
|
// lewati jika sudah tersimpan di tabel t_poct
|
|
if (
|
|
in_array($list['p_id'] . '|' . $list['r_id'], $arr_poct_validated) == true
|
|
|| ($nobill != '' && $get_nobill != $nobill)
|
|
) {
|
|
continue;
|
|
}
|
|
|
|
unset($tmp_list_trans[$k][0]);
|
|
unset($tmp_list_trans[$k][1]);
|
|
unset($tmp_list_trans[$k][2]);
|
|
unset($tmp_list_trans[$k][3]);
|
|
unset($tmp_list_trans[$k][4]);
|
|
unset($tmp_list_trans[$k][5]);
|
|
unset($tmp_list_trans[$k][6]);
|
|
unset($tmp_list_trans[$k][7]);
|
|
unset($tmp_list_trans[$k][8]);
|
|
unset($list[0]);
|
|
unset($list[1]);
|
|
unset($list[2]);
|
|
unset($list[3]);
|
|
unset($list[4]);
|
|
unset($list[5]);
|
|
unset($list[6]);
|
|
unset($list[7]);
|
|
unset($list[8]);
|
|
$arr_pasien[$k] = $list;
|
|
|
|
// get pasien
|
|
$tmp_pasien = $db->query("SELECT nama,tgllahir from m_pasien where nomr = '{$list['nomr']}'");
|
|
if ($tmp_pasien->numRows() > 0) {
|
|
$dt_pasien = $tmp_pasien->fetchFirst();
|
|
$arr_pasien[$k]['nama_pasien'] = $dt_pasien['nama'];
|
|
$arr_pasien[$k]['tgllahir'] = $dt_pasien['tgllahir'];
|
|
} else {
|
|
$arr_pasien[$k]['nama_pasien'] = '';
|
|
$arr_pasien[$k]['tgllahir'] = '';
|
|
}
|
|
|
|
|
|
$arr_pasien[$k]['no'] = $no;
|
|
$arr_pasien[$k]['nobill'] = $get_nobill;
|
|
$no++;
|
|
}
|
|
$form_filter_ruang = form_dropdown("ruang", $arr_tempat, '', 'class="form-control"');
|
|
echo json_encode(['pasien' => $arr_pasien, 'ruang' => $form_filter_ruang]);
|
|
} else {
|
|
echo json_encode(['error' => true, 'msg' => 'Data tidak ditemukan']);
|
|
}
|
|
exit;
|
|
} elseif (array_key_exists('validasi', $post) && $post['validasi'] == true) {
|
|
$form_data = $post['input'];
|
|
$ip = getRealIpAddr();
|
|
|
|
$arr_data = [];
|
|
foreach ($form_data as $input) {
|
|
if ($input['nobill'] != '') {
|
|
$arr_data[] = $input;
|
|
}
|
|
}
|
|
|
|
if (!empty($arr_data)) {
|
|
$arr_error = [];
|
|
foreach ($arr_data as $row) {
|
|
$arr_insert = $row;
|
|
$arr_insert['p_id'] = ['value' => $row['p_id'], 'type' => 'number'];
|
|
$arr_insert['r_id'] = ['value' => $row['r_id'], 'type' => 'number'];
|
|
$arr_insert['nobill'] = ['value' => $row['nobill'], 'type' => 'number'];
|
|
$arr_insert['st_aktif'] = ['value' => 1, 'type' => 'number'];
|
|
$arr_insert['petugas'] = $_SESSION['NIP'];
|
|
$arr_insert['tgl_entri'] = date('Y-m-d H:i:s');
|
|
|
|
$cek_nobill = $db->query("SELECT distinct nobill,brn.nomr,0 as st_rajal,r.no as kd_tl, r.idx_ruang,brn.idxdaftar,brn.carabayar from t_billranap brn
|
|
join t_admission a on brn.idxdaftar = a.id_admission
|
|
join m_ruang r on brn.kdpoly = a.noruang
|
|
where nobill = {$row['nobill']}
|
|
UNION
|
|
SELECT distinct nobill,brj.nomr,1 as st_rajal,r.no as kd_tl,r.idx_ruang,brj.idxdaftar,brj.carabayar from t_billrajal brj
|
|
join t_pendaftaran p on brj.idxdaftar = p.idxdaftar and brj.nomr = p.nomr
|
|
join m_ruang r on brj.kdpoly = p.kdpoly
|
|
where nobill = {$row['nobill']}");
|
|
if ($cek_nobill->numRows() > 0) {
|
|
$dt_bill = $cek_nobill->fetchFirst();
|
|
if (preg_match("/glu/i", $row['jenis_pemeriksaan'])) {
|
|
$kode_tindakan = 'R.LPK.113';
|
|
} else {
|
|
$kode_tindakan = 'R.LPK.113';
|
|
}
|
|
|
|
$query = "INSERT into t_poct " . bind_sql($arr_insert);
|
|
|
|
$save_poct = execute($query);
|
|
|
|
if ($save_poct) {
|
|
$get_tarif = getTarif($kode_tindakan);
|
|
$jasa_sarana = ($get_tarif['jasa_sarana'] != '') ? $get_tarif['jasa_sarana'] : 0;
|
|
$jasa_pelayanan = ($get_tarif['jasa_pelayanan'] != '') ? $get_tarif['jasa_pelayanan'] : 0;
|
|
$jasa_anastesi = ($get_tarif['jasa_anastesi'] != '') ? $get_tarif['jasa_anastesi'] : 0;
|
|
// tambah billing
|
|
$save = "INSERT into tmp_cartbayar " . bind_sql([
|
|
'kodetarif' => $kode_tindakan,
|
|
'ip' => $ip,
|
|
'qty' => ['value' => 1, 'type' => 'number'],
|
|
'poly' => ['value' => $dt_bill['kd_tl'], 'type' => 'number'],
|
|
'unit' => ['value' => $_SESSION['KDUNIT'], 'type' => 'number'],
|
|
'tarif' => ['value' => $get_tarif['jumlah'], 'type' => 'number'],
|
|
'discount' => ['value' => 0, 'type' => 'number'],
|
|
'tottarif' => ['value' => $get_tarif['jumlah'], 'type' => 'number'],
|
|
'jasa_sarana' => ['value' => $jasa_sarana, 'type' => 'number'],
|
|
'jasa_pelayanan' => ['value' => $jasa_pelayanan, 'type' => 'number'],
|
|
'jasa_anastesi' => ['value' => $jasa_anastesi, 'type' => 'number'],
|
|
'kddokter' => ['value' => 'null', 'type' => 'number']
|
|
]);
|
|
|
|
$result_tmp = execute($save . " RETURNING idxbayar");
|
|
$idxbayar = $result_tmp->fetchFirst()['idxbayar'];
|
|
|
|
|
|
if ($dt_bill['st_rajal'] == 1) {
|
|
$bill_lab = new Billing('irja', $row['nomr'], $dt_bill['idxdaftar'], date('Y-m-d'), 0, 0, $dt_bill['carabayar'], $dt_bill['kd_tl'], 0, $_SESSION['KDUNIT']);
|
|
$nota_bill = $bill_lab->simpanBill();
|
|
} else {
|
|
$bill_lab = new Billing('irna', $row['nomr'], $dt_bill['idxdaftar'], date('Y-m-d'), 0, 0, $dt_bill['carabayar'], $dt_bill['kd_tl'], 0, $_SESSION['KDUNIT']);
|
|
$nota_bill = $bill_lab->simpanBill();
|
|
}
|
|
|
|
if ($nota_bill != false) {
|
|
// $msg = 'Simpan pemeriksaan lab berhasil';
|
|
// $type = 'success';
|
|
|
|
// update nonota
|
|
|
|
$query_lab = "UPDATE t_poct set nonota = '$nota_bill' where r_id = {$row['r_id']} and p_id = {$row['p_id']} and nobill = {$row['nobill']} ";
|
|
$save_bill = execute($query_lab);
|
|
|
|
if ($save_bill) {
|
|
$qry_daftar = '';
|
|
$arr_daftar = [];
|
|
$lab_code = $_SESSION['kd_unit_lab_pk'];
|
|
$nourut = last_nolab($lab_code);
|
|
//check no lab
|
|
$tmp_cek = $db->query("SELECT distinct nolab FROM t_orderlabpk_main WHERE NOLAB LIKE '" . $lab_code . date('ym') . "%' ORDER BY NOLAB DESC LIMIT 1");
|
|
if ($tmp_cek->numRows() > 0) {
|
|
$data = $tmp_cek->fetchAll()[0];
|
|
if ($data['nolab'] == $nourut) {
|
|
$nourut = last_nolab($lab_code);
|
|
}
|
|
}
|
|
|
|
$sql_main = "INSERT INTO t_orderlabpk_main(nolab,idxdaftar,nomr,waktu_pengambilan,ket_pemeriksaan,cito,jenis_form,rajal,aps,tglorder,kdpoly,st_periksa) VALUES ('$nourut','{$dt_bill['idxdaftar']}','{$row['nomr']}','{$arr_insert['tgl_spesimen']}','{$arr_insert['jenis_pemeriksaan']}',0,'BIASA',{$dt_bill['st_rajal']},0,'{$arr_insert['tgl_entri']}',{$dt_bill['kd_tl']},1)";
|
|
$tambah_main_order = execute($sql_main);
|
|
/*
|
|
$sql = "SELECT distinct OrderNumber FROM t_lis_registration WHERE OrderNumber LIKE '".$lab_code.date('ym')."%' ORDER BY OrderNumber DESC LIMIT 1";
|
|
$sql = $db->query($sql);
|
|
$PRE_NO = $LASTNOLAB = $xLASTNOLAB = null;
|
|
$PRE_NO = $lab_code.date('ym');
|
|
if($sql->numRows() > 0){
|
|
$row = $sql->fetchFirst();
|
|
$LASTNOLAB = $row['OrderNumber'];
|
|
|
|
if(substr($LASTNOLAB, 6) == '999999') {
|
|
$xLASTNOLAB = '1'.str_pad('0', 6, '0', STR_PAD_LEFT);
|
|
}
|
|
else {
|
|
if(strlen(substr($LASTNOLAB,6)) < 6) {
|
|
$xLASTNOLAB = str_pad( (substr($LASTNOLAB,6)+1), 6, '0', STR_PAD_LEFT);
|
|
}
|
|
else {
|
|
$xLASTNOLAB = str_pad( (substr($LASTNOLAB,6)+1), strlen(substr($LASTNOLAB,6)), '0', STR_PAD_LEFT);
|
|
|
|
}
|
|
}
|
|
$nourut = $PRE_NO.$xLASTNOLAB;
|
|
}
|
|
else {
|
|
$nourut = $PRE_NO.'000001';
|
|
}
|
|
*/
|
|
|
|
// Reference Bridging
|
|
if ($dt_bill['st_rajal']) {
|
|
$qry_daftar = "SELECT kelas_daftar,k.kelas as nama_kelas, diagnosa_utama,jenis_penyakit,kdcarabayar,c.nama as carabayar,d.kddokter,d.namadokter,a.kdpoly,p.nama as namapoly,null as noruang, null as namaruang, null as nott,(select distinct nobill from t_billrajal where idxdaftar = a.idxdaftar limit 1) as nobill from t_pendaftaran a
|
|
LEFT JOIN icd on icd.icd_code = a.diagnosa_utama
|
|
JOIN m_carabayar c on a.kdcarabayar = c.kode
|
|
JOIN m_tarifkelas k on a.kelas_daftar = k.kokel
|
|
JOIN m_dokter d on a.kddokter = d.kddokter
|
|
JOIN m_ruang p on a.kdpoly = p.no
|
|
WHERE idxdaftar = {$dt_bill['idxdaftar']} AND nomr = '{$row['nomr']}'";
|
|
} else {
|
|
$qry_daftar = "SELECT k.kokel as kelas_daftar,r.kelas as nama_kelas,a.icd_masuk as diagnosa_utama,jenis_penyakit,statusbayar as kdcarabayar,c.nama as carabayar,d.kddokter,d.namadokter,null as kdpoly,null as namapoly,noruang,r.nama as namaruang,nott,(select distinct nobill from t_billranap where idxdaftar = a.id_admission limit 1) as nobill FROM t_admission a
|
|
LEFT JOIN icd on icd.icd_code = a.icd_masuk
|
|
JOIN m_carabayar c on a.statusbayar = c.kode
|
|
JOIN m_dokter d on a.dokter_penanggungjawab = d.KDDOKTER
|
|
JOIN m_ruang r on a.noruang = r.no
|
|
JOIN m_tarifkelas k on r.kelas = k.kelas
|
|
WHERE id_admission = {$dt_bill['idxdaftar']} AND nomr = '{$row['nomr']}'";
|
|
}
|
|
|
|
$tmp_daftar = $db->query($qry_daftar);
|
|
$arr_daftar = $tmp_daftar->fetchFirst();
|
|
|
|
// Data Bridging
|
|
$DiagnoseID = (!empty($arr_daftar)) ? $arr_daftar['diagnosa_utama'] : '';
|
|
$DiagnoseName = (!empty($arr_daftar)) ? preg_replace("/\'/", "`", $arr_daftar['jenis_penyakit']) : '';
|
|
$ClassID = (!empty($arr_daftar)) ? $arr_daftar['kelas_daftar'] : 0;
|
|
$ClassName = (!empty($arr_daftar)) ? $arr_daftar['nama_kelas'] : '';
|
|
$DoctorID = (!empty($arr_daftar)) ? $arr_daftar['kddokter'] : 0;
|
|
$DoctorName = (!empty($arr_daftar)) ? $arr_daftar['namadokter'] : '';
|
|
|
|
$AgreementID = (!empty($arr_daftar)) ? $arr_daftar['kdcarabayar'] : 0;
|
|
$AgreementName = (!empty($arr_daftar)) ? $arr_daftar['carabayar'] : '';
|
|
|
|
if ($dt_bill['st_rajal']) {
|
|
$WardID = $arr_daftar['kdpoly'];
|
|
$WardName = $arr_daftar['namapoly'];
|
|
$ServiceUnitID = 2;
|
|
$ServiceUnitName = 'Rawat Jalan';
|
|
$RoomID = 0;
|
|
$RoomName = '';
|
|
$BedID = 0;
|
|
$BedName = '';
|
|
$AgreementID = $arr_daftar['kdcarabayar'];
|
|
$AgreementName = $arr_daftar['carabayar'];
|
|
$GuarantorID = 2;
|
|
$GuarantorName = 'RAWAT JALAN';
|
|
$category_id = 3;
|
|
$category_name = 'POCT';
|
|
} else {
|
|
$WardID = 0;
|
|
$WardName = '';
|
|
$ServiceUnitID = 1;
|
|
$ServiceUnitName = 'Rawat Inap';
|
|
$RoomID = $arr_daftar['noruang'];
|
|
$RoomName = $arr_daftar['namaruang'];
|
|
$BedID = $arr_daftar['nott'];
|
|
$BedName = $arr_daftar['nott'];
|
|
$AgreementID = $arr_daftar['kdcarabayar'];
|
|
$AgreementName = $arr_daftar['carabayar'];
|
|
$GuarantorID = 1;
|
|
$GuarantorName = 'RAWAT INAP';
|
|
$category_id = 3;
|
|
$category_name = 'POCT';
|
|
}
|
|
if (_DBTYPE_ == 'postgre') {
|
|
$cito = '0::bit';
|
|
}
|
|
$arr_LISREG = [
|
|
'NoMR' => $row['nomr'],
|
|
'VisitNumber' => (($arr_daftar['nobill'] != '') ? $arr_daftar['nobill'] : $dt_bill['idxdaftar']),
|
|
'OrderNumber' => $nourut,
|
|
'DiagnoseID' => $DiagnoseID,
|
|
'DiagnoseName' => $DiagnoseName,
|
|
'CITO' => $cito,
|
|
'ServiceUnitID' => $ServiceUnitID, // 1 Ranap, 2 Rajal
|
|
'ServiceUnitName' => $ServiceUnitName, // Rawat Inap, Rawat Jalan
|
|
'GuarantorID' => $GuarantorID, // Penjamin
|
|
'GuarantorName' => $GuarantorName,
|
|
'AgreementID' => $AgreementID,
|
|
'AgreementName' => $AgreementName,
|
|
'DoctorID' => $DoctorID,
|
|
'DoctorName' => $DoctorName,
|
|
'ClassID' => $ClassID,
|
|
'ClassName' => $ClassName,
|
|
'WardID' => $WardID,
|
|
'WardName' => $WardName,
|
|
'RoomID' => $RoomID,
|
|
'RoomName' => $RoomName,
|
|
'BedID' => $BedID,
|
|
'BedName' => $BedName,
|
|
'RegUserID' => $_SESSION['NIP'],
|
|
'RegUserName' => $_SESSION['NAMA_PEGAWAI'],
|
|
'OrderDateTime' => date('Y-m-d H:i:s'),
|
|
'category_id' => $category_id,
|
|
'category_name' => $category_name
|
|
];
|
|
// echo '<pre>',print_r($arr_LISREG),'</pre>';exit;
|
|
$arr_set = array();
|
|
foreach ($arr_LISREG as $key => $value) {
|
|
if (in_array($key, array('CITO', 'ServiceUnitID', 'GuarantorID', 'AgreementID', 'DoctorID', 'ClassID', 'WardID', 'RoomID', 'BedID'))) {
|
|
$value = ($value == '') ? 0 : $value;
|
|
$arr_set[$key] = ['value' => $value, 'type' => 'number'];
|
|
} else {
|
|
$arr_set[$key] = $value;
|
|
}
|
|
}
|
|
$insert_data = "INSERT INTO t_lis_registration " . bind_sql($arr_set);
|
|
|
|
$save_lis = execute($insert_data);
|
|
|
|
if ($save_lis) {
|
|
if (preg_match("/LSP/", $kode_tindakan)) {
|
|
$kode_periksa_lis = $kode_tindakan;
|
|
} else {
|
|
$ex_kode = explode('.', $kode_tindakan);
|
|
$kode_periksa_lis = $ex_kode[1];
|
|
}
|
|
// add item lis
|
|
$arr_LISREGITEM = [];
|
|
$arr_LISREGITEM = [
|
|
'OrderNumber' => $nourut,
|
|
'OrderItemID' => $kode_tindakan,
|
|
'OrderItemName' => preg_replace("/\'/", '`', $get_tarif['uraian_tarif']),
|
|
'OrderItemDateTime' => date('Y-m-d H:i:s')
|
|
];
|
|
|
|
$insert_lis_item = "INSERT INTO t_lis_regorderitem " . bind_sql($arr_LISREGITEM);
|
|
|
|
execute($insert_lis_item);
|
|
}
|
|
}
|
|
} else {
|
|
// $msg = 'Simpan pemeriksaan lab gagal';
|
|
// $type = 'error';
|
|
}
|
|
|
|
//$db->query('DELETE from tmp_cartbayar_detil where idxbayar in (select idxbayar from tmp_cartbayar where IP = \'' . $ip . '\')');
|
|
//$db->query('DELETE from tmp_cartbayar where IP = \'' . $ip . '\'');
|
|
} else {
|
|
$arr_error[] = $row['nobill'];
|
|
}
|
|
} else {
|
|
$arr_error[] = $row['nobill'];
|
|
}
|
|
}
|
|
|
|
if (!empty($arr_error)) {
|
|
$msg = 'Validasi POCT gagal pada beberapa nobill';
|
|
$type = 'error';
|
|
} else {
|
|
$msg = 'Validasi POCT berhasil';
|
|
$type = 'success';
|
|
}
|
|
} else {
|
|
$msg = 'Tidak terdapat nobill yang diproses';
|
|
$type = 'error';
|
|
}
|
|
echo json_encode(['message' => $msg, 'type' => $type]);
|
|
exit;
|
|
} elseif (array_key_exists('hist_pec', $post) && $post['hist_pec'] == true) {
|
|
|
|
$arr_validasi_poct = $db_pec->get_results("SELECT p.ID as p_id,p.Lab_PatientID as nomr,p.Location as ruang,r.ID as r_id,r.UnivTestName as DN,r.RValue as rvalue,r.Unit as unit,
|
|
r.ANormalFlag as normalflah,convert(varchar, r.TestEndDate, 20) as specimen_dttm,op.FirstName,op.LastName
|
|
from Patient as p
|
|
left join Result as r on p.ID = r._PID
|
|
left join Operator as op on r.OperatiorID = op.OperatorID
|
|
where r.RValue <> '' and p.Lab_PatientID = '{$post['nomr']}'
|
|
order by r.TestEndDate desc ", 'array');
|
|
|
|
$html = '<table class="table table-bordered table-striped table-sm" id="tbl_list_item">
|
|
<thead>
|
|
<tr class="bg-green">
|
|
<th width="3%">NO</th>
|
|
<th width="5%">NO MR</th>
|
|
<th width="15%">Nama Pasien</th>
|
|
<th width="8%">Tgl Lahir</th>
|
|
<th width="10%">Tempat Layanan/ Operator</th>
|
|
<th width="5%">Jenis Pemeriksaan</th>
|
|
<th width="10%">Tgl Spesimen</th>
|
|
<th width="5%">Nilai</th>
|
|
<th width="5%">Unit</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>';
|
|
|
|
$no = 1;
|
|
foreach ($arr_validasi_poct as $ind => $item) {
|
|
$tempat = explode('^', $item['ruang']);
|
|
$tempat_layanana = (preg_match('/IRD|IGD/', $tempat[1])) ? 'rajal' : 'ranap';
|
|
$tmp_pasien = $db->query("SELECT nama,tgllahir from m_pasien where nomr = '{$item['nomr']}'");
|
|
$nama_pasien = $tgl_lahir = '';
|
|
if ($tmp_pasien->numRows() > 0) {
|
|
$dt_pasien = $tmp_pasien->fetchFirst();
|
|
$nama_pasien = $dt_pasien['nama'];
|
|
$tgl_lahir = $dt_pasien['tgllahir'];
|
|
}
|
|
|
|
$html .= '<tr>
|
|
<td>' . $no++ . '</td>
|
|
<td>' . $item['nomr'] . '</td>
|
|
<td>' . $nama_pasien . '</td>
|
|
<td>' . $tgl_lahir . '</td>
|
|
<td>' . $tempat[1] . '</td>
|
|
<td>' . $item['FirstName'] . ' ' . $item['LastName'] . '</td>
|
|
<td>' . $item['DN'] . '</td>
|
|
<td>' . $item['rvalue'] . '</td>
|
|
<td>' . $item['unit'] . '</td>
|
|
</tr>';
|
|
}
|
|
|
|
$html .= '</tbody></table>';
|
|
|
|
echo $html;
|
|
exit;
|
|
} elseif (array_key_exists('validate_pec', $post) && $post['validate_pec'] == true) {
|
|
global $db_pec;
|
|
global $db;
|
|
$no_pemeriksaan = !empty($post['norm']) ? " and SUBSTRING(p.Lab_PatientID, 1,8) = '{$post['norm']}'" : '';
|
|
|
|
$tmp_list_trans = $db_pec->get_results("SELECT p.ID as p_id,p.Lab_PatientID as nomr,p.Location as ruang,r.ID as r_id,r.UnivTestName as DN,r.RValue as rvalue,
|
|
r.Unit as unit,r.ANormalFlag as normalflah,convert(varchar, r.TestEndDate, 20) as specimen_dttm,op.FirstName,op.LastName, convert(varchar, p.lastUpdDatetime, 20) as lastUpdDatetime
|
|
from Patient as p
|
|
left join Result as r on p.ID = r._PID
|
|
left join Operator as op on r.OperatiorID = op.OperatorID
|
|
where r.RValue <> '' and convert(date,r.TestEndDate) = '" . $post['tanggal_order'] . "' $no_pemeriksaan
|
|
and LEN(p.Lab_PatientID) >= 10
|
|
order by r.TestEndDate, p.Lab_PatientID desc", 'array');
|
|
|
|
$arr_tempat = ['' => 'Semua Ruang'];
|
|
$arr_pasien = [];
|
|
if (!empty($tmp_list_trans)) {
|
|
$no = 1;
|
|
foreach ($tmp_list_trans as $k => $list) {
|
|
//Cari NORM pasien sesuai nomer pemeriksaan
|
|
if (strlen($list['nomr']) == 20) {
|
|
$order_poct_sql = $db->query("SELECT order_poct.*,m_pasien.nama as nama_pasien, m_ruang.nama as ruangan, m_ruang.no as kode_ruangan, m_perawat.nama as operator, m_pasien.tgllahir as tgl_lahir from order_poct
|
|
join m_pasien on m_pasien.nomr = order_poct.norm
|
|
join m_ruang on m_ruang.no = order_poct.ruang_id
|
|
join m_perawat on m_perawat.idperawat = order_poct.operator_id
|
|
where no_pemeriksaan = '{$list['nomr']}' and to_char(tanggal, 'YYYY-mm-dd') = '{$post['tanggal_order']}' and (is_valid = 2 or is_valid = 0 or is_valid is null) ");
|
|
} else {
|
|
$order_poct_sql = $db->query("SELECT order_poct.*,m_pasien.nama as nama_pasien, m_ruang.nama as ruangan, m_ruang.no as kode_ruangan, m_perawat.nama as operator, m_pasien.tgllahir as tgl_lahir from order_poct
|
|
join m_pasien on m_pasien.nomr = order_poct.norm
|
|
join m_ruang on m_ruang.no = order_poct.ruang_id
|
|
join m_perawat on m_perawat.idperawat = order_poct.operator_id
|
|
where upper(order_number) = '{$list['nomr']}' and to_char(tanggal, 'YYYY-mm-dd') = '{$post['tanggal_order']}' and (is_valid = 2 or is_valid = 0 or is_valid is null) ");
|
|
}
|
|
$order_poct = $order_poct_sql->fetchAll()[0];
|
|
|
|
if (!empty($order_poct)) {
|
|
if (empty($order_poct['no_nota'])) {
|
|
$arr_pasien[$k]['no'] = $no++;
|
|
$arr_pasien[$k]['nama_pasien'] = $order_poct['nama_pasien'];
|
|
$arr_pasien[$k]['norm'] = $order_poct['norm'];
|
|
$arr_pasien[$k]['no_pemeriksaan'] = $order_poct['no_pemeriksaan'];
|
|
$arr_pasien[$k]['order_number'] = $order_poct['order_number'];
|
|
$arr_pasien[$k]['tgl_lahir'] = $order_poct['tgl_lahir'];
|
|
$arr_pasien[$k]['ruangan'] = $order_poct['ruangan'];
|
|
$arr_pasien[$k]['kode_ruangan'] = $order_poct['kode_ruangan'];
|
|
$arr_pasien[$k]['operator'] = $order_poct['operator'];
|
|
$arr_pasien[$k]['jenis'] = $list['DN'];
|
|
$arr_pasien[$k]['tgl_spesimen'] = $list['specimen_dttm'];
|
|
$arr_pasien[$k]['nilai'] = $list['rvalue'];
|
|
$arr_pasien[$k]['unit'] = $list['unit'];
|
|
$arr_pasien[$k]['p_id'] = $list['p_id'];
|
|
$arr_pasien[$k]['no_billing'] = $order_poct['no_billing'];
|
|
$arr_pasien[$k]['flag'] = $order_poct['flag'];
|
|
$arr_pasien[$k]['idxdaftar'] = $order_poct['idxdaftar'];
|
|
$arr_pasien[$k]['created_at'] = $order_poct['created_at'];
|
|
$arr_pasien[$k]['order_id'] = $order_poct['id'];
|
|
$arr_pasien[$k]['lastUpdDatetime'] = $list['lastUpdDatetime'];
|
|
}
|
|
}
|
|
}
|
|
echo json_encode(['pasien' => $arr_pasien, 'ruang' => '']);
|
|
}
|
|
} elseif (array_key_exists('validasi_poct', $post) && $post['validasi_poct'] == true) {
|
|
$arr_post = $post['input'];
|
|
$ip = getRealIpAddr();
|
|
$arr_insert['tgl_entri'] = date('Y-m-d H:i:s');
|
|
$msg = 'Validasi Berhasil';
|
|
$type = 'success';
|
|
$arr_validasi_poct = [];
|
|
foreach ($arr_post as $ind => $item) {
|
|
$arr_validasi_poct[$item['norm']]['norm'] = $item['norm'];
|
|
$arr_validasi_poct[$item['norm']]['order_id'] = $item['order_id'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['norm'] = $item['norm'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['idxdaftar'] = $item['idxdaftar'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['no_pemeriksaan'] = $item['no_pemeriksaan'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['order_number'] = $item['order_number'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['nama_pasien'] = $item['nama_pasien'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['tgl_lahir'] = $item['tgl_lahir'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['kode_ruangan'] = $item['kode_ruangan'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['ruangan'] = $item['ruangan'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['operator'] = $item['operator'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['jenis'] = $item['jenis'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['tgl_spesimen'] = $item['tgl_spesimen'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['nilai'] = $item['nilai'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['unit'] = $item['unit'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['no_billing'] = $item['no_billing'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['p_id'] = $item['p_id'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['is_valid'] = $item['is_valid'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['flag'] = $item['flag'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['created_at'] = $item['created_at'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['order_id'] = $item['order_id'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['is_proses'] = $item['is_proses'];
|
|
$arr_validasi_poct[$item['norm']]['detail'][$item['no_pemeriksaan']]['lastUpdDatetime'] = $item['lastUpdDatetime'];
|
|
}
|
|
$xx = '';
|
|
foreach ($arr_validasi_poct as $ind => $validasi) {
|
|
$norm_ind = '';
|
|
$is_nobill = '';
|
|
foreach ($validasi['detail'] as $x => $item) {
|
|
if ($item['is_proses'] == 1) {
|
|
if ($item['is_valid'] == 1) {
|
|
//cek apakah ada pendingan order atasnya ?
|
|
$query_poct = $db->query("select * from order_poct where created_at < '{$item['created_at']}' and idxdaftar = '{$item['idxdaftar']}' and norm = '{$item['norm']}' and is_valid is null");
|
|
if ($query_poct->numRows() > 0) {
|
|
$orders = $query_poct->fetchAll();
|
|
foreach ($orders as $order) {
|
|
$query_order = "UPDATE order_poct set is_valid = '3' where no_pemeriksaan = '{$order['no_pemeriksaan']}' and norm = '{$order['norm']}' ";
|
|
$save_order = execute($query_order);
|
|
}
|
|
}
|
|
|
|
//Cari Kode Tarif
|
|
$sql_poct = $db->query("select opd.tarif_rs_id ,opd.kode_tarif_rs, op.carabayar_id from order_poct op
|
|
join order_poct_detail opd on op.id = opd.order_poct_id
|
|
where no_pemeriksaan = '{$item['no_pemeriksaan']}'");
|
|
|
|
$kode_tindakan = '';
|
|
if ($sql_poct->numRows() > 0) {
|
|
$poct = $sql_poct->fetchAll()[0];
|
|
|
|
//foreach ($data_poct as $poct) {
|
|
$kode_tindakan = $poct['kode_tarif_rs'];
|
|
|
|
$get_tarif = getTarif($kode_tindakan);
|
|
$jasa_sarana = ($get_tarif['jasa_sarana'] != '') ? $get_tarif['jasa_sarana'] : 0;
|
|
$jasa_pelayanan = ($get_tarif['jasa_pelayanan'] != '') ? $get_tarif['jasa_pelayanan'] : 0;
|
|
$jasa_anastesi = ($get_tarif['jasa_anastesi'] != '') ? $get_tarif['jasa_anastesi'] : 0;
|
|
$dokter_mod = ($post['dokter_mod'] != '') ? $post['dokter_mod'] : '';
|
|
|
|
$save = "INSERT into tmp_cartbayar " . bind_sql([
|
|
'kodetarif' => $kode_tindakan,
|
|
'ip' => $ip,
|
|
'qty' => ['value' => 1, 'type' => 'number'],
|
|
'poly' => ['value' => $item['kode_ruangan'], 'type' => 'number'],
|
|
'unit' => ['value' => $_SESSION['KDUNIT'], 'type' => 'number'],
|
|
'tarif' => ['value' => $get_tarif['jumlah'], 'type' => 'number'],
|
|
'discount' => ['value' => 0, 'type' => 'number'],
|
|
'tottarif' => ['value' => $get_tarif['jumlah'], 'type' => 'number'],
|
|
'jasa_sarana' => ['value' => $jasa_sarana, 'type' => 'number'],
|
|
'jasa_pelayanan' => ['value' => $jasa_pelayanan, 'type' => 'number'],
|
|
'jasa_anastesi' => ['value' => $jasa_anastesi, 'type' => 'number'],
|
|
'kddokter' => ['value' => $dokter_mod, 'type' => 'number']
|
|
]);
|
|
|
|
|
|
$result_tmp = execute($save . " RETURNING idxbayar");
|
|
$idxbayar = $result_tmp->fetchFirst()['idxbayar'];
|
|
|
|
//ranap
|
|
if ($item['flag'] == 1) {
|
|
$is_lanjut = true;
|
|
$xx .= $item['norm'] . ' - ';
|
|
//if($x == '11571099202309070003'){
|
|
// var_dump($norm_ind != $item['norm']); die();
|
|
//}
|
|
//if($norm_ind != $item['norm']){
|
|
$bill_lab = new Billing('irna', $item['norm'], $item['idxdaftar'], date('Y-m-d'), 0, 0, $poct['carabayar_id'], $item['kode_ruangan'], 0, $_SESSION['KDUNIT']);
|
|
$nota_bill = $bill_lab->simpanBill();
|
|
|
|
if ($nota_bill != false) {
|
|
$is_nobill = $nota_bill;
|
|
$query_order = "UPDATE order_poct set no_nota = '$is_nobill' where no_pemeriksaan = '{$item['no_pemeriksaan']}' and norm = '{$item['norm']}' ";
|
|
$save_order = execute($query_order);
|
|
$is_lanjut = true;
|
|
} else {
|
|
$is_lanjut = false;
|
|
}
|
|
//}else{
|
|
//if($x == '11567981202309070001'){
|
|
// print_r($nota_bill); die();
|
|
//}
|
|
|
|
// $bill_lab = new Billing('irna', $item['norm'], $item['idxdaftar'], date('Y-m-d'), 0, 0, $poct['carabayar_id'], $item['kode_ruangan'], 0, $_SESSION['KDUNIT']);
|
|
// $nota_bill = $bill_lab->simpanBill($is_nobill);
|
|
|
|
// $query_order = "UPDATE order_poct set no_nota = '$is_nobill' where no_pemeriksaan = '{$item['no_pemeriksaan']}' and norm = '{$item['norm']}' ";
|
|
// $save_order = execute($query_order);
|
|
//}
|
|
}
|
|
|
|
if ($is_lanjut == true) {
|
|
$query_lab = "UPDATE order_poct set is_valid = '{$item['is_valid']}' where no_pemeriksaan = '{$item['no_pemeriksaan']}' and norm = '{$item['norm']}' ";
|
|
$save_bill = execute($query_lab);
|
|
|
|
if ($save_bill) {
|
|
$lab_code = $_SESSION['kd_unit_lab_pk'];
|
|
$nourut = $item['no_pemeriksaan'];
|
|
$tmp_cek = $db->query("SELECT distinct nolab FROM t_orderlabpk_main WHERE NOLAB LIKE '" . $lab_code . date('ym') . "%' ORDER BY NOLAB DESC LIMIT 1");
|
|
if ($tmp_cek->numRows() > 0) {
|
|
$data = $tmp_cek->fetchAll()[0];
|
|
if ($data['nolab'] == $nourut) {
|
|
$nourut = $item['no_pemeriksaan'];
|
|
}
|
|
}
|
|
$sql_main = "INSERT INTO t_orderlabpk_main(nolab,idxdaftar,nomr,waktu_pengambilan,ket_pemeriksaan,cito,jenis_form,rajal,aps,tglorder,kdpoly,st_periksa)
|
|
VALUES
|
|
('$nourut','{$item['no_billing']}','{$item['norm']}','{$item['tgl_spesimen']}','{$item['jenis']}',0,'BIASA',
|
|
{$item['flag']},0,'{$arr_insert['tgl_entri']}',{$item['kode_ruangan']},1)";
|
|
|
|
$tambah_main_order = execute($sql_main);
|
|
|
|
// Reference Bridging
|
|
//$item['flag'] == 1 -> ranap
|
|
if ($item['flag'] == 1) {
|
|
$qry_daftar = "SELECT k.kokel as kelas_daftar,r.kelas as nama_kelas,a.icd_masuk as diagnosa_utama,jenis_penyakit,statusbayar as kdcarabayar,c.nama as carabayar,d.kddokter,d.namadokter,null as kdpoly,null as namapoly,noruang,r.nama as namaruang,nott,(select distinct nobill from t_billranap where idxdaftar = a.id_admission limit 1) as nobill FROM t_admission a
|
|
LEFT JOIN icd on icd.icd_code = a.icd_masuk
|
|
JOIN m_carabayar c on a.statusbayar = c.kode
|
|
JOIN m_dokter d on a.dokter_penanggungjawab = d.KDDOKTER
|
|
JOIN m_ruang r on a.noruang = r.no
|
|
JOIN m_tarifkelas k on r.kelas = k.kelas
|
|
WHERE id_admission = '{$item['idxdaftar']}' AND nomr = '{$item['norm']}'";
|
|
}
|
|
|
|
$sql_dokter = $db->query("SELECT kddokter,namadokter
|
|
FROM m_dokter
|
|
WHERE kddokter = '" . $dokter_mod . "' and aktif = 1");
|
|
$dokter_mod = $sql_dokter->fetchAll()[0];
|
|
|
|
$dokter_mod_id = '';
|
|
$dokter_mode_name = '';
|
|
if (!empty($dokter_mod)) {
|
|
$dokter_mod_id = $dokter_mod['kddokter'];
|
|
$dokter_mode_name = $dokter_mod['namadokter'];
|
|
}
|
|
|
|
$tmp_daftar = $db->query($qry_daftar);
|
|
$arr_daftar = $tmp_daftar->fetchFirst();
|
|
|
|
$DiagnoseID = (!empty($arr_daftar)) ? $arr_daftar['diagnosa_utama'] : '';
|
|
$DiagnoseName = (!empty($arr_daftar)) ? preg_replace("/\'/", "`", $arr_daftar['jenis_penyakit']) : '';
|
|
$ClassID = (!empty($arr_daftar)) ? $arr_daftar['kelas_daftar'] : 0;
|
|
$ClassName = (!empty($arr_daftar)) ? $arr_daftar['nama_kelas'] : '';
|
|
$DoctorID = (!empty($arr_daftar)) ? $arr_daftar['kddokter'] : 0;
|
|
$DoctorName = (!empty($arr_daftar)) ? $arr_daftar['namadokter'] : '';
|
|
$AgreementID = (!empty($arr_daftar)) ? $arr_daftar['kdcarabayar'] : 0;
|
|
$AgreementName = (!empty($arr_daftar)) ? $arr_daftar['carabayar'] : '';
|
|
|
|
if ($item['flag'] == 1) {
|
|
$WardID = 0;
|
|
$WardName = '';
|
|
$ServiceUnitID = 1;
|
|
$ServiceUnitName = 'Rawat Inap';
|
|
$RoomID = $arr_daftar['noruang'];
|
|
$RoomName = $arr_daftar['namaruang'];
|
|
$BedID = $arr_daftar['nott'];
|
|
$BedName = $arr_daftar['nott'];
|
|
$AgreementID = $arr_daftar['kdcarabayar'];
|
|
$AgreementName = $arr_daftar['carabayar'];
|
|
$GuarantorID = 1;
|
|
$GuarantorName = 'RAWAT INAP';
|
|
$category_id = 3;
|
|
$category_name = 'POCT';
|
|
$dokter_id = $dokter_mod_id;
|
|
$dokter_name = $dokter_mode_name;
|
|
}
|
|
|
|
if (_DBTYPE_ == 'postgre') {
|
|
$cito = '0::bit';
|
|
}
|
|
$arr_LISREG = [
|
|
'NoMR' => $item['norm'],
|
|
'VisitNumber' => $item['no_billing'],
|
|
'OrderNumber' => $item['no_pemeriksaan'],
|
|
'DiagnoseID' => $DiagnoseID,
|
|
'DiagnoseName' => $DiagnoseName,
|
|
'CITO' => $cito,
|
|
'ServiceUnitID' => $ServiceUnitID, // 1 Ranap, 2 Rajal
|
|
'ServiceUnitName' => $ServiceUnitName, // Rawat Inap, Rawat Jalan
|
|
'GuarantorID' => $GuarantorID, // Penjamin
|
|
'GuarantorName' => $GuarantorName,
|
|
'AgreementID' => $AgreementID,
|
|
'AgreementName' => $AgreementName,
|
|
'DoctorID' => $DoctorID,
|
|
'DoctorName' => $DoctorName,
|
|
'ClassID' => $ClassID,
|
|
'ClassName' => $ClassName,
|
|
'WardID' => $WardID,
|
|
'WardName' => $WardName,
|
|
'RoomID' => $RoomID,
|
|
'RoomName' => $RoomName,
|
|
'BedID' => $BedID,
|
|
'BedName' => $BedName,
|
|
'RegUserID' => $_SESSION['NIP'],
|
|
'RegUserName' => $_SESSION['NAMA_PEGAWAI'],
|
|
'OrderDateTime' => $item['lastUpdDatetime'],
|
|
'category_id' => $category_id,
|
|
'category_name' => $category_name,
|
|
'dokter_id' => $dokter_id,
|
|
'dokter_name' => $dokter_name
|
|
];
|
|
$arr_set = array();
|
|
foreach ($arr_LISREG as $key => $value) {
|
|
if (in_array($key, array('CITO', 'ServiceUnitID', 'GuarantorID', 'AgreementID', 'DoctorID', 'ClassID', 'WardID', 'RoomID', 'BedID'))) {
|
|
$value = ($value == '') ? 0 : $value;
|
|
$arr_set[$key] = ['value' => $value, 'type' => 'number'];
|
|
} else {
|
|
$arr_set[$key] = $value;
|
|
}
|
|
}
|
|
|
|
$insert_data = "INSERT INTO t_lis_registration " . bind_sql($arr_set);
|
|
$save_lis = execute($insert_data);
|
|
|
|
if ($save_lis) {
|
|
if (preg_match("/LSP/", $kode_tindakan)) {
|
|
$kode_periksa_lis = $kode_tindakan;
|
|
} else {
|
|
$ex_kode = explode('.', $kode_tindakan);
|
|
$kode_periksa_lis = $ex_kode[1];
|
|
}
|
|
// add item lis
|
|
$arr_LISREGITEM = [];
|
|
$arr_LISREGITEM = [
|
|
'OrderNumber' => $item['no_pemeriksaan'],
|
|
'OrderItemID' => $kode_tindakan,
|
|
'OrderItemName' => preg_replace("/\'/", '`', $get_tarif['uraian_tarif']),
|
|
'OrderItemDateTime' => $item['lastUpdDatetime'],
|
|
'hasil' => $item['nilai']
|
|
];
|
|
|
|
$insert_lis_item = "INSERT INTO t_lis_regorderitem " . bind_sql($arr_LISREGITEM);
|
|
execute($insert_lis_item);
|
|
}
|
|
} else {
|
|
$msg = 'Validasi POCT gagal, gagal update no nota!';
|
|
$type = 'error';
|
|
}
|
|
} else {
|
|
$msg = 'Validasi POCT gagal, gagal create Billing!';
|
|
$type = 'error';
|
|
}
|
|
//}
|
|
|
|
} else {
|
|
$msg = 'Validasi POCT gagal, No Pemeriksaan POCT tidak ditemukan!';
|
|
$type = 'error';
|
|
}
|
|
} else {
|
|
$query_lab = "UPDATE order_poct set is_valid = '{$item['is_valid']}' where no_pemeriksaan = '{$item['no_pemeriksaan']}' and norm = '{$item['norm']}' ";
|
|
$save_bill = execute($query_lab);
|
|
}
|
|
$norm_ind = $item['norm'];
|
|
$is_nobill = $nota_bill;
|
|
} else {
|
|
$query_lab = "UPDATE order_poct set is_valid = '3' where no_pemeriksaan = '{$item['no_pemeriksaan']}' and norm = '{$item['norm']}' ";
|
|
$save_bill = execute($query_lab);
|
|
}
|
|
}
|
|
|
|
$sql_order_poct = $db->query("select * from order_poct where id = '{$validasi['order_id']}'");
|
|
$data_poct = $sql_order_poct->fetchAll()[0];
|
|
|
|
|
|
foreach ($validasi['detail'] as $is => $data) {
|
|
$sql_poct = $db->query("select * from order_poct where id = '{$data['order_id']}'");
|
|
$poct = $sql_poct->fetchAll()[0];
|
|
|
|
if (!empty($poct['no_nota'])) {
|
|
$sql_bill = $db->query("select * from t_billranap where nonota = '{$poct['no_nota']}'");
|
|
$bill = $sql_bill->fetchAll()[0];
|
|
|
|
$query_poct = "UPDATE order_poct set no_nota = '{$data_poct['no_nota']}' where id = '{$poct['id']}' and norm = '{$item['norm']}' ";
|
|
$save_poct = execute($query_poct);
|
|
|
|
$query_bill = "UPDATE t_billranap set nonota = '{$data_poct['no_nota']}' where idxbill = '{$bill['idxbill']}' and nomr = '{$bill['nomr']}' ";
|
|
$save_bill = execute($query_bill);
|
|
}
|
|
}
|
|
}
|
|
|
|
echo json_encode(['message' => $msg, 'type' => $type]);
|
|
exit;
|
|
} elseif (array_key_exists('rekap_poct', $post) && $post['rekap_poct'] == true) {
|
|
global $db_pec;
|
|
global $db;
|
|
|
|
$is_time = false;
|
|
if (!empty($post['time_order_start']) && !empty($post['time_order_end'])) {
|
|
$date_start = date_create($post['tanggal_order_start'] . ' ' . $post['time_order_start']);
|
|
$date_start = date_format($date_start, "Y-m-d H:i:s");
|
|
|
|
$date_end = date_create($post['tanggal_order_start'] . ' ' . $post['time_order_end']);
|
|
$date_end = date_format($date_end, "Y-m-d H:i:s");
|
|
|
|
$is_time = true;
|
|
}
|
|
|
|
if ($is_time) {
|
|
$tmp_list_trans = $db_pec->get_results("SELECT p.ID as p_id,p.Lab_PatientID as nomr,p.Location as ruang,r.ID as r_id,r.UnivTestName as DN,r.RValue as rvalue,
|
|
r.Unit as unit,r.ANormalFlag as normalflah,convert(varchar, r.TestEndDate, 20) as specimen_dttm,op.FirstName,op.LastName, convert(varchar, p.lastUpdDatetime, 20) as lastUpdDatetime, r.InstrSectionID
|
|
from Patient as p
|
|
left join Result as r on p.ID = r._PID
|
|
left join Operator as op on r.OperatiorID = op.OperatorID
|
|
where r.RValue <> '' and convert(datetime,r.TestEndDate) between CONVERT(datetime, '" . $date_start . "' ) and CONVERT(datetime, '" . $date_end . "')
|
|
order by r.TestEndDate, p.Lab_PatientID desc", 'array');
|
|
} else {
|
|
$tmp_list_trans = $db_pec->get_results("SELECT p.ID as p_id,p.Lab_PatientID as nomr,p.Location as ruang,r.ID as r_id,r.UnivTestName as DN,r.RValue as rvalue,
|
|
r.Unit as unit,r.ANormalFlag as normalflah,convert(varchar, r.TestEndDate, 20) as specimen_dttm,op.FirstName,op.LastName, convert(varchar, p.lastUpdDatetime, 20) as lastUpdDatetime, r.InstrSectionID
|
|
from Patient as p
|
|
left join Result as r on p.ID = r._PID
|
|
left join Operator as op on r.OperatiorID = op.OperatorID
|
|
where r.RValue <> '' and convert(date,r.TestEndDate) = '" . $date_start . "'
|
|
order by r.TestEndDate, p.Lab_PatientID desc", 'array');
|
|
}
|
|
|
|
$arr_pasien = [];
|
|
if (count($tmp_list_trans) > 0) {
|
|
$no = 1;
|
|
foreach ($tmp_list_trans as $ind => $list) {
|
|
$is_data = false;
|
|
$data_poct = '';
|
|
if (strlen($list['nomr']) > 10) {
|
|
|
|
if (strlen($list['nomr']) == 20) {
|
|
$order_poct_sql = $db->query("SELECT order_poct.*,m_pasien.nama as nama_pasien, m_ruang.nama as ruangan, m_ruang.no as kode_ruangan, m_perawat.nama as operator, m_pasien.tgllahir as tgl_lahir from order_poct
|
|
join m_pasien on m_pasien.nomr = order_poct.norm
|
|
join m_ruang on m_ruang.no = order_poct.ruang_id
|
|
join m_perawat on m_perawat.idperawat = order_poct.operator_id
|
|
where no_pemeriksaan = '{$list['nomr']}' and to_char(tanggal, 'YYYY-mm-dd') = '{$post['tanggal_order_start']}' and (is_valid = 2 or is_valid = 0 or is_valid is null) ");
|
|
} else {
|
|
$order_poct_sql = $db->query("SELECT order_poct.*,m_pasien.nama as nama_pasien, m_ruang.nama as ruangan, m_ruang.no as kode_ruangan, m_perawat.nama as operator, m_pasien.tgllahir as tgl_lahir from order_poct
|
|
join m_pasien on m_pasien.nomr = order_poct.norm
|
|
join m_ruang on m_ruang.no = order_poct.ruang_id
|
|
join m_perawat on m_perawat.idperawat = order_poct.operator_id
|
|
where upper(order_number) = '{$list['nomr']}' and to_char(tanggal, 'YYYY-mm-dd') = '{$post['tanggal_order_start']}' and (is_valid = 2 or is_valid = 0 or is_valid is null) ");
|
|
}
|
|
$order_poct = $order_poct_sql->fetchAll()[0];
|
|
if (!empty($order_poct)) {
|
|
$is_data = true;
|
|
$data_poct = $order_poct;
|
|
}
|
|
}
|
|
|
|
$arr_pasien[$ind]['no'] = $no++;
|
|
$arr_pasien[$ind]['nomr'] = ($is_data) ? $data_poct['norm'] : $list['nomr'];
|
|
$arr_pasien[$ind]['nama_pasien'] = ($is_data) ? $data_poct['nama_pasien'] : $list['FirstName'] . ' ' . $list['LastName'];
|
|
$arr_pasien[$ind]['no_billing'] = ($is_data) ? $data_poct['no_billing'] : '';
|
|
$arr_pasien[$ind]['date'] = $list['specimen_dttm'];
|
|
$arr_pasien[$ind]['InstrSectionID'] = $list['InstrSectionID'];
|
|
$arr_pasien[$ind]['ruang'] = $list['ruang'];
|
|
$arr_pasien[$ind]['hasil'] = $list['rvalue'];
|
|
$arr_pasien[$ind]['unit'] = $list['unit'];
|
|
$arr_pasien[$ind]['data_order'] = ($is_data) ? "ADA" : "TIDAK";
|
|
}
|
|
|
|
echo json_encode(['pasien' => $arr_pasien]);
|
|
}
|
|
|
|
|
|
} |