diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 2d3b873..4d86ae0 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -65,7 +65,10 @@ $routes->get('api/dictChapters/detail/(:any)', 'API_DictChapters::detail/$1'); // API - Orders $routes->POST('api/orders/index', 'API_HISOrders::index'); $routes->POST('api/orders/save', 'API_HISOrders::save'); +$routes->POST('api/orders/resend', 'API_HISOrders::resend'); $routes->get('api/orders/detail/(:any)', 'API_HISOrders::detail/$1'); + +// API - Patients $routes->get('api/patients/patnumberSearch/(:any)', 'API_HISPatients::patnumberSearch/$1'); $routes->POST('api/patients/search/', 'API_HISPatients::search'); $routes->get('api/patients/detail/(:any)', 'API_HISPatients::detail/$1'); @@ -76,8 +79,8 @@ $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) { $routes->get('', 'AdminController::index'); $routes->get('dashboard/viewAccess/(:any)', 'AdminController::viewAccess/$1'); $routes->get('orders/', 'AdminController::orders_index'); - $routes->get('orders/create/', 'AdminController::orders_update/0'); - $routes->get('orders/update/(:any)', 'AdminController::orders_update/$1'); + $routes->get('orders/create/', 'AdminController::orders_edit/0'); + $routes->get('orders/edit/(:any)', 'AdminController::orders_edit/$1'); $routes->get('patients/', 'AdminController::patients_index'); $routes->get('userroles/', 'AdminController::userroles_index'); $routes->get('users/', 'AdminController::users_index'); diff --git a/app/Controllers/API_HISOrders.php b/app/Controllers/API_HISOrders.php index 64ceccf..5af9e67 100644 --- a/app/Controllers/API_HISOrders.php +++ b/app/Controllers/API_HISOrders.php @@ -10,7 +10,7 @@ class API_HISOrders extends ResourceController { $db = \Config\Database::connect(); $date1 = $this->request->getPost('date1'); $date2 = $this->request->getPost('date2'); - $sql = "select o.VISITNUMBER, o.VISITDATE, o.PAYERNAME, o.TREATDOC, p.PATNUMBER, p.SEX, p.PATNAME, + $sql = "select o.ORDERID, o.VISITNUMBER, o.VISITDATE, o.PAYERNAME, o.TREATDOC, p.PATNUMBER, p.SEX, p.PATNAME, TESTS=stuff(( select ', '+t.HISCODE from ( select t.HISCODE from cmod.dbo.CM_HIS_TESTS t where t.ORDERID=o.ORDERID @@ -24,10 +24,23 @@ class API_HISOrders extends ResourceController { return $this->respond($data,200); } + public function detail($orderid) { + $db = \Config\Database::connect(); + $sql = "select * from cmod.dbo.CM_HIS_ORDERS o where o.ORDERID='$orderid'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + $data['orders'] = $results; + $sql = "select * from cmod.dbo.CM_HIS_TESTS where ORDERID='$orderid'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + $data['tests'] = $results; + return $this->respond($data,200); + } + public function save() { $db = \Config\Database::connect(); //Object { patid: "9", visitnumber: "9989", visitdate: "2024-12-13", treatdoc: "alam", payername: "mala", tests: (2) […] } - $orderid = '0'; + $orderid = $this->request->getPost('orderid'); $patid = $this->request->getPost('patid'); $visitnumber = $this->request->getPost('visitnumber'); $visitdate = $this->request->getPost('visitdate'); @@ -45,21 +58,35 @@ class API_HISOrders extends ResourceController { // query HIS_ORDERS if( $db->query($sql) ) { - if($orderid == '0') { + if($orderid == '0') { // new order $orderid = $db->insertID(); $test = ''; foreach($tests as $qtest) { $test .= "('$orderid', '$qtest'),"; } $test = rtrim($test, ","); $sql = "INSERT into cmod.dbo.CM_HIS_TESTS(ORDERID,HISCODE) VALUES $test"; + } else { // update + $test = ''; + foreach($tests as $qtest) { $test .= "('$orderid', '$qtest'),"; } + $test = rtrim($test, ","); + $sql = "MERGE INTO cmod.dbo.CM_HIS_TESTS AS t + USING ( VALUES + $test + ) AS s (ORDERID, HISCODE) on s.ORDERID=t.ORDERID and s.HISCODE=t.HISCODE + WHEN NOT MATCHED BY TARGET THEN + INSERT (ORDERID, HISCODE) + VALUES (s.ORDERID, s.HISCODE) + WHEN NOT MATCHED BY SOURCE and t.ORDERID='$orderid' THEN + UPDATE SET TESTSTATUS=1;"; } // done if( $db->query($sql) ) { - return $this->respond(['message' => 'Save Success'],201); + return $this->respond(['message' => 'Save Success', 'sql' => $sql],201); } else { $response = [ 'errors' => $db->errors(), - 'message' => 'Query test error' + 'message' => 'Query test error', + 'sql' => $sql ]; return $this->fail($response , 409); } @@ -113,4 +140,18 @@ class API_HISOrders extends ResourceController { $data['sql'] = $sql; return $this->respond($data , 200); } + + public function resend($visitnumber) { + $db = \Config\Database::connect(); + $sql = "update cmod.dbo.CM_HIS_ORDERS set ISTAKEN=null where VISITNUMBER='$visitnumber'"; + if( $db->query($sql) ) { + return $this->respond(['message' => 'Update Success'],201); + } else { + $response = [ + 'errors' => $db->errors(), + 'message' => 'Query error' + ]; + return $this->fail($response , 409); + } + } } diff --git a/app/Controllers/AdminController.php b/app/Controllers/AdminController.php index 23f361c..a8f2c16 100644 --- a/app/Controllers/AdminController.php +++ b/app/Controllers/AdminController.php @@ -96,14 +96,14 @@ class AdminController extends BaseController { return view('orders_index'); } - public function orders_update($orderid) { + public function orders_edit($orderid) { $db = \Config\Database::connect(); $sql = "select * from cmod.dbo.CM_DICT_MAPPINGS"; $query = $db->query($sql); $results = $query->getResultArray(); $data['tests'] = $results; $data['orderid'] = $orderid; - return view('orders_update', $data); + return view('orders_edit', $data); } public function patients_index() { diff --git a/app/Views/orders_update.php b/app/Views/orders_edit.php similarity index 90% rename from app/Views/orders_update.php rename to app/Views/orders_edit.php index 0817bd9..5b87704 100644 --- a/app/Views/orders_update.php +++ b/app/Views/orders_edit.php @@ -17,6 +17,7 @@ $visitdate = $now;

Order Creation

+
@@ -52,7 +53,7 @@ $visitdate = $now; - + @@ -171,15 +172,43 @@ $visitdate = $now; section('script') ?> endSection() ?> \ No newline at end of file diff --git a/app/Views/orders_index.php b/app/Views/orders_index.php index 13838c8..823f657 100644 --- a/app/Views/orders_index.php +++ b/app/Views/orders_index.php @@ -21,6 +21,7 @@ + @@ -56,15 +57,20 @@ function index() { $("#table-body").html(""); var data = response['data']; for (var i = 0; i < data.length; i++) { + orderid = data[i].ORDERID; visitdate = data[i].VISITDATE; visitnumber = data[i].VISITNUMBER; patnumber = data[i].PATNUMBER; patname = data[i].PATNAME; payername = data[i].PAYERNAME; tests = data[i].TESTS; + editBtn = ''; + resendBtn = ''; let datarow = '' + '' + ''; + ' ' + + '' + + ''; $("#table-body").append(datarow); } //$('#myTable').DataTable(); @@ -78,5 +84,21 @@ function create() { '_blank', "width=1200,height=700,location=no,toolbar=no,menubar=no" ); } + +function edit(orderid) { + window.open("/orders/edit/"+orderid, + '_blank', "width=1200,height=700,location=no,toolbar=no,menubar=no" + ); +} + +function resend(visitnumber) { + let url = 'api/orders/resend/'+visitnumber; + $.ajax({ + url: url, + method: 'url', + success: function(response) { console.log(response.responseJSON); }, + error: function(response) { console.log(response.responseJSON); } + }); +} endSection() ?> \ No newline at end of file diff --git a/app/Views/patients_index.php b/app/Views/patients_index.php index 4ad2200..6cb83a5 100644 --- a/app/Views/patients_index.php +++ b/app/Views/patients_index.php @@ -41,7 +41,7 @@
Visit# Visit Date
Patient Name Payer Name TestAction
' + visitdate + ' ' + visitnumber + ' ' + patnumber + ' ' + patname + - ' ' + payername + ' ' + tests + '
' + payername + ' ' + tests + '' + resendBtn + ' ' + editBtn + '