-
+
-
+
diff --git a/htdocs/resources/views/dokter/mikro-expertise.blade.php b/htdocs/resources/views/dokter/mikro-expertise.blade.php
index 1b902324..ccc0039c 100644
--- a/htdocs/resources/views/dokter/mikro-expertise.blade.php
+++ b/htdocs/resources/views/dokter/mikro-expertise.blade.php
@@ -1,9 +1,9 @@
-@extends('dokter.ppdsdeveloper')
+@extends(Session::get('previlage') == 'developer' ? 'dokter.ppdsdeveloper' : 'dokter.ppds')
@push('styles')
@endpush
@@ -11,7 +11,106 @@
@push('script')
@endpush
diff --git a/listener/app.py b/listener/app.py
index 47617460..818f66d5 100644
--- a/listener/app.py
+++ b/listener/app.py
@@ -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')