From 61f6c337ee6ff86cc9798984ce6da70e3a0fac8c Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Thu, 27 Nov 2025 14:15:10 +0700 Subject: [PATCH] fix db, and tests index show --- app/Config/Routes.php | 5 +++ app/Controllers/Tests.php | 4 +- app/Database/Seeds/DummyTestSeeder.php | 60 +++++++++++++------------- app/Models/Test/TestDefSiteModel.php | 16 +++++++ 4 files changed, 53 insertions(+), 32 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4323717..85c4aaa 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -185,6 +185,11 @@ $routes->group('api/test', function($routes) { $routes->get('testdef', 'Test\TestDef::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'); + // Khusus $routes->get('/api/zones', 'Zones::index'); $routes->get('/api/zones/synchronize', 'Zones::synchronize'); diff --git a/app/Controllers/Tests.php b/app/Controllers/Tests.php index 56d653e..921a41b 100644 --- a/app/Controllers/Tests.php +++ b/app/Controllers/Tests.php @@ -18,13 +18,13 @@ class Tests extends BaseController { } public function index() { - $rows = $this->model->findAll(); + $rows = $this->model->getTests(); if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); } return $this->respond([ 'status' => 'success', 'message'=> "Data fetched successfully", 'data' => $rows ], 200); } public function show($id = null) { - $rows = $this->model->where('TestID',$id)->findAll(); + $rows = $this->model->getTest($id); if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); } return $this->respond([ 'status' => 'success', 'message'=> "Data fetched successfully", 'data' => $rows ], 200); } diff --git a/app/Database/Seeds/DummyTestSeeder.php b/app/Database/Seeds/DummyTestSeeder.php index 7c72122..69c261a 100644 --- a/app/Database/Seeds/DummyTestSeeder.php +++ b/app/Database/Seeds/DummyTestSeeder.php @@ -19,21 +19,21 @@ class DummyTestSeeder extends Seeder { } $data = ['SiteID' => '1','TestSiteCode' => 'HB', 'TestSiteName' =>'Hemoglobin', 'Type' => $vs[27]['TRang'],'Description' => '','SeqScr' => '4','SeqRpt' => '4','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '1', 'DepartmentID' =>'1', 'VSet' => '','SpcType' => $vs[15]['BLD'] ,'Unit1' => 'g/dL','Factor' => '','Unit2' => '','Method' => '','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'HCT', 'TestSiteName' =>'Hematokrit', 'Type' => $vs[27]['TRang'],'Description' => '','SeqScr' => '5','SeqRpt' => '5','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '1', 'DepartmentID' =>'1', 'VSet' => '','SpcType' => $vs[15]['BLD'],'Unit1' => '%','Factor' => '','Unit2' => '','Method' => '','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'ERY', 'TestSiteName' =>'Eritrosit', 'Type' => $vs[27]['TRang'],'Description' => '','SeqScr' => '6','SeqRpt' => '6','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = [ 'DisciplineID' => '1', 'DepartmentID' =>'1', 'VSet' => '','SpcType' => $vs[15]['BLD'], 'Unit1' => '10^6/mL','Factor' => '','Unit2' => '','Method' => '','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'MCV', 'TestSiteName' =>'MCV', 'Type' => $vs[27]['TRang'],'Description' => '','SeqScr' => '8','SeqRpt' => '8','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; @@ -46,21 +46,21 @@ class DummyTestSeeder extends Seeder { $this->db->table('testdefsite')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'GLUAR', 'TestSiteName' =>'Glukosa Sewaktu', 'Type' => $vs[27]['TThrs'],'Description' => '','SeqScr' => '13','SeqRpt' => '13','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '2', 'DepartmentID' =>'3', 'VSet' => '','SpcType' => $vs[15]['SER'],'Unit1' => 'U/L','Factor' => '','Unit2' => '','Method' => 'Hexokinase','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'GLUF', 'TestSiteName' =>'Glukosa Puasa', 'Type' => $vs[27]['TThrs'],'Description' => '','SeqScr' => '14','SeqRpt' => '14','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = [ 'DisciplineID' => '2', 'DepartmentID' =>'3', 'VSet' => '','SpcType' => $vs[15]['SER'], 'Unit1' => 'U/L','Factor' => '','Unit2' => '','Method' => 'Hexokinase','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'GLU2HPP', 'TestSiteName' =>'Glukosa 2 Jam PP', 'Type' => $vs[27]['TThrs'],'Description' => '','SeqScr' => '15','SeqRpt' => '15','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '2', 'DepartmentID' =>'3', 'VSet' => '','SpcType' => $vs[15]['SER'], 'Unit1' => 'mg/dL','Factor' => '','Unit2' => '','Method' => 'Hexokinase','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'TC', 'TestSiteName' =>'Cholesterol Total', 'Type' => $vs[27]['TThrs'],'Description' => '','SeqScr' => '17','SeqRpt' => '17','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; @@ -76,59 +76,59 @@ class DummyTestSeeder extends Seeder { $this->db->table('testdefsite')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'SGOT', 'TestSiteName' =>'Aspartate Aminotransferase', 'Type' => $vs[27]['TThrs'],'Description' => '','SeqScr' => '23','SeqRpt' => '23','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '2', 'DepartmentID' =>'3', 'VSet' => '','SpcType' => $vs[15]['SER'], 'Unit1' => 'mg/dL','Factor' => '0.017','Unit2' => 'mkat/L','Method' => 'IFCC','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'SGPT', 'TestSiteName' =>'Alanine Aminotransferase', 'Type' => $vs[27]['TThrs'],'Description' => '','SeqScr' => '24','SeqRpt' => '24','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '2', 'DepartmentID' =>'3', 'VSet' => '','SpcType' => $vs[15]['SER'], 'Unit1' => 'mg/dL','Factor' => '','Unit2' => '','Method' => 'IFCC','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'CREA', 'TestSiteName' =>'Kreatinin', 'Type' => $vs[27]['TRang'],'Description' => '','SeqScr' => '26','SeqRpt' => '26','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '2', 'DepartmentID' =>'3', 'VSet' => '','SpcType' => $vs[15]['SER'], 'Unit1' => 'mg/dL','Factor' => '88.4','Unit2' => 'mmol/L','Method' => 'Enzymatic','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'CREAU', 'TestSiteName' =>'Kreatinin Urin', 'Type' => $vs[27]['TRang'],'Description' => '','SeqScr' => '27','SeqRpt' => '27','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'CREAC', 'TestSiteName' =>'Creatinine Clearance', 'Type' => $vs[27]['CalN'],'Description' => 'Cockcroft-Gault formula','SeqScr' => '28','SeqRpt' => '28','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][0],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'COLOR', 'TestSiteName' =>'Warna', 'Type' => $vs[27]['TVS'],'Description' => '','SeqScr' => '30','SeqRpt' => '30','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][1],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '4', 'DepartmentID' =>'6', 'VSet' => '1002','SpcType' => $vs[15]['SER'], 'Unit1' => '','Factor' => '','Unit2' => '','Method' => '','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'HEIGHT', 'TestSiteName' =>'Tinggi badan', 'Type' => $vs[27]['PNum'],'Description' => '','SeqScr' => '31','SeqRpt' => '31','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][0],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '10', 'DepartmentID' =>'', 'VSet' => '','SpcType' => '', 'Unit1' => 'm','Factor' => '','Unit2' => '','Method' => '','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'WEIGHT', 'TestSiteName' =>'Berat badan', 'Type' => $vs[27]['PNum'],'Description' => '','SeqScr' => '32','SeqRpt' => '32','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][0],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['DisciplineID' => '10', 'DepartmentID' =>'', 'VSet' => '','SpcType' => '', 'Unit1' => 'Kg','Factor' => '','Unit2' => '','Method' => '','CreateDate' => "$now"]; - $data['TestSiteID']= $id; + $data['TestSiteID']= $this->db->insertID(); $this->db->table('testdeftech')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'WAIST', 'TestSiteName' =>'Lingkar pinggang', 'Type' => $vs[27]['PNum'],'Description' => '','SeqScr' => '33','SeqRpt' => '33','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][0],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'AGE', 'TestSiteName' =>'Usia', 'Type' => $vs[27]['PNum'],'Description' => '','SeqScr' => '34','SeqRpt' => '34','VisibleScr' => $vs[2][1],'VisibleRpt' => '0','CountStat' => $vs[2][0],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'SISTL', 'TestSiteName' =>'Sistolik', 'Type' => $vs[27]['PNum'],'Description' => '','SeqScr' => '35','SeqRpt' => '35','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][0],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); $data = ['SiteID' => '1','TestSiteCode' => 'DIASTL', 'TestSiteName' =>'Diastolik', 'Type' => $vs[27]['PNum'],'Description' => '','SeqScr' => '36','SeqRpt' => '36','VisibleScr' => $vs[2][1],'VisibleRpt' => $vs[2][1],'CountStat' => $vs[2][0],'CreateDate' => "$now"]; - $id = $this->db->table('testdefsite')->insert($data); + $this->db->table('testdefsite')->insert($data); } } \ No newline at end of file diff --git a/app/Models/Test/TestDefSiteModel.php b/app/Models/Test/TestDefSiteModel.php index e39cc31..05ced6c 100644 --- a/app/Models/Test/TestDefSiteModel.php +++ b/app/Models/Test/TestDefSiteModel.php @@ -16,4 +16,20 @@ class TestDefSiteModel extends BaseModel { protected $useSoftDeletes = true; protected $deletedField = "EndDate"; + public function getTests() { + $rows = $this->select("TestSiteID, TestSiteCode, TestSiteName, Type, valueset.VValue as TypeCode, valueset.VDesc as TypeName ") + ->join("valueset", "valueset.VID=testdefsite.Type", "left") + ->findAll(); + return $rows; + } + + public function getTest($TestSiteID) { + $row = $this->join("valueset", "valueset.VID=testdefsite.Type", "left") + ->where("testdefsite.TestSiteID", $TestSiteID) + ->find($TestSiteID); + + $row['testdeftech'] = $this->db->query("select * from testdeftech where TestSiteID='$TestSiteID'")->getResultArray(); + + return $row; + } } \ No newline at end of file