470 lines
23 KiB
PHP
470 lines
23 KiB
PHP
<?php
|
|
if (!session_id()) {
|
|
session_start();
|
|
}
|
|
require_once('./core/SQLServerDb.php');
|
|
|
|
$myquery = "SELECT a.nomr, a.kirimdari, a.kd_rujuk, a.dokterpengirim,a.dokter_penanggungjawab, a.masukrs, a.noruang, a.nott, b.nama, b.alamat, b.jeniskelamin, b.tgllahir, c.nama as carabayar, c.kode as carabayar_id, a.id_admission, a.noruang, d.nama as poly, e.namadokter as namadokter_pengirim, md.namadokter as namadokter_dpjp, f.kelas,k.kokel as id_kelas, f.no as ruang_id, f.nama as nm_ruang, b.tgllahir as tgllahir1, a.statusbayar, a.masukrs as tglreg,a.nosep,(select nobill from t_billranap where idxdaftar = a.id_admission and nomr = a.nomr limit 1) as nobill,a.tgl_pindah,b.noktp,a.keluarrs,
|
|
case when a.keluarrs is not null then 'Close Billing' when r.statuspulang is not null then 'Pulang' when r.statuspulang is null then 'Belum Pulang' end as statuspulang
|
|
FROM t_admission a
|
|
JOIN m_pasien b ON a.nomr=b.nomr
|
|
JOIN m_carabayar c ON a.statusbayar=c.kode
|
|
JOIN m_ruang d ON d.no=a.kd_rujuk
|
|
JOIN m_ruang f ON f.no=a.noruang
|
|
JOIN m_dokter e ON a.dokterpengirim=e.kddokter
|
|
LEFT JOIN m_dokter md ON a.dokter_penanggungjawab=md.kddokter
|
|
JOIN m_tarifkelas k on f.idx_ruang = k.kelas
|
|
left join t_resumepulang r on a.id_admission = r.idadmission
|
|
WHERE a.id_admission='" . $id_admission . "'";
|
|
$get = $db->query($myquery);
|
|
$userdata = $get->fetchAll()[0];
|
|
|
|
$dokter = 'SELECT distinct b.kddokter, b.namadokter, b.tgl_akhir_sip,b.kdpoly, b.kdsmf, b.kdprofesi
|
|
FROM m_dokter b
|
|
WHERE b.aktif = 1';
|
|
|
|
$tmp_dokter = $db->query($dokter);
|
|
$arr_dokter = $arr_dokter_ppds = $arr_smf = [];
|
|
if ($tmp_dokter->numRows() > 0) {
|
|
foreach ($tmp_dokter->fetchAll() as $d) {
|
|
$tgl_SIP = new Datetime($d['tgl_akhir_sip']);
|
|
$tgl_sekarang = new Datetime(date('Y-m-d'));
|
|
$arr_smf[$d['kddokter']] = $d['kdsmf'];
|
|
if ($d['tgl_akhir_sip'] > '0000-00-00' || $d['tgl_akhir_sip'] > '0001-01-01') {
|
|
if ($tgl_sekarang <= $tgl_SIP) {
|
|
$arr_dokter[$d['kddokter']] = $d['namadokter'];
|
|
}
|
|
}
|
|
|
|
if ($d['kdprofesi'] == 0) {
|
|
$arr_dokter_ppds[$d['namadokter']] = $d['namadokter'];
|
|
}
|
|
}
|
|
}
|
|
|
|
echo $datetimepicker_css;
|
|
echo $datetimepicker_js;
|
|
|
|
$perawat = "select idperawat, nip, unit_kerja, nama from m_perawat where aktif = 1 is not null";
|
|
$tmp_perawat = $db->query($perawat);
|
|
|
|
$arr_perawat = [];
|
|
|
|
if ($tmp_perawat->numRows() > 0) {
|
|
$arr_perawat[] = '-';
|
|
foreach ($tmp_perawat->fetchAll() as $item) {
|
|
$arr_perawat[$item['idperawat']] = $item['nama'];
|
|
}
|
|
}
|
|
|
|
$select_operator = '';
|
|
if (!empty($_SESSION['KDPERAWAT'])) {
|
|
$select_operator = $_SESSION['KDPERAWAT'];
|
|
}
|
|
|
|
$order_poct = "select a.id, a.jenis_pemeriksaan, a.pemeriksaan, a.tarif_rs_id, b.kode_tarif, b.jumlah from order_poct_list a
|
|
join m_tarif_rs b on a.tarif_rs_id = b.id_tarif
|
|
where a.aktif = 1";
|
|
$tmp_poct = $db->query($order_poct);
|
|
|
|
$arr_pemeriksaan = [];
|
|
if ($tmp_poct->numRows() > 0) {
|
|
foreach ($tmp_poct->fetchAll() as $item) {
|
|
$arr_pemeriksaan[$item['jenis_pemeriksaan']]['pemeriksaan'][$item['id']]['id'] = $item['id'];
|
|
$arr_pemeriksaan[$item['jenis_pemeriksaan']]['pemeriksaan'][$item['id']]['jenis'] = $item['jenis_pemeriksaan'];
|
|
$arr_pemeriksaan[$item['jenis_pemeriksaan']]['pemeriksaan'][$item['id']]['pemeriksaan'] = $item['pemeriksaan'];
|
|
$arr_pemeriksaan[$item['jenis_pemeriksaan']]['pemeriksaan'][$item['id']]['harga'] = $item['jumlah'];
|
|
$arr_pemeriksaan[$item['jenis_pemeriksaan']]['pemeriksaan'][$item['id']]['kode_tarif'] = $item['kode_tarif'];
|
|
$arr_pemeriksaan[$item['jenis_pemeriksaan']]['pemeriksaan'][$item['id']]['tarif_rs_id'] = $item['tarif_rs_id'];
|
|
}
|
|
}
|
|
|
|
$datenow = date('Y-m-d');
|
|
$max_pemeriksaan = "select max(no_pemeriksaan) as code from order_poct where norm = '" . $userdata['nomr'] . "' ";
|
|
$tmp_poct = $db->query($max_pemeriksaan);
|
|
|
|
$max_number = $tmp_poct->fetchAll()[0];
|
|
|
|
$tanggal = date_create_from_format('Y-m-d', $datenow);
|
|
//cek display_barcode_poct
|
|
$sql_display = "select var_value from global_var where var_name = 'display_barcode_poct'";
|
|
$display = $db->query($sql_display)->fetchAll();
|
|
|
|
if (!empty($max_number['code'])) {
|
|
$substr = (int)substr($max_number['code'], 16, 4) + 1;
|
|
if ($display[0]['var_value'] == 1) {
|
|
$code = date("His") . $userdata['nomr'] . date_format($tanggal, 'Ymd') . sprintf('%04d', $substr);
|
|
} else {
|
|
$code = $userdata['nomr'] . date_format($tanggal, 'Ymd') . sprintf('%04d', $substr);
|
|
}
|
|
|
|
} else {
|
|
if ($display[0]['var_value'] == 1) {
|
|
$code = date("His") . $userdata['nomr'] . date_format($tanggal, 'Ymd') . '0001';
|
|
} else {
|
|
$code = $userdata['nomr'] . date_format($tanggal, 'Ymd') . '0001';
|
|
}
|
|
}
|
|
|
|
$list_order_poct = "select a.id, a.norm, a.operator_id, b.nip, b.nama, a.dokter_id, c.namadokter, a.no_pemeriksaan, a.tanggal, a.total_order, a.created_at, a.is_valid
|
|
from order_poct a
|
|
join m_perawat b on b.idperawat = a.operator_id
|
|
join m_dokter c on c.kddokter = a.dokter_id
|
|
where norm = '" . $userdata['nomr'] . "' and a.status = 1 and a.idxdaftar = '" . $userdata['id_admission'] . "' order by a.tanggal desc";
|
|
|
|
$tmp_list_poct = $db->query($list_order_poct);
|
|
$list_poct = $tmp_list_poct->fetchAll();
|
|
|
|
$env = $_ENV['APP_ENV'];
|
|
$arr_validasi_poct = [];
|
|
if ($env != 'local') {
|
|
$db_pec = new SQLServerDb($_ENV['PEC_DB_USER'],
|
|
$_ENV['PEC_DB_PASS'],
|
|
$_ENV['PEC_DB_NAME'],
|
|
$_ENV['PEC_DB_HOST']);
|
|
|
|
global $db_pec;
|
|
global $db;
|
|
|
|
$arr_validasi_poct = $db_pec->get_results("SELECT p.ID as p_id,p.Lab_PatientID as nomr, convert(varchar, r.TestEndDate, 20) as tanggal
|
|
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 = '{$userdata['nomr']}'
|
|
order by r.TestEndDate desc ", 'array');
|
|
|
|
}
|
|
|
|
$arr_list_poct = [];
|
|
foreach ($list_poct as $ind => $item) {
|
|
$arr_list_poct[$item['id']]['id'] = $item['id'];
|
|
$arr_list_poct[$item['id']]['no_pemeriksaan'] = $item['no_pemeriksaan'];
|
|
$arr_list_poct[$item['id']]['created_at'] = $item['created_at'];
|
|
$arr_list_poct[$item['id']]['tanggal'] = $item['tanggal'];
|
|
$arr_list_poct[$item['id']]['nama'] = $item['nama'];
|
|
$arr_list_poct[$item['id']]['nip'] = $item['nip'];
|
|
$arr_list_poct[$item['id']]['namadokter'] = $item['namadokter'];
|
|
$arr_list_poct[$item['id']]['total_order'] = $item['total_order'];
|
|
$arr_list_poct[$item['id']]['is_valid'] = $item['is_valid'];
|
|
$arr_list_poct[$item['id']]['order_batal'] = isset($arr_validasi_poct[$ind]) ? (date('Y-m-d', strtotime($arr_validasi_poct[$ind]['tanggal'])) == $item['tanggal']) ? 1 : 0 : 0;
|
|
}
|
|
|
|
?>
|
|
<form id="form_poct">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="form-group row">
|
|
<label class="col-sm-2">Dokter</label>
|
|
<div class="col-sm-3"><?php echo form_dropdown('pk[main][kd_dokter]', $arr_dokter, $userdata['dokter_penanggungjawab'], 'class="form-control" style="width:100%"'); ?></div>
|
|
<label class="col-sm-2">Waktu Pengambilan Spesimen</label>
|
|
<div class="col-sm-3"><input type="text" name="pk[main][tanggal]"
|
|
class="dtp-pk form-control" id="tanggal"
|
|
value="<?php echo date('Y-m-d H:i:s') ?>"></div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<label class="col-sm-2">Petugas/Operator</label>
|
|
<div class="col-sm-3"><?php echo form_dropdown('pk[main][id_operator]', $arr_perawat, $select_operator, 'class="form-control id_operator" style="width:100%"'); ?></div>
|
|
|
|
<label class="col-sm-2">No Pemeriksaan</label>
|
|
<div class="col-sm-3">
|
|
<input type="text" name="pk[main][no_pemeriksaan]"
|
|
class="form-control" id="no_pemeriksaan"
|
|
value="<?= $code ?>" readonly>
|
|
|
|
<input type="hidden" name="pk[main][norm]"
|
|
class="form-control" id="norm"
|
|
value="<?= $userdata['nomr'] ?>" readonly>
|
|
|
|
<input type="hidden" name="pk[main][ruang_id]"
|
|
class="form-control" id="ruang_id"
|
|
value="<?= $userdata['ruang_id'] ?>" readonly>
|
|
|
|
<input type="hidden" name="pk[main][nobill]"
|
|
class="form-control" id="nobill"
|
|
value="<?= $userdata['nobill'] ?>" readonly>
|
|
|
|
<input type="hidden" name="pk[main][idxdaftar]"
|
|
class="form-control" id="idxdaftar"
|
|
value="<?= $userdata['id_admission'] ?>" readonly>
|
|
|
|
<input type="hidden" name="pk[main][carabayar_id]"
|
|
class="form-control" id="carabayar_id"
|
|
value="<?= $userdata['carabayar_id'] ?>" readonly>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-sm-12" id="form_wrapper">
|
|
<p class="pull-left">Jenis Pemeriksaan :</p>
|
|
<div class="pull-right border border-primary bg-primary text-white rounded rounded-pill"><span
|
|
class="mr-5 text-bold">Perkiraan Biaya : </span><span id="total_order_pk"
|
|
class="text-bold">0</span></div>
|
|
<div class="clearfix"></div>
|
|
<div id="pemeriksaan_putih">
|
|
<div class="row">
|
|
<?php
|
|
$arr_form['Pemeriksaan']['Diabetes Melitus'][246] = ['Glukosa POCT', 12000];
|
|
|
|
$i = 1;
|
|
$jml = count($arr_form['Pemeriksaan']);
|
|
$arr_card = [];
|
|
|
|
foreach ($arr_pemeriksaan as $ind => $item) : ?>
|
|
<div class="col-sm-4">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="card">
|
|
<div class="card-header"><?= $ind ?>
|
|
<button type="button"
|
|
class="pull-right btn-sm btn-outline-primary btn-rect show_hide_list_pk"
|
|
data-list="<?= $ind ?>"><i class="fa fa-chevron-down"></i></button>
|
|
</div>
|
|
<ul id="list-<?= $ind ?>" class="list-group list-group-flush"
|
|
style="display:none">
|
|
<?php foreach ($item['pemeriksaan'] as $detail): ?>
|
|
<li class="list-group-item">
|
|
<div class="form-check row">
|
|
<input type="checkbox"
|
|
name="pk[pemeriksaan][form_id][<?= $detail['id'] ?>]"
|
|
value="<?= $detail['id'] ?>"
|
|
id="pemeriksaan_<?= $detail['id'] ?>"
|
|
data-id="<?= $detail['id'] ?>"
|
|
data-biaya="<?= $detail['harga'] ?>"
|
|
class="checkbox_lab">
|
|
<label class="" style="max-width:75%;vertical-align:top;"
|
|
for="pemeriksaan_<?= $detail['id'] ?>">
|
|
<?= $detail['pemeriksaan'] ?></label>
|
|
<div class="pull-right border border-info rounded rounded-pill">
|
|
<?= number_format($detail['harga']) ?>
|
|
</div>
|
|
</div>
|
|
<div class="form-group pl-5" style="visibility:hidden"
|
|
id="ket_pemeriksaan_<?= $detail['id'] ?>">
|
|
<input type="text" class="form-control"
|
|
name="pk[pemeriksaan][keterangan][<?= $detail['id'] ?>]"
|
|
placeholder="Keterangan" style="width:50%">
|
|
</div>
|
|
</li>
|
|
|
|
<?php endforeach; ?>
|
|
<li class="list-group-item list-group-item-dark">
|
|
<div class="form-group"><input type="text"
|
|
name="pk[main][ket_pemeriksaan][<?= $detail['jenis'] ?>]"
|
|
value="" class="form-control"
|
|
placeholder="Catatan Pemeriksaan <?= $detail['jenis'] ?>">
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="pull-right">
|
|
<?php if ((empty($_SESSION['KDDOKTER']) && !empty($_SESSION['KDPERAWAT'])) || (empty($_SESSION['KDDOKTER']) && empty($_SESSION['KDPERAWAT']))) : ?>
|
|
<?php if (($userdata['statuspulang'] == 'Belum Pulang')) : ?>
|
|
<button type="button" id="simpan_order_poct" class="btn btn-xl btn-primary">Simpan Order
|
|
</button>
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<br>
|
|
<div id="detail_order_poct">
|
|
<div class="table-responsive" style="overflow: auto;">
|
|
<table class="table table-bordered table-striped table-sm" style="width:100% !important;">
|
|
<tr>
|
|
<th>No Pemeriksaan</th>
|
|
<th>Tanggal</th>
|
|
<th>Operator</th>
|
|
<th>Dokter</th>
|
|
<th>Total Order</th>
|
|
<th>Status</th>
|
|
<th>Action</th>
|
|
</tr>
|
|
<?php foreach ($arr_list_poct as $ind => $item):
|
|
|
|
?>
|
|
<tr>
|
|
<td><?= $item['no_pemeriksaan'] ?></td>
|
|
<td><?= $item['tanggal'] ?></td>
|
|
<td>
|
|
<?= $item['nama'] ?> <br>
|
|
<p style="font-style: italic; font-size: small">NIP/NIPPT: <?= $item['nip'] ?></p>
|
|
</td>
|
|
<td><?= $item['namadokter'] ?></td>
|
|
<td>Rp. <?= number_format($item['total_order']) ?></td>
|
|
<td>
|
|
|
|
<?php if ($item['is_valid'] == '1') : ?>
|
|
<button type="button" class="btn btn-success btn-sm"
|
|
id="batal_poct-<?= $item['id'] ?>" data-poct="<?= $item['id'] ?>"> Terverifikasi
|
|
</button>
|
|
<?php elseif ($item['is_valid'] == '0') : ?>
|
|
<button type="button" class="btn btn-warning btn-sm"
|
|
id="batal_poct-<?= $item['id'] ?>" data-poct="<?= $item['id'] ?>"> Tidak
|
|
Terverifikasi
|
|
</button>
|
|
<?php elseif ($item['is_valid'] == '2') : ?>
|
|
<button type="button" class="btn btn-info btn-sm"
|
|
id="batal_poct-<?= $item['id'] ?>" data-poct="<?= $item['id'] ?>"> Menunggu
|
|
</button>
|
|
<?php elseif ($item['is_valid'] == '3') : ?>
|
|
<button type="button" class="btn btn-danger btn-sm"
|
|
id="batal_poct-<?= $item['id'] ?>" data-poct="<?= $item['id'] ?>"> Tidak di
|
|
Proses
|
|
</button>
|
|
<?php elseif (empty($item['is_valid'])) : ?>
|
|
<button type="button" class="btn btn-warning btn-sm"
|
|
id="batal_poct-<?= $item['id'] ?>" data-poct="<?= $item['id'] ?>"> Belum
|
|
Terproses
|
|
</button>
|
|
<?php endif; ?>
|
|
</td>
|
|
<td>
|
|
<button type="button" class="btn btn-outline-success btn-sm detail_poct"
|
|
id="detail_poct-<?= $item['id'] ?>" data-poct="<?= $item['id'] ?>"><span
|
|
class="fa fa-list"></span></button>
|
|
|
|
<?php if (empty($item['is_valid'])): ?>
|
|
<?php if (($userdata['statuspulang'] == 'Belum Pulang')) : ?>
|
|
<button type="button" class="btn btn-outline-danger btn-sm batal_poct"
|
|
id="batal_poct-<?= $item['id'] ?>" data-poct="<?= $item['id'] ?>">
|
|
<span class="fa fa-trash"></span> Batal Order
|
|
</button>
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
</form>
|
|
|
|
<template id="order-poct-detail-template">
|
|
<div class="modal fade order-poct-detail-modal-lg" id="order-poct-detail-modal" tabindex="-1" role="dialog"
|
|
aria-labelledby="HistLabModal" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg" style="max-width: 80%">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">Detail Order Poct</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body"></div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
$(document).ready(function () {
|
|
$('.dtp-pk').datetimepicker({
|
|
format: 'yyyy-mm-dd H:i:s'
|
|
});
|
|
|
|
$(".show_hide_list_pk").click(function () {
|
|
var pos_down = $(this).children().hasClass("fa-chevron-down");
|
|
var pos_up = $(this).children().hasClass("fa-chevron-up");
|
|
if (pos_down == true) {
|
|
$(this).children().removeClass("fa-chevron-down").addClass("fa-chevron-up");
|
|
} else if (pos_up == true) {
|
|
$(this).children().removeClass("fa-chevron-up").addClass("fa-chevron-down");
|
|
}
|
|
$(this).parent().next().slideToggle(300);
|
|
});
|
|
|
|
var arr_orderlab_pk_val = [];
|
|
var biaya_orderlab = [];
|
|
$(".checkbox_lab").on("click", function () {
|
|
var var_check = $(this).prop("checked");
|
|
var var_id = $(this).val();
|
|
var var_biaya = $(this).data('biaya');
|
|
|
|
if (var_check == true) {
|
|
arr_orderlab_pk_val.push(var_id);
|
|
biaya_orderlab.push(var_biaya);
|
|
$("#order_labpk_select").val(arr_orderlab_pk_val).trigger('change');
|
|
} else {
|
|
var pos = $.inArray(var_id, arr_orderlab_pk_val);
|
|
arr_orderlab_pk_val.splice(pos, 1);
|
|
var pos2 = $.inArray(var_biaya, biaya_orderlab);
|
|
biaya_orderlab.splice(pos2, 1);
|
|
$("#order_labpk_select").val(arr_orderlab_pk_val).trigger('change');
|
|
}
|
|
hitungBiayaLabPK();
|
|
});
|
|
|
|
function hitungBiayaLabPK() {
|
|
var total = 0;
|
|
$.each(biaya_orderlab, function (i, v) {
|
|
total += v;
|
|
});
|
|
$("#total_order_pk").html(accounting.formatMoney(total));
|
|
}
|
|
|
|
$('#simpan_order_poct').click(function () {
|
|
var operator = $('.id_operator').val();
|
|
var form = $('#form_poct').serialize();
|
|
if (operator != 0) {
|
|
$.post('<?php echo _BASE_;?>ranap/order_poct_save.php', form, function (data) {
|
|
if (data == 1) {
|
|
Toast.fire({title: 'Data Order Berhasil Disimpan', type: "success"});
|
|
setTimeout(function () {
|
|
window.location.reload();
|
|
}, 3000);
|
|
} else {
|
|
Toast.fire({title: data, type: "error"});
|
|
}
|
|
});
|
|
} else {
|
|
Toast.fire({title: 'Silahkan pilih operator terlebih dahulu!', type: "error"});
|
|
}
|
|
|
|
});
|
|
|
|
$('.detail_poct').click(function (e) {
|
|
var poct_id = $(this).data('poct');
|
|
$.post('<?php echo _BASE_;?>ranap/order_poct_detail.php', {id: poct_id}, function (data) {
|
|
$("#order-poct-detail-modal .modal-body").html(data);
|
|
$("#order-poct-detail-modal").modal("show");
|
|
});
|
|
});
|
|
|
|
$('.batal_poct').click(function (e) {
|
|
var poct_id = $(this).data('poct');
|
|
if (confirm("Apakah anda yakin untuk membatalkan Order POCT ini ?")) {
|
|
$.post('<?php echo _BASE_;?>ranap/order_poct_action.php', {
|
|
id: poct_id,
|
|
flags: 'delete'
|
|
}, function (data) {
|
|
Toast.fire({title: 'Batal Order Berhasil', type: "success"});
|
|
setTimeout(function () {
|
|
window.location.reload();
|
|
}, 3000);
|
|
});
|
|
}
|
|
});
|
|
|
|
$("body").append($("#order-poct-detail-template").html());
|
|
});
|
|
</script>
|