From 532316aa76d7d0d7e4cc62124b7c3846ab39a302 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Sat, 7 Dec 2024 09:25:13 +0700 Subject: [PATCH 1/2] add date on dashboard --- app/Config/Filters.php | 5 ++++- app/Config/Routes.php | 8 ++++---- app/Config/Toolbar.php | 1 + app/Controllers/API_Dashboard.php | 4 +++- app/Controllers/PrinterController.php | 4 ++-- app/Views/admin/dashboard.php | 14 ++++++++++++-- app/Views/dashboard.php | 2 +- app/Views/fo/dashboard.php | 26 +++++++++++++++++++++----- app/Views/result_report.php | 4 +--- app/Views/user/dashboard.php | 26 +++++++++++++++++++++----- 10 files changed, 70 insertions(+), 24 deletions(-) diff --git a/app/Config/Filters.php b/app/Config/Filters.php index 3ce8a21..8e2d1aa 100644 --- a/app/Config/Filters.php +++ b/app/Config/Filters.php @@ -72,12 +72,15 @@ class Filters extends BaseFilters 'before' => [ 'role' => [ 'except' => [ 'auth/*', 'setup', 'api/*' - ]] + ]], // 'honeypot', // 'csrf', // 'invalidchars', ], 'after' => [ + 'toolbar' => [ + 'except' => ['api/*', 'prints/*', 'prints/result_test/*'], + ], // 'honeypot', // 'secureheaders', ], diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f52d7be..a09e1ef 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -23,7 +23,7 @@ $routes->get('/', 'Auth::redirects'); $routes->get('changePass/', 'Auth::changePass'); // API - Dashboard -$routes->get('/api/dashboard/index', 'API_Dashboard::index'); +$routes->POST('/api/dashboard/index', 'API_Dashboard::index'); // API - Tubes $routes->get('/tubes/collect/(:any)/(:any)', 'API_Tubes::collect/$1/$2'); @@ -80,6 +80,6 @@ $routes->group('fo', ['filter' => 'role:fo'], static function ($routes) { }); // Printers -$routes->get('/prints/single_sample/(:any)/(:any)', 'PrinterController::printSingleSampleBarcode/$1/$2'); -$routes->get('/prints/all_sample', 'PrinterController::printAllSampleBarcode'); -$routes->get('/prints/result_test/(:any)', 'PrinterController::printResultTest/$1'); \ No newline at end of file +$routes->get('prints/single_sample/(:any)/(:any)', 'PrinterController::printSingleSampleBarcode/$1/$2'); +$routes->get('prints/all_sample', 'PrinterController::printAllSampleBarcode'); +$routes->get('prints/result_test/(:any)', 'PrinterController::printResultTest/$1'); \ No newline at end of file diff --git a/app/Config/Toolbar.php b/app/Config/Toolbar.php index 5a3e504..bda0ffe 100644 --- a/app/Config/Toolbar.php +++ b/app/Config/Toolbar.php @@ -119,4 +119,5 @@ class Toolbar extends BaseConfig public array $watchedExtensions = [ 'php', 'css', 'js', 'html', 'svg', 'json', 'env', ]; + } diff --git a/app/Controllers/API_Dashboard.php b/app/Controllers/API_Dashboard.php index e382770..cc56fa7 100644 --- a/app/Controllers/API_Dashboard.php +++ b/app/Controllers/API_Dashboard.php @@ -8,6 +8,8 @@ class API_Dashboard extends ResourceController { public function index() { $db = \Config\Database::connect(); + $date1 = $this->request->getPost('date1'); + $date2 = $this->request->getPost('date2'); $sql = "select sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, sr.HOSTORDERNUMBER, p.PATNUMBER, p.NAME, TESTS=stuff(( select ', '+'('+T.SP_TESTCODE+')' from ( select T.SP_TESTCODE from SP_TESTS T @@ -49,7 +51,7 @@ end STATS from SP_REQUESTS sr left join PATIENTS p on p.PATID=sr.PATID left join REQUESTS r on r.ACCESSNUMBER=sr.SP_ACCESSNUMBER - where sr.COLLECTIONDATE between '2024-11-13 00:00' and '2024-11-21 23:59' + where sr.COLLECTIONDATE between '$date1 00:00' and '$date2 23:59' order by sr.COLLECTIONDATE desc"; $query = $db->query($sql); $results = $query->getResultArray(); diff --git a/app/Controllers/PrinterController.php b/app/Controllers/PrinterController.php index 3c9eb51..6c81023 100644 --- a/app/Controllers/PrinterController.php +++ b/app/Controllers/PrinterController.php @@ -244,7 +244,7 @@ P1 $headPage = "
- +
@@ -415,7 +415,7 @@ P1 } public function printResultTest($access) { - + $data_mentah = [ [ "chapter_eng" => "IMUNOLOGY 4 PANEL", diff --git a/app/Views/admin/dashboard.php b/app/Views/admin/dashboard.php index 46974a8..f80e885 100644 --- a/app/Views/admin/dashboard.php +++ b/app/Views/admin/dashboard.php @@ -7,6 +7,7 @@
+ Date : -
@@ -37,13 +38,21 @@ section('script') ?> endSection() ?> \ No newline at end of file diff --git a/app/Views/result_report.php b/app/Views/result_report.php index a7846ca..345ca03 100644 --- a/app/Views/result_report.php +++ b/app/Views/result_report.php @@ -5,10 +5,8 @@ - - + - \ No newline at end of file diff --git a/app/Views/user/dashboard.php b/app/Views/user/dashboard.php index 42e2ffa..f80e885 100644 --- a/app/Views/user/dashboard.php +++ b/app/Views/user/dashboard.php @@ -1,4 +1,4 @@ -extend('user/layout/main.php') ?> +extend('admin/layout/main.php') ?> section('content') ?> @@ -7,6 +7,7 @@
+ Date : -
@@ -17,6 +18,7 @@ + @@ -36,13 +38,21 @@ section('script') ?> endSection() ?> \ No newline at end of file From 464837036345ae5ce9591eb39b2647c2a2333d9a Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Sat, 7 Dec 2024 13:35:34 +0700 Subject: [PATCH 2/2] add dict chapters, fix dict test --- app/Config/Routes.php | 8 +- app/Controllers/API_DictChapters.php | 57 +++++++++++ app/Controllers/API_DictTests.php | 10 +- app/Controllers/AdminController.php | 4 + app/Views/admin/dictChapters_index.php | 131 +++++++++++++++++++++++++ app/Views/admin/layout/sidebar.php | 3 +- 6 files changed, 209 insertions(+), 4 deletions(-) create mode 100644 app/Controllers/API_DictChapters.php create mode 100644 app/Views/admin/dictChapters_index.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a09e1ef..25eb0ea 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -51,12 +51,17 @@ $routes->POST('api/dictTests/save', 'API_DictTests::save'); $routes->get('api/dictTests/index', 'API_DictTests::index'); $routes->get('api/dictTests/detail/(:any)', 'API_DictTests::detail/$1'); -// API - DictTests +// API - DictMappings $routes->get('api/dictMappings/index', 'API_DictMappings::index'); $routes->POST('api/dictMappings/saveSingle', 'API_DictMappings::saveSingle'); $routes->POST('api/dictMappings/saveProfile', 'API_DictMappings::saveProfile'); $routes->get('api/dictMappings/detail/(:any)', 'API_DictMappings::detail/$1'); +// API - DictChapters +$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'); + // admin $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) { $routes->get('', 'AdminController::index'); @@ -64,6 +69,7 @@ $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) { $routes->get('userroles/', 'AdminController::userroles_index'); $routes->get('users/', 'AdminController::users_index'); $routes->get('dictTests/', 'AdminController::dictTests_index'); + $routes->get('dictChapters/', 'AdminController::dictChapters_index'); $routes->get('dictMappings/', 'AdminController::dictMappings_index'); }); diff --git a/app/Controllers/API_DictChapters.php b/app/Controllers/API_DictChapters.php new file mode 100644 index 0000000..003a2ad --- /dev/null +++ b/app/Controllers/API_DictChapters.php @@ -0,0 +1,57 @@ +query($sql); + $results = $query->getResultArray(); + $data['dictChapters'] = $results; + + return $this->respond($data, 200); + } + + public function detail($chapcode) { + $data = array(); + $db = \Config\Database::connect(); + $sql = "select dc.CHAPCODE, dc.SHORTTEXT, cdc.TEXT1, cdc.TEXT2 from DICT_CHAPTERS dc + left join cmod.dbo.CM_DICT_CHAPTERS cdc on dc.CHAPCODE=cdc.CHAPCODE + where dc.CHAPCODE='$chapcode'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + if(isset($results[0])) { $data = $results[0]; } + return $this->respond($data, 200); + } + + public function save() { + $chapcode = $this->request->getPost('chapcode'); + $text1 = $this->request->getPost('text1'); + $text2 = $this->request->getPost('text2'); + + $db = \Config\Database::connect(); + $sql = "MERGE INTO cmod.dbo.CM_DICT_CHAPTERS AS t + USING ( VALUES ('$chapcode', '$text1', '$text2') + ) AS s (CHAPCODE, TEXT1, TEXT2) on t.CHAPCODE=s.CHAPCODE + WHEN NOT MATCHED BY TARGET THEN + INSERT (CHAPCODE, TEXT1, TEXT2) + VALUES (s.CHAPCODE, s.TEXT1, s.TEXT2) + WHEN MATCHED THEN + UPDATE set TEXT1=s.TEXT1, TEXT2=s.TEXT2;"; + //echo "
$sql
"; + if( $db->query($sql) ) { + return $this->respond(['message' => 'Save Success'],201); + } else { + $response = [ + 'errors' => $db->errors(), + 'message' => 'Invalid Inputs' + ]; + return $this->fail($response , 409); + } + } +} \ No newline at end of file diff --git a/app/Controllers/API_DictTests.php b/app/Controllers/API_DictTests.php index c75206e..10562f6 100644 --- a/app/Controllers/API_DictTests.php +++ b/app/Controllers/API_DictTests.php @@ -61,8 +61,14 @@ class API_DictTests extends ResourceController { $refftext = $this->request->getPost('refftext'); $db = \Config\Database::connect(); - $sql = "INSERT INTO cmod.dbo.CM_DICT_TESTS (TESTCODE, TEXT1, TEXT2, REFFTEXT, LOGDATE ) VALUES ('$testcode', '$text1', '$text2', '$refftext' GETDATE())"; - $sql = "UPDATE cmod.dbo.CM_DICT_TESTS set TEXT1='$text1', TEXT2='$text2', REFFTEXT='$refftext', LOGDATE=GETDATE() where TESTCODE='$testcode'"; + $sql = "MERGE INTO cmod.dbo.CM_DICT_TESTS AS t + USING ( VALUES ('$testcode', '$text1', '$text2', '$unit', '$refftext') + ) AS s (TESTCODE, TEXT1, TEXT2, UNIT, REFFTEXT) on t.TESTCODE=s.TESTCODE + WHEN NOT MATCHED BY TARGET THEN + INSERT (TESTCODE, TEXT1, TEXT2, UNIT, REFFTEXT, LOGDATE) + VALUES (s.TESTCODE, s.TEXT1, s.TEXT2, s.UNIT, s.REFFTEXT, GETDATE()) + WHEN MATCHED THEN + UPDATE set TEXT1=s.TEXT1, TEXT2=s.TEXT2, UNIT=s.UNIT, REFFTEXT=s.REFFTEXT;"; if( $db->query($sql) ) { return $this->respond(['message' => 'Save Success'],201); diff --git a/app/Controllers/AdminController.php b/app/Controllers/AdminController.php index be66727..3fcc93f 100644 --- a/app/Controllers/AdminController.php +++ b/app/Controllers/AdminController.php @@ -59,6 +59,10 @@ class AdminController extends BaseController { return view('admin/dictTests_index'); } + public function dictChapters_index() { + return view('admin/dictChapters_index'); + } + public function dictMappings_index() { $db = \Config\Database::connect(); $sql = "select TESTCODE from DICT_TESTS where ENDVALIDDATE is null"; diff --git a/app/Views/admin/dictChapters_index.php b/app/Views/admin/dictChapters_index.php new file mode 100644 index 0000000..02f152e --- /dev/null +++ b/app/Views/admin/dictChapters_index.php @@ -0,0 +1,131 @@ +extend('admin/layout/main.php') ?> + +section('content') ?> +
+
+
Dictionary Chapters
+
+
Hosp Test Status
+ + + + + + + + + + +
Chapter codeShorttextTextAction
+
+
+
+ + +endSection() ?> + +section('script') ?> + +endSection() ?> \ No newline at end of file diff --git a/app/Views/admin/layout/sidebar.php b/app/Views/admin/layout/sidebar.php index 8e5d917..43baefe 100644 --- a/app/Views/admin/layout/sidebar.php +++ b/app/Views/admin/layout/sidebar.php @@ -7,7 +7,8 @@ Change Password
Administration
Dict. Mapping Order - Dict. Test + Dict. Chapter + Dict. Test Users User Roles