diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 2f5bb91..83da432 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -62,10 +62,22 @@ $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_HISOrders::index'); +$routes->POST('api/orders/save', 'API_HISOrders::save'); +$routes->get('api/orders/detail/(:any)', 'API_HISOrders::detail/$1'); +$routes->get('api/patients/search/(:any)', 'API_HISPatients::search/$1'); +$routes->get('api/patients/detail/(:any)', 'API_HISPatients::detail/$1'); +$routes->POST('api/patients/save', 'API_HISPatients::save'); + // 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('patients/', 'AdminController::patients_index'); $routes->get('userroles/', 'AdminController::userroles_index'); $routes->get('users/', 'AdminController::users_index'); $routes->get('dictTests/', 'AdminController::dictTests_index'); diff --git a/app/Controllers/API_HISOrders.php b/app/Controllers/API_HISOrders.php new file mode 100644 index 0000000..64ceccf --- /dev/null +++ b/app/Controllers/API_HISOrders.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/API_HISPatients.php b/app/Controllers/API_HISPatients.php new file mode 100644 index 0000000..c06cba7 --- /dev/null +++ b/app/Controllers/API_HISPatients.php @@ -0,0 +1,68 @@ +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 search($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 detail($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 save() { + $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..23f361c 100644 --- a/app/Controllers/AdminController.php +++ b/app/Controllers/AdminController.php @@ -91,4 +91,22 @@ 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); + } + + public function patients_index() { + return view('patients_index'); + } } diff --git a/app/Views/admin/dictMappings_index.php b/app/Views/admin/dictMappings_index.php index f49b6be..28c6d55 100644 --- a/app/Views/admin/dictMappings_index.php +++ b/app/Views/admin/dictMappings_index.php @@ -80,12 +80,14 @@ foreach($tests as $data) {
LIS Code
| LIS Code | : | \n";$j++; } ?> |
\n";$j++; } ?> |
+ \n";$j++; } ?> |
+ \n";$j++; } ?> |
|---|
Summit-CRM
-