From 0550497a16ec64971c4cc5714e254dfd9f964010 Mon Sep 17 00:00:00 2001 From: "sas.fajri" Date: Fri, 12 Jun 2026 13:33:08 +0700 Subject: [PATCH] FHM09062601IBL - load_klinik tests format identik registration_v37 selectPx Co-Authored-By: Claude Sonnet 4.6 --- .../mockup/fo/ibl_registration/Order.php | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/application/controllers/mockup/fo/ibl_registration/Order.php b/application/controllers/mockup/fo/ibl_registration/Order.php index 3060aaa3..870d29bd 100644 --- a/application/controllers/mockup/fo/ibl_registration/Order.php +++ b/application/controllers/mockup/fo/ibl_registration/Order.php @@ -4791,13 +4791,14 @@ GROUP BY T_SampleStationID "; $rst['selected_company'] = $row_company ?: []; $rst['companies'] = $row_company ? [$row_company] : []; - // Tests dari order_detail_order + // Tests dari order_detail_order — format identik registration_v37 selectPx $detail_rows = $this->db_onedev->query( "SELECT odo.*, - t.T_TestName, t.T_TestSasCode, t.T_TestIsResult, - t.T_TestCode + spm.px_type, spm.T_TestIsCito, + spm.nat_test AS spm_nat_test, + spm.child_test AS spm_child_test FROM one_klinik.order_detail_order odo - LEFT JOIN t_test t ON odo.orderDetailOrderT_TestID = t.T_TestID + LEFT JOIN ss_price_mou spm ON spm.Ss_PriceMouID = odo.orderDetailOrderSsPriceMouID WHERE odo.orderDetailOrderOrderID = ? AND odo.orderDetailOrderIsActive = 'Y' ORDER BY odo.orderDetailOrderID ASC", [$row_header['orderID']] @@ -4805,22 +4806,31 @@ GROUP BY T_SampleStationID "; $tests = []; foreach ($detail_rows as $d) { - $child = json_decode($d['orderDetailOrderJsonChildren'] ?? '[]', true) ?: []; + $nat_test = json_decode($d['spm_nat_test'] ?? '[]') ?: []; + $child_test = json_decode($d['spm_child_test'] ?? '[]') ?: []; + + $requirement = []; + if (($d['px_type'] ?? '') === 'PX') { + $x = $this->db_smartone->query( + "SELECT fn_fo_requirement_get(?) x", [$d['orderDetailOrderT_TestID']] + )->row(); + if ($x && $x->x !== null) $requirement = json_decode($x->x); + } + $tests[] = [ - 'ss_price_mou_id' => $d['orderDetailOrderSsPriceMouID'], - 'pxid' => $d['orderDetailOrderT_TestID'] ?: $d['orderDetailOrderT_PacketID'], - 'pxcode' => $d['T_TestCode'] ?? $d['orderDetailOrderT_PacketName'], - 'pxsascode' => $d['T_TestSasCode'] ?? '', - 'test_name' => $d['orderDetailOrderT_TestName'] ?: $d['orderDetailOrderT_PacketName'], - 'pxname' => ($d['T_TestSasCode'] ?? '') . ' ' . ($d['orderDetailOrderT_TestName'] ?: $d['orderDetailOrderT_PacketName']), - 'is_packet' => $d['orderDetailOrderIsPacket'], - 'type' => $d['orderDetailOrderPacketType'], - 'bruto' => $d['orderDetailOrderT_PriceAmount'], - 'discountpersen' => $d['orderDetailOrderT_PriceDisc'], - 'discountrp' => $d['orderDetailOrderT_PriceDiscRp'], - 'total' => $d['orderDetailOrderT_PriceTotal'], - 'child_test' => $child, - 'isresult' => $d['T_TestIsResult'] ?? 'N', + 'T_TestID' => $d['orderDetailOrderT_TestID'], + 'T_TestName' => $d['orderDetailOrderT_TestName'], + 'px_type' => $d['px_type'] ?? '', + 'T_PriceAmount' => $d['orderDetailOrderT_PriceAmount'], + 'T_PriceDisc' => $d['orderDetailOrderT_PriceDisc'], + 'T_PriceDiscRp' => $d['orderDetailOrderT_PriceDiscRp'], + 'Ss_PriceMouID' => $d['orderDetailOrderSsPriceMouID'], + 'is_packet' => $d['orderDetailOrderIsPacket'], + 'packet_id' => $d['orderDetailOrderT_PacketID'] ?? '', + 'T_TestIsCito' => $d['T_TestIsCito'] ?? 'N', + 'nat_test' => $nat_test, + 'requirement' => $requirement, + 'child_test' => $child_test, ]; } $rst['tests'] = $tests;