This commit is contained in:
Dwi Swandhana
2026-03-04 19:01:23 +07:00
parent 08bddf171a
commit c96552789e
3 changed files with 49 additions and 37 deletions
@@ -2266,8 +2266,8 @@ class DokterController extends Controller
$arrnofoto = explode('-', $nofoto);
$nofoto = $arrnofoto[0];
if ($statuse != 'Selesai'){
if ($statuse == 'Dikerjakan awal'){
Periksa::where('id', $id)->where('status', 'Dikerjakan awal')->update([
if ($statuse == 'Pemeriksaan awal'){
Periksa::where('id', $id)->where('status', 'Pemeriksaan awal')->update([
'status' => 'Pemeriksaan Sampel',
'excutor' => $idpemeriksa,
]);
@@ -2275,7 +2275,7 @@ class DokterController extends Controller
return back();
} else {
Periksa::where('id', $id)->whereNull('status')->update([
'status' => 'Dikerjakan awal',
'status' => 'Pemeriksaan awal',
'excutor' => $idpemeriksa,
]);
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Status Updated']);
+10 -10
View File
@@ -286,7 +286,7 @@ class ListController extends Controller
WHEN status LIKE '%Decliend%' THEN '<strong><font color=red>Decliend</font></strong>'
WHEN status LIKE '%Selesai%' THEN '<span class=\"badge badge-success\">Selesai</span>'
WHEN status LIKE '%Arsip%' THEN '<span class=\"badge badge-primary\">Arsip</span>'
WHEN status LIKE '%Dikerjakan awal%' THEN '<span class=\"badge badge-primary\">Dikerjakan awal</span>'
WHEN status LIKE '%Pemeriksaan awal%' THEN '<span class=\"badge badge-primary\">Pemeriksaan awal</span>'
WHEN status LIKE '%Data Vitek di Terima%' THEN '<span class=\"badge badge-warning\">Data Vitek di Terima</span>'
ELSE CONCAT('<span class=\"badge badge-info\">', status::text, '</span>')
END AS tlsstatus"),
@@ -300,7 +300,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nofoto::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nofoto::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nofoto::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
ELSE CONCAT('<font color=red>', nofoto::text, '</font>')
END AS tlsnofoto"),
@@ -314,7 +314,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', noregister::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', noregister::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', noregister::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
ELSE CONCAT('<font color=red>', noregister::text, '</font>')
END AS tlsnoregister"),
@@ -328,7 +328,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nmpasien::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nmpasien::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nmpasien::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
ELSE CONCAT('<font color=red>', nmpasien::text, '</font>')
END AS tlsnama"),
@@ -342,7 +342,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', reques::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', reques::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', reques::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
ELSE CONCAT('<font color=red>', reques::text, '</font>')
END AS tlsreques")
@@ -621,7 +621,7 @@ class ListController extends Controller
WHEN status LIKE '%Decliend%' THEN '<strong><font color=red>Decliend</font></strong>'
WHEN status LIKE '%Selesai%' THEN '<span class=\"badge badge-success\">Selesai</span>'
WHEN status LIKE '%Arsip%' THEN '<span class=\"badge badge-primary\">Arsip</span>'
WHEN status LIKE '%Dikerjakan awal%' THEN '<span class=\"badge badge-primary\">Dikerjakan awal</span>'
WHEN status LIKE '%Pemeriksaan awal%' THEN '<span class=\"badge badge-primary\">Pemeriksaan awal</span>'
WHEN status LIKE '%Data Vitek di Terima%' THEN '<span class=\"badge badge-warning\">Data Vitek di Terima</span>'
ELSE CONCAT('<span class=\"badge badge-info\">', status::text, '</span>')
END AS tlsstatus"),
@@ -635,7 +635,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nofoto::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nofoto::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nofoto::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
ELSE CONCAT('<font color=red>', nofoto::text, '</font>')
END AS tlsnofoto"),
@@ -649,7 +649,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', noregister::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', noregister::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', noregister::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
ELSE CONCAT('<font color=red>', noregister::text, '</font>')
END AS tlsnoregister"),
@@ -663,7 +663,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nmpasien::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nmpasien::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nmpasien::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
ELSE CONCAT('<font color=red>', nmpasien::text, '</font>')
END AS tlsnama"),
@@ -677,7 +677,7 @@ class ListController extends Controller
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', reques::text, '</font></strong>')
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', reques::text, '</font></strong>')
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', reques::text, '</span>')
WHEN status LIKE '%Dikerjakan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
ELSE CONCAT('<font color=red>', reques::text, '</font>')
END AS tlsreques")
+36 -24
View File
@@ -213,31 +213,32 @@ def get_pending_orders(ip_addr):
def send_all_orders(conn, ip_addr, hl7_msg, msg_id):
orders = get_pending_orders(ip_addr)
session = SessionLocal()
try:
if not orders:
print(f"[GENEXPERT] Tidak ada order pending untuk {ip_addr}")
rsp = (
f"MSH|^~\\&|LIS|LAB|GeneXpert|Cepheid|{datetime.datetime.now().strftime('%Y%m%d%H%M%S')}||RSP^Z03|{msg_id}|P|2.5\r"
f"MSA|AA|{msg_id}\r"
f"QAK|NF|{msg_id}\r"
)
conn.sendall(f"\x0b{rsp}\x1c\r".encode('utf-8'))
return
if not orders:
print(f"[GENEXPERT] Tidak ada order pending untuk {ip_addr}")
rsp = (
f"MSH|^~\\&|LIS|LAB|GeneXpert|Cepheid|{datetime.datetime.now().strftime('%Y%m%d%H%M%S')}||RSP^Z03|{msg_id}|P|2.5\r"
f"MSA|AA|{msg_id}\r"
f"QAK|NF|{msg_id}\r"
)
conn.sendall(f"\x0b{rsp}\x1c\r".encode('utf-8'))
return
print(f"[GENEXPERT] Mengirim {len(orders)} order ke {ip_addr}")
print(f"[GENEXPERT] Mengirim {len(orders)} order ke {ip_addr}")
for order in orders:
rsp = create_hl7_dsr_response(order, msg_id, "")
print(f"[GENEXPERT] Order ditemukan untuk {ip_addr}")
mllp = f"\x0b{rsp}\x1c\r"
conn.sendall(mllp.encode('utf-8'))
flag = get_flag_by_device(ip_addr)
setattr(order, flag, True)
session.add(order)
for order in orders:
rsp = create_hl7_dsr_response(order, msg_id, "")
print(f"[GENEXPERT] Order ditemukan untuk {ip_addr}")
mllp = f"\x0b{rsp}\x1c\r"
conn.sendall(mllp.encode('utf-8'))
flag = get_flag_by_device(ip_addr)
setattr(order, flag, True)
session.add(order)
session.commit()
session.close()
session.commit()
finally:
session.close()
def extract_msg_control_id(hl7_message):
try:
@@ -448,8 +449,19 @@ def parse_hl7_result(conn, msg_id, hl7_message, device_name="GeneXpert"):
# 4. Validasi Data Penting
if not sample_id:
logging.warning("[HL7 Parser] ORU diterima tanpa accession/sample_id. Data diabaikan.")
print("[HL7 Parser] ORU diterima tanpa accession/sample_id. Data diabaikan.")
source_ip = ""
try:
source_ip = str(conn.getpeername()[0]).strip()
except Exception:
source_ip = str(device_name).replace("GeneXpert-", "").replace(",", " ").strip()
if source_ip:
logging.info(f"[HL7 Parser] ORU tanpa sample_id dari {source_ip}. Anggap sebagai request order.")
print(f"[HL7 Parser] ORU tanpa sample_id dari {source_ip}. Anggap sebagai request order.")
send_all_orders(conn, source_ip, clean_hl7, msg_id)
else:
logging.warning("[HL7 Parser] ORU tanpa sample_id diterima, tetapi IP sumber tidak dapat diidentifikasi.")
print("[HL7 Parser] ORU tanpa sample_id diterima, tetapi IP sumber tidak dapat diidentifikasi.")
return
mapped_no_id = sample_id