clqms-be/app/Config/Routes.php
mahdahar cb4181dbff refactor: restructure application architecture and consolidate controllers
- Consolidate page controllers into unified PagesController
- Remove deprecated V2 pages, layouts, and controllers (AuthPage, DashboardPage, V2Page)
- Add Edge resource with migration and model (EdgeResModel)
- Implement new main_layout.php for consistent page structure
- Reorganize patient views into dedicated module with dialog form
- Update routing configuration in Routes.php
- Enhance AuthFilter for improved authentication handling
- Clean up unused V2 assets (CSS, JS) and legacy images
- Update README.md with latest project information

This refactoring improves code organization, removes technical debt, and
establishes a cleaner foundation for future development.
2025-12-29 16:57:46 +07:00

191 lines
8.7 KiB
PHP

<?php
use CodeIgniter\Router\RouteCollection;
/**
* @var RouteCollection $routes
*/
$routes->options('(:any)', function() { return ''; });
// Faker
$routes->get('faker/faker-patient/(:num)', 'faker\FakerPatient::sendMany/$1');
// ===========================================
// Page Routes (Protected - returns views)
// ===========================================
$routes->group('', ['filter' => 'auth'], function($routes) {
$routes->get('/', 'PagesController::dashboard');
$routes->get('/patients', 'PagesController::patients');
$routes->get('/requests', 'PagesController::requests');
$routes->get('/settings', 'PagesController::settings');
});
// Login page (public)
$routes->get('/login', 'PagesController::login');
$routes->group('api', ['filter' => 'auth'], function($routes) {
$routes->get('dashboard', 'Dashboard::index');
$routes->get('result', 'Result::index');
$routes->get('sample', 'Sample::index');
});
$routes->post('/api/auth/login', 'Auth::login');
$routes->post('/api/auth/change_pass', 'Auth::change_pass');
$routes->post('/api/auth/register', 'Auth::register');
$routes->get('/api/auth/check', 'Auth::checkAuth');
$routes->post('/api/auth/logout', 'Auth::logout');
$routes->get('/api/patient', 'Patient\Patient::index');
$routes->post('/api/patient', 'Patient\Patient::create');
$routes->get('/api/patient/(:num)', 'Patient\Patient::show/$1');
$routes->delete('/api/patient', 'Patient\Patient::delete');
$routes->patch('/api/patient', 'Patient\Patient::update');
$routes->get('/api/patient/check', 'Patient\Patient::patientCheck');
$routes->get('/api/patvisit', 'PatVisit::index');
$routes->post('/api/patvisit', 'PatVisit::create');
$routes->get('/api/patvisit/patient/(:num)', 'PatVisit::showByPatient/$1');
$routes->get('/api/patvisit/(:any)', 'PatVisit::show/$1');
$routes->delete('/api/patvisit', 'PatVisit::delete');
$routes->patch('/api/patvisit', 'PatVisit::update');
$routes->post('/api/patvisitadt', 'PatVisit::createADT');
$routes->patch('/api/patvisitadt', 'PatVisit::updateADT');
$routes->get('/api/race', 'Race::index');
$routes->get('/api/race/(:num)', 'Race::show/$1');
$routes->get('/api/country', 'Country::index');
$routes->get('/api/country/(:num)', 'Country::show/$1');
$routes->get('/api/religion', 'Religion::index');
$routes->get('/api/religion/(:num)', 'Religion::show/$1');
$routes->get('/api/ethnic', 'Ethnic::index');
$routes->get('/api/ethnic/(:num)', 'Ethnic::show/$1');
$routes->get('/api/location', 'Location::index');
$routes->get('/api/location/(:num)', 'Location::show/$1');
$routes->post('/api/location', 'Location::create');
$routes->patch('/api/location', 'Location::update');
$routes->delete('/api/location', 'Location::delete');
$routes->get('/api/contact', 'Contact\Contact::index');
$routes->get('/api/contact/(:num)', 'Contact\Contact::show/$1');
$routes->post('/api/contact', 'Contact\Contact::create');
$routes->patch('/api/contact', 'Contact\Contact::update');
$routes->delete('/api/contact', 'Contact\git Contact::delete');
$routes->get('/api/occupation', 'Contact\Occupation::index');
$routes->get('/api/occupation/(:num)', 'Contact\Occupation::show/$1');
$routes->post('/api/occupation', 'Contact\Occupation::create');
$routes->patch('/api/occupation', 'Contact\Occupation::update');
//$routes->delete('/api/occupation', 'Contact\Occupation::delete');
$routes->get('/api/medicalspecialty', 'Contact\MedicalSpecialty::index');
$routes->get('/api/medicalspecialty/(:num)', 'Contact\MedicalSpecialty::show/$1');
$routes->post('/api/medicalspecialty', 'Contact\MedicalSpecialty::create');
$routes->patch('/api/medicalspecialty', 'Contact\MedicalSpecialty::update');
$routes->get('/api/valueset', 'ValueSet\ValueSet::index');
$routes->get('/api/valueset/(:num)', 'ValueSet\ValueSet::show/$1');
$routes->get('/api/valueset/valuesetdef/(:segment)', 'ValueSet\ValueSet::showByValueSetDef/$1');
$routes->post('/api/valueset', 'ValueSet\ValueSet::create');
$routes->patch('/api/valueset', 'ValueSet\ValueSet::update');
$routes->delete('/api/valueset', 'ValueSet\ValueSet::delete');
$routes->get('/api/valuesetdef/', 'ValueSet\ValueSetDef::index');
$routes->get('/api/valuesetdef/(:segment)', 'ValueSet\ValueSetDef::show/$1');
$routes->post('/api/valuesetdef', 'ValueSet\ValueSetDef::create');
$routes->patch('/api/valuesetdef', 'ValueSet\ValueSetDef::update');
$routes->delete('/api/valuesetdef', 'ValueSet\ValueSetDef::delete');
$routes->get('/api/counter/', 'Counter::index');
$routes->get('/api/counter/(:num)', 'Counter::show/$1');
$routes->post('/api/counter', 'Counter::create');
$routes->patch('/api/counter', 'Counter::update');
$routes->delete('/api/counter', 'Counter::delete');
$routes->get('/api/areageo', 'AreaGeo::index');
$routes->get('/api/areageo/provinces', 'AreaGeo::getProvinces');
$routes->get('/api/areageo/cities', 'AreaGeo::getCities');
//organization
// account
$routes->get('/api/organization/account/', 'Organization\Account::index');
$routes->get('/api/organization/account/(:num)', 'Organization\Account::show/$1');
$routes->post('/api/organization/account', 'Organization\Account::create');
$routes->patch('/api/organization/account', 'Organization\Account::update');
$routes->delete('/api/organization/account', 'Organization\Account::delete');
// site
$routes->get('/api/organization/site/', 'Organization\Site::index');
$routes->get('/api/organization/site/(:num)', 'Organization\Site::show/$1');
$routes->post('/api/organization/site', 'Organization\Site::create');
$routes->patch('/api/organization/site', 'Organization\Site::update');
$routes->delete('/api/organization/site', 'Organization\Site::delete');
// discipline
$routes->get('/api/organization/discipline/', 'Organization\Discipline::index');
$routes->get('/api/organization/discipline/(:num)', 'Organization\Discipline::show/$1');
$routes->post('/api/organization/discipline', 'Organization\Discipline::create');
$routes->patch('/api/organization/discipline', 'Organization\Discipline::update');
$routes->delete('/api/organization/discipline', 'Organization\Discipline::delete');
// department
$routes->get('/api/organization/department/', 'Organization\Department::index');
$routes->get('/api/organization/department/(:num)', 'Organization\Department::show/$1');
$routes->post('/api/organization/department', 'Organization\Department::create');
$routes->patch('/api/organization/department', 'Organization\Department::update');
$routes->delete('/api/organization/department', 'Organization\Department::delete');
// workstation
$routes->get('/api/organization/workstation/', 'Organization\Workstation::index');
$routes->get('/api/organization/workstation/(:num)', 'Organization\Workstation::show/$1');
$routes->post('/api/organization/workstation', 'Organization\Workstation::create');
$routes->patch('/api/organization/workstation', 'Organization\Workstation::update');
$routes->delete('/api/organization/workstation', 'Organization\Workstation::delete');
$routes->group('api/specimen', function($routes) {
$routes->get('containerdef/(:num)', 'Specimen\ContainerDef::show/$1');
$routes->post('containerdef', 'Specimen\ContainerDef::create');
$routes->patch('containerdef', 'Specimen\ContainerDef::update');
$routes->get('containerdef', 'Specimen\ContainerDef::index');
$routes->get('prep/(:num)', 'Specimen\Prep::show/$1');
$routes->post('prep', 'Specimen\Prep::create');
$routes->patch('prep', 'Specimen\Prep::update');
$routes->get('prep', 'Specimen\Prep::index');
$routes->get('status/(:num)', 'Specimen\Status::show/$1');
$routes->post('status', 'Specimen\Status::create');
$routes->patch('status', 'Specimen\Status::update');
$routes->get('status', 'Specimen\Status::index');
$routes->get('collection/(:num)', 'Specimen\Collection::show/$1');
$routes->post('collection', 'Specimen\Collection::create');
$routes->patch('collection', 'Specimen\Collection::update');
$routes->get('collection', 'Specimen\Collection::index');
$routes->get('(:num)', 'Specimen\Specimen::show/$1');
$routes->post('', 'Specimen\Specimen::create');
$routes->patch('', 'Specimen\Specimen::update');
$routes->get('', 'Specimen\Specimen::index');
});
$routes->post('/api/tests', 'Tests::create');
$routes->patch('/api/tests', 'Tests::update');
$routes->get('/api/tests/(:any)', 'Tests::show/$1');
$routes->get('/api/tests', 'Tests::index');
// Edge API - Integration with tiny-edge
$routes->group('/api/edge', function($routes) {
$routes->post('results', 'Edge::results');
$routes->get('orders', 'Edge::orders');
$routes->post('orders/(:num)/ack', 'Edge::ack/$1');
$routes->post('status', 'Edge::status');
});
// Khusus
/*
$routes->get('/api/zones', 'Zones::index');
$routes->get('/api/zones/synchronize', 'Zones::synchronize');
$routes->get('/api/zones/provinces', 'Zones::getProvinces');
$routes->get('/api/zones/cities', 'Zones::getCities');
*/