From 12783ee72e2c2b3d6146ba3300783098ece6a4bb Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Fri, 13 Dec 2024 14:20:14 +0700 Subject: [PATCH 1/2] add HIS order CRUD --- app/Config/Routes.php | 11 + app/Controllers/API_Orders.php | 116 ++++++++ app/Controllers/AdminController.php | 14 + app/Views/admin/layout/form.php | 85 +++--- app/Views/admin/layout/form.php_bak | 56 ++++ app/Views/admin/layout/sidebar.php | 12 +- app/Views/orders_index.php | 82 ++++++ app/Views/orders_update.php | 368 ++++++++++++++++++++++++++ public/assets/select2/select2.min.css | 1 + public/assets/select2/select2.min.js | 2 + 10 files changed, 693 insertions(+), 54 deletions(-) create mode 100644 app/Controllers/API_Orders.php create mode 100644 app/Views/admin/layout/form.php_bak create mode 100644 app/Views/orders_index.php create mode 100644 app/Views/orders_update.php create mode 100644 public/assets/select2/select2.min.css create mode 100644 public/assets/select2/select2.min.js diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 2f5bb91..d31edf7 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -62,10 +62,21 @@ $routes->get('api/dictChapters/index', 'API_DictChapters::index'); $routes->POST('api/dictChapters/save', 'API_DictChapters::save'); $routes->get('api/dictChapters/detail/(:any)', 'API_DictChapters::detail/$1'); +// API - Orders +$routes->POST('api/orders/index', 'API_Orders::index'); +$routes->POST('api/orders/save', 'API_Orders::save'); +$routes->get('api/orders/detail/(:any)', 'API_Orders::detail/$1'); +$routes->get('api/orders/patSearch/(:any)', 'API_Orders::patSearch/$1'); +$routes->get('api/orders/patDetail/(:any)', 'API_Orders::patDetail/$1'); +$routes->POST('api/orders/patSave', 'API_Orders::patSave'); + // admin $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('userroles/', 'AdminController::userroles_index'); $routes->get('users/', 'AdminController::users_index'); $routes->get('dictTests/', 'AdminController::dictTests_index'); diff --git a/app/Controllers/API_Orders.php b/app/Controllers/API_Orders.php new file mode 100644 index 0000000..ff76195 --- /dev/null +++ b/app/Controllers/API_Orders.php @@ -0,0 +1,116 @@ +request->getPost('date1'); + $date2 = $this->request->getPost('date2'); + $sql = "select 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 + ) as T + for xml path('')),1,1,'') + from cmod.dbo.CM_HIS_ORDERS o + left join cmod.dbo.CM_HIS_PATIENTS p on p.PATID=o.PATID"; + $query = $db->query($sql); + $results = $query->getResultArray(); + $data['data'] = $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'; + $patid = $this->request->getPost('patid'); + $visitnumber = $this->request->getPost('visitnumber'); + $visitdate = $this->request->getPost('visitdate'); + $treatdoc = $this->request->getPost('treatdoc'); + $payername = $this->request->getPost('payername'); + $tests = $this->request->getPost('tests'); + + if($orderid == '0') { + $sql = "INSERT INTO cmod.dbo.CM_HIS_ORDERS (PATID, VISITNUMBER, VISITDATE, TREATDOC, PAYERNAME) + VALUES ('$patid', '$visitnumber', '$visitdate', '$treatdoc', '$payername')"; + } else { + $sql = "UPDATE cmod.dbo.CM_HIS_ORDERS set PATID='$patid', VISITNUMBER='$visitnumber', VISITDATE='$visitdate', + TREATDOC='$treatdoc', PAYERNAME='$payername' where ORDERID='$orderid'"; + } + + // query HIS_ORDERS + if( $db->query($sql) ) { + if($orderid == '0') { + $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"; + } + + // done + if( $db->query($sql) ) { + return $this->respond(['message' => 'Save Success'],201); + } else { + $response = [ + 'errors' => $db->errors(), + 'message' => 'Query test error' + ]; + return $this->fail($response , 409); + } + } else { + $response = [ + 'errors' => $db->errors(), + 'message' => 'Query order error' + ]; + return $this->fail($response , 409); + } + } + + public function patSearch($patnumber) { + $db = \Config\Database::connect(); + $sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATNUMBER like '%$patnumber%'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + $data['patients'] = $results; + return $this->respond($data,200); + } + + public function patDetail($patnumber) { + $db = \Config\Database::connect(); + $sql = "select * from cmod.dbo.CM_HIS_PATIENTS where PATNUMBER='$patnumber'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + $data['patient'] = $results[0]; + return $this->respond($data,200); + } + + public function patSave() { + $db = \Config\Database::connect(); + $patid = $this->request->getPost('patid'); + $patnumber = $this->request->getPost('patnumber'); + $patname = $this->request->getPost('patname'); + $sex = $this->request->getPost('sex'); + $birthdate = $this->request->getPost('birthdate'); + $address = $this->request->getPost('address'); + $phone = $this->request->getPost('phone'); + if($patid == 0) { + $sql = "INSERT INTO cmod.dbo.CM_HIS_PATIENTS (PATNUMBER, PATNAME, SEX, BIRTHDATE, ADDRESS, PHONE) + VALUES ('$patnumber', '$patname', '$sex', '$birthdate', '$address','$phone')"; + } else { + $sql = "update cmod.dbo.CM_HIS_PATIENTS set PATNUMBER='$patnumber', PATNAME='$patname', + SEX='$sex', BIRTHDATE='$birthdate', ADDRESS='$address', PHONE='$phone' Where PATID='$patid'"; + } + $query = $db->query($sql); + if($patid == 0 ) { $patid = $db->insertID(); } + $data['patid'] = $patid; + $data['patnumber'] = $patnumber; + $data['sql'] = $sql; + return $this->respond($data , 200); + } +} diff --git a/app/Controllers/AdminController.php b/app/Controllers/AdminController.php index 8ef89c7..fb64c25 100644 --- a/app/Controllers/AdminController.php +++ b/app/Controllers/AdminController.php @@ -91,4 +91,18 @@ class AdminController extends BaseController { $data['tests'] = $results; return view('admin/dictMappings_index', $data); } + + public function orders_index() { + return view('orders_index'); + } + + public function orders_update($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); + } } diff --git a/app/Views/admin/layout/form.php b/app/Views/admin/layout/form.php index dd62f2d..fc609f8 100644 --- a/app/Views/admin/layout/form.php +++ b/app/Views/admin/layout/form.php @@ -1,56 +1,35 @@ -
- - - - - - -Summit-CRM
-