This commit is contained in:
Dwi Swandhana
2026-05-07 10:48:22 +07:00
parent da5105f219
commit 8863dbb85f
3 changed files with 114 additions and 23 deletions
+2 -16
View File
@@ -255,24 +255,10 @@
<div class="form-group">
<div class="row">
<div class="col-lg-4">
<select id="cekbln" class="form-control">
<option value="ALL">ALL</option>
<option value="01">Jan</option>
<option value="02">Feb</option>
<option value="03">Mar</option>
<option value="04">Apr</option>
<option value="05">May</option>
<option value="06">Jun</option>
<option value="07">Jul</option>
<option value="08">Aug</option>
<option value="09">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
</div>
<div class="col-lg-4">
<input type="text" class="form-control" id="cekthn" value="{{ $tahunne }}">
</div>
<div class="col-lg-2">
<button class="btn btn-warning btn-flat" type="button" id="btnviewdata">View Report</button>
@@ -1,9 +1,9 @@
@extends('dokter.ppdsdeveloper')
@extends(Session::get('previlage') == 'developer' ? 'dokter.ppdsdeveloper' : 'dokter.ppds')
@push('styles')
<style>
#divawal {
display: none !important;
display: none;
}
</style>
@endpush
@@ -11,7 +11,106 @@
@push('script')
<script type="text/javascript">
$(function () {
$('#divawal').hide();
var focusPeriksaId = @json((string) ($focusPeriksaId ?? ''));
var returnUrl = @json($expertiseReturnUrl ?? url('/'));
var shouldOpenOnLoad = @json((bool) ($openExpertiseOnLoad ?? false));
var initialListMode = @json($initialListMode ?? 'searchbydate');
var initialStartDate = @json($initialStartDate ?? '');
var initialEndDate = @json($initialEndDate ?? '');
var autoOpenAttempts = 0;
var maxAutoOpenAttempts = 12;
var hasOpenedTarget = false;
function setInitialFilters() {
if ($('#mulai').length) {
$('#mulai').val(initialStartDate);
}
if ($('#akhir').length) {
$('#akhir').val(initialEndDate);
}
if ($('#valjenis').length) {
$('#valjenis').val(initialListMode);
}
if ($('#master_set01').length) {
$('#master_set01').val(initialListMode);
}
if ($('#valcari').length) {
$('#valcari').val('');
}
}
function findExpertiseButton(boundIndex) {
var row = $('#gridpemeriksaan').find('[role="row"][boundindex="' + boundIndex + '"]').first();
if (!row.length) {
return $();
}
return row.find('button, input, .jqx-button').filter(function () {
var text = $.trim($(this).text());
var value = $.trim($(this).val());
return text === 'Expertise' || value === 'Expertise';
}).first();
}
function openFocusedPeriksa() {
if (!shouldOpenOnLoad || hasOpenedTarget || !focusPeriksaId) {
return;
}
var rows = $('#gridpemeriksaan').jqxGrid('getrows') || [];
var matchedRow = null;
for (var i = 0; i < rows.length; i++) {
if (String(rows[i].id) === focusPeriksaId) {
matchedRow = rows[i];
break;
}
}
if (!matchedRow) {
autoOpenAttempts++;
if (autoOpenAttempts >= maxAutoOpenAttempts) {
$('#divawal').show();
}
return;
}
var boundIndex = matchedRow.boundindex;
$('#gridpemeriksaan').jqxGrid('selectrow', boundIndex);
$('#gridpemeriksaan').jqxGrid('ensurerowvisible', boundIndex);
setTimeout(function () {
var button = findExpertiseButton(boundIndex);
if (button.length) {
hasOpenedTarget = true;
button.trigger('click');
return;
}
autoOpenAttempts++;
if (autoOpenAttempts >= maxAutoOpenAttempts) {
$('#divawal').show();
}
}, 150);
}
$('#gridpemeriksaan').off('bindingcomplete.mikro-expertise').on('bindingcomplete.mikro-expertise', function () {
openFocusedPeriksa();
});
$('#btnkembali2').off('click.mikro-expertise').on('click.mikro-expertise', function () {
window.location.href = returnUrl;
});
setInitialFilters();
setTimeout(function () {
if (typeof openedpage === 'function') {
openedpage();
} else {
$('#divawal').show();
}
}, 250);
});
</script>
@endpush
+10 -4
View File
@@ -90,7 +90,7 @@ GENEXPERT_RESPONSE_MODE_BY_IP = {
# Pastikan IP ini SESUAI dengan settingan "Server IP" di masing-masing alat (Client Mode)
TARGET_MAPPING = {
'flg_gxp1': '10.10.120.73',
'flg_gxp2': '10.10.123.74',
'flg_gxp2': '10.10.120.13',
'flg_gxp3': '10.10.120.75'
}
# GeneXpert Configuration
@@ -150,7 +150,7 @@ GENEXPERT_TEST_MAPPING = {
}
GENEXPERT_IP_CAPABILITIES = {
"10.10.120.75": ["MTB-RIF", "MTB-RIF_ULTRA2", "MTB-XDR", "HIV-1_VL", "COV-2 2"],
"10.10.120.74": ["HCV", "HBV"],
"10.10.120.13": ["HCV", "HBV"],
"10.10.120.73": ["MTB-RIF"]
}
# Default code jika nama tes di database tidak dikenali
@@ -2205,6 +2205,11 @@ def handle_genexpert_client(conn, addr):
try:
data = conn.recv(4096)
if not data:
if pending_astm_hl7:
log_genexpert_handshake(addr[0], "ASTM-MSG-PROCESS", detail="reason=connection-close")
process_genexpert_hl7_message(conn, addr[0], pending_astm_hl7, pending_astm_framing or "astm")
pending_astm_hl7 = None
pending_astm_framing = None
print(f"[GenExpert_TCP] Client {addr} menutup koneksi.")
break
@@ -2294,8 +2299,9 @@ def handle_genexpert_client(conn, addr):
# Sisa buffer (jika ada paket nempel di belakangnya) disimpan untuk loop berikutnya
buffer = buffer[end_marker_pos:]
# Bersihkan buffer dari sisa marker di awal (jika loop sebelumnya menyisakan sampah)
buffer = buffer.lstrip(b'\x04').lstrip(b'\r').lstrip(b'\n')
# Jangan buang EOT di sini; jika EOT datang menempel setelah frame ASTM,
# ia harus diproses pada iterasi berikutnya agar pending ASTM message dijalankan.
buffer = buffer.lstrip(b'\r').lstrip(b'\n')
# Decode ke string
temp_str = full_message_bytes.decode('latin-1', errors='ignore')