From 8863dbb85f79af3165dd634c12a86ad3dac1e53d Mon Sep 17 00:00:00 2001 From: Dwi Swandhana Date: Thu, 7 May 2026 10:48:22 +0700 Subject: [PATCH] update --- htdocs/resources/views/admin/gudang.blade.php | 18 +-- .../views/dokter/mikro-expertise.blade.php | 105 +++++++++++++++++- listener/app.py | 14 ++- 3 files changed, 114 insertions(+), 23 deletions(-) diff --git a/htdocs/resources/views/admin/gudang.blade.php b/htdocs/resources/views/admin/gudang.blade.php index a16cab2f..d49ecc1d 100644 --- a/htdocs/resources/views/admin/gudang.blade.php +++ b/htdocs/resources/views/admin/gudang.blade.php @@ -255,24 +255,10 @@
- +
- +
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')