update
This commit is contained in:
@@ -2009,10 +2009,9 @@ class DokterController extends Controller
|
||||
return back();
|
||||
}
|
||||
} else if ($worklist == 'hapusdatapertumbuhankoloni'){
|
||||
$getdataawal = Periksa::where('nofoto', $nofoto)->first();
|
||||
$id = $getdataawal->id ?? $nofoto;
|
||||
$idtabel = $request->input('id');
|
||||
try {
|
||||
$ceksek = DB::table('pertumkolomni')->where('orderid', $id)->first();
|
||||
$ceksek = DB::table('pertumkolomni')->where('id', $idtabel)->first();
|
||||
Riwayat::create([
|
||||
'nofoto' => $nofoto,
|
||||
'jawaban' => 'Menghapus Data Pertumbuhan Koloni',
|
||||
@@ -2020,7 +2019,7 @@ class DokterController extends Controller
|
||||
'keterangan' => json_encode($ceksek),
|
||||
'verifikasi' => '',
|
||||
]);
|
||||
DB::table('pertumkolomni')->where('orderid', $id)->delete();
|
||||
DB::table('pertumkolomni')->where('id', $idtabel)->delete();
|
||||
return response()->json(['icon' => 'success', 'warna' => '#1dcbbd', 'status' => 'Success', 'message' => 'Delete Data Pertumbuhan Koloni Berhasil']);
|
||||
} catch (Exception $e) {
|
||||
$pesan = $e->getMessage();
|
||||
|
||||
@@ -1310,7 +1310,7 @@ class FrontpageController extends Controller
|
||||
}
|
||||
}
|
||||
public function registerApi(Request $request) {
|
||||
Log::info(' Incomming '.json_encode($request->input()));
|
||||
//Log::info(' Incomming '.json_encode($request->input()));
|
||||
$decodedData = $request->json()->all();
|
||||
$norm = $decodedData['norm'] ?? null;
|
||||
$nama = $decodedData['nama'] ?? null;
|
||||
|
||||
@@ -5412,7 +5412,7 @@
|
||||
{ text: 'Time', datafield: 'daftarjam', width: 80, cellsalign: 'center', align: 'center'},
|
||||
{ text: 'Inputor', filtertype: 'checkedlist', datafield: 'nmpendaftar', width: 110, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Comming From', filtertype: 'checkedlist', datafield: 'asalpasien', width: 120, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Service', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Service', filtertype: 'checkedlist', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Status', filtertype: 'checkedlist', datafield: 'tlsstatus', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Themeplate', filtertype: 'checkedlist', datafield: 'dlp', width: 75, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Jenis', filtertype: 'checkedlist', datafield: 'diagnosa2', width: 75, cellsalign: 'left', align: 'center'},
|
||||
|
||||
@@ -5523,7 +5523,7 @@
|
||||
{ text: 'Time', datafield: 'daftarjam', width: 80, cellsalign: 'center', align: 'center'},
|
||||
{ text: 'Inputor', filtertype: 'checkedlist', datafield: 'nmpendaftar', width: 110, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Comming From', filtertype: 'checkedlist', datafield: 'asalpasien', width: 120, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Service', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Service', filtertype: 'checkedlist', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Status', filtertype: 'checkedlist', datafield: 'tlsstatus', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Themeplate', filtertype: 'checkedlist', datafield: 'dlp', width: 75, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Jenis', filtertype: 'checkedlist', datafield: 'diagnosa2', width: 75, cellsalign: 'left', align: 'center'},
|
||||
|
||||
@@ -5462,7 +5462,7 @@
|
||||
{ text: 'Time', datafield: 'daftarjam', width: 80, cellsalign: 'center', align: 'center'},
|
||||
{ text: 'Inputor', filtertype: 'checkedlist', datafield: 'nmpendaftar', width: 110, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Comming From', filtertype: 'checkedlist', datafield: 'asalpasien', width: 120, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Service', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Service', filtertype: 'checkedlist', datafield: 'tlsreques', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Status', filtertype: 'checkedlist', datafield: 'tlsstatus', width: 150, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Themeplate', filtertype: 'checkedlist', datafield: 'dlp', width: 75, cellsalign: 'left', align: 'center'},
|
||||
{ text: 'Jenis', filtertype: 'checkedlist', datafield: 'diagnosa2', width: 75, cellsalign: 'left', align: 'center'},
|
||||
|
||||
+63
-1
@@ -81,6 +81,11 @@ GENEXPERT_RESULT_QUERY_INTERVAL_SECONDS = 120
|
||||
GENEXPERT_RESULT_QUERY_MAX_DURATION_SECONDS = 21600
|
||||
GENEXPERT_RESULT_QUERY_INFLIGHT_TIMEOUT_SECONDS = 45
|
||||
GENEXPERT_ENABLE_RESULT_QUERY_SCHEDULER = False
|
||||
GENEXPERT_RESPONSE_MODE_DEFAULT = "hl7_passive"
|
||||
GENEXPERT_RESPONSE_MODE_BY_IP = {
|
||||
# "10.10.120.73": "astm_active",
|
||||
# "10.10.120.75": "hl7_passive",
|
||||
}
|
||||
# Mapping Flag ke IP Address GeneXpert
|
||||
# Pastikan IP ini SESUAI dengan settingan "Server IP" di masing-masing alat (Client Mode)
|
||||
TARGET_MAPPING = {
|
||||
@@ -570,14 +575,71 @@ def frame_genexpert_response(hl7_message, framing):
|
||||
return f"\x0b{message}\x1c\r".encode("utf-8")
|
||||
return message.encode("utf-8")
|
||||
|
||||
def recv_genexpert_control_char(conn, timeout_seconds=5):
|
||||
previous_timeout = conn.gettimeout()
|
||||
try:
|
||||
conn.settimeout(timeout_seconds)
|
||||
return conn.recv(1)
|
||||
finally:
|
||||
conn.settimeout(previous_timeout)
|
||||
|
||||
def send_genexpert_astm_frame(conn, ip_addr, payload, label=""):
|
||||
try:
|
||||
conn.sendall(b"\x05")
|
||||
log_genexpert_handshake(ip_addr, "ENQ-TX", detail=f"label={label}")
|
||||
|
||||
ctrl = recv_genexpert_control_char(conn, timeout_seconds=5)
|
||||
if ctrl == b"\x06":
|
||||
log_genexpert_handshake(ip_addr, "ACK-RX", detail=f"phase=pre-frame,label={label}")
|
||||
elif ctrl == b"\x15":
|
||||
log_genexpert_handshake(ip_addr, "NAK-RX", detail=f"phase=pre-frame,label={label}")
|
||||
return False
|
||||
else:
|
||||
log_genexpert_handshake(ip_addr, "CTRL-RX", detail=f"phase=pre-frame,label={label},hex={ctrl.hex() if ctrl else 'timeout'}")
|
||||
return False
|
||||
|
||||
conn.sendall(payload)
|
||||
log_genexpert_handshake(ip_addr, "FRAME-TX", detail=f"label={label},bytes={len(payload)}")
|
||||
|
||||
ctrl = recv_genexpert_control_char(conn, timeout_seconds=5)
|
||||
if ctrl == b"\x06":
|
||||
log_genexpert_handshake(ip_addr, "ACK-RX", detail=f"phase=post-frame,label={label}")
|
||||
conn.sendall(b"\x04")
|
||||
log_genexpert_handshake(ip_addr, "EOT-TX", detail=f"label={label}")
|
||||
return True
|
||||
if ctrl == b"\x15":
|
||||
log_genexpert_handshake(ip_addr, "NAK-RX", detail=f"phase=post-frame,label={label}")
|
||||
conn.sendall(b"\x04")
|
||||
log_genexpert_handshake(ip_addr, "EOT-TX", detail=f"label={label},after=nak")
|
||||
return False
|
||||
|
||||
log_genexpert_handshake(ip_addr, "CTRL-RX", detail=f"phase=post-frame,label={label},hex={ctrl.hex() if ctrl else 'timeout'}")
|
||||
conn.sendall(b"\x04")
|
||||
log_genexpert_handshake(ip_addr, "EOT-TX", detail=f"label={label},after=unexpected")
|
||||
return False
|
||||
except Exception as exc:
|
||||
log_genexpert_handshake(ip_addr, "ASTM-SEND-ERROR", detail=f"label={label},error={exc}")
|
||||
return False
|
||||
|
||||
def get_genexpert_response_mode(ip_addr):
|
||||
ip_addr = str(ip_addr or "").strip()
|
||||
mode = GENEXPERT_RESPONSE_MODE_BY_IP.get(ip_addr, GENEXPERT_RESPONSE_MODE_DEFAULT)
|
||||
if mode not in {"hl7_passive", "astm_active"}:
|
||||
mode = GENEXPERT_RESPONSE_MODE_DEFAULT
|
||||
return mode
|
||||
|
||||
def send_genexpert_response(conn, ip_addr, hl7_message, framing, label=""):
|
||||
log_genexpert_hl7("OUT", ip_addr, hl7_message, label=label)
|
||||
log_genexpert_hl7_full("OUT", ip_addr, hl7_message, label=label)
|
||||
payload = frame_genexpert_response(hl7_message, framing)
|
||||
response_mode = get_genexpert_response_mode(ip_addr)
|
||||
print(
|
||||
f"[GENEXPERT-DEBUG] Send response ip={ip_addr}, framing={framing}, "
|
||||
f"label={label}, bytes={len(payload)}"
|
||||
f"response_mode={response_mode}, label={label}, bytes={len(payload)}"
|
||||
)
|
||||
if framing == "astm" and response_mode == "astm_active":
|
||||
send_genexpert_astm_frame(conn, ip_addr, payload, label=label)
|
||||
return
|
||||
conn.sendall(payload)
|
||||
|
||||
def send_genexpert_transport_ack(conn, ip_addr, framing, reason="frame-received"):
|
||||
|
||||
Reference in New Issue
Block a user