From 862e5fd03de01e18a4c5c85416a871ae98e383bc Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Mon, 22 Sep 2025 13:25:31 +0700 Subject: [PATCH 1/7] patvisit --- app/Config/Routes.php | 1 + app/Controllers/Contact.php | 2 +- app/Controllers/PatVisit.php | 120 +++++++++++------- ...st.php => 2025-09-09-155526_Pat_Visit.php} | 4 +- .../Migrations/2025-09-12-011643_Contact.php | 18 +-- 5 files changed, 84 insertions(+), 61 deletions(-) rename app/Database/Migrations/{2025-09-09-155526_Patient_Vst.php => 2025-09-09-155526_Pat_Visit.php} (96%) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 91a46dc..669cb56 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -30,6 +30,7 @@ $routes->get('/api/patient/check', 'Patient::patientCheck'); //$routes->get('/api/patvisit', 'Patient::index'); $routes->post('/api/patvisit', 'PatVisit::create'); $routes->get('/api/patvisit/(:num)', 'PatVisit::show/$1'); +$routes->get('/api/patvisit/patient/(:num)', 'PatVisit::showByPatient/$1'); $routes->delete('/api/patvisit', 'PatVisit::delete'); $routes->patch('/api/patvisit', 'PatVisit::update'); diff --git a/app/Controllers/Contact.php b/app/Controllers/Contact.php index e940851..96aa9db 100644 --- a/app/Controllers/Contact.php +++ b/app/Controllers/Contact.php @@ -208,7 +208,7 @@ class Contact extends Controller { private function prepareContactDetailData(array $input): array { $data = [ - "Code" => $input['Code'] ?? null, + "ContactCode" => $input['ContactCode'] ?? null, "ContactEmail" => $input['ContactEmail'] ?? null, "OccupationID" => $input['OccupationID'] ?? null, "JobTitle" => $input['JobTitle'] ?? null, diff --git a/app/Controllers/PatVisit.php b/app/Controllers/PatVisit.php index 8628fee..dd5d112 100644 --- a/app/Controllers/PatVisit.php +++ b/app/Controllers/PatVisit.php @@ -12,48 +12,27 @@ class PatVisit extends Controller { $this->db = \Config\Database::connect(); } - private function preparePatVisitData(array $input): array { - $data = [ - "PVID" => $input['PVID'] ?? null, - "InternalPID" => $input['InternalPID'] ?? null, - "EpisodeID" => $input['EpisodeID'] ?? null - ]; - - if(!empty($input['InternalPVID'])) { $data["InternalPVID"] = $input["InternalPVID"]; } - - return $data; - } - - private function preparePatDiagData(array $input): array { - $data = [ - "InternalPVID" => $input['InternalPVID'] ?? null, - "InternalPID" => $input['InternalPID'] ?? null, - "DiagCode" => $input['DiagCode'] ?? null, - "Diagnosis" => $input['Diagnosis'] ?? null - ]; - - return $data; - } - - private function preparePatVisitAdtData(array $input): array { - $data = [ - "InternalPVID" => $input['InternalPVID'] ?? null, - "InternalPID" => $input['InternalPID'] ?? null, - "ADTCode" => $input['ADTCode'] ?? null, - "LocationID" => $input['LocationID'] ?? null, - "AttDoc" => $input['AttDoc'] ?? null, - "RefDoc" => $input['RefDoc'] ?? null, - "AdmDoc" => $input['AdmDoc'] ?? null, - "CnsDoc" => $input['CnsDoc'] ?? null - ]; - - return $data; - } - public function show($PVID = null) { try { $row = $this->db->table('patvisit pv') - ->join('patdiag pd', 'pd.InternalPVID=pv.Internal.PVID', 'left') + ->join('patdiag pd', 'pd.InternalPVID=pv.InternalPVID', 'left') + ->join('patvisitadt pva', 'pd.InternalPVID=pva.InternalPVID', 'left') + ->get()->getResultArray(); + + return $this->respond([ + 'status' => 'success', + 'message'=> "data found", + 'data' => $row, + ], 200); + } catch (\Exception $e) { + return $this->failServerError('Something went wrong '.$e->getMessage()); + } + } + + public function showByPatient($InternalPID = null) { + try { + $row = $this->db->table('patvisit pv') + ->join('patdiag pd', 'pd.InternalPVID=pv.InternalPVID', 'left') ->join('patvisitadt pva', 'pd.InternalPVID=pva.InternalPVID', 'left') ->get()->getResultArray(); @@ -74,9 +53,9 @@ class PatVisit extends Controller { if (!$input["InternalPVID"] || !is_numeric($input["InternalPVID"])) { return $this->respond(['status' => 'error', 'message' => 'Invalid or missing ID'], 400); } $InternalPVID = $input["InternalPVID"]; - $dataPatVisit = preparePatVisitData($input); - $dataPatDiag = preparePatDiagData($input); - $dataPatVisitAdt = preparePatVisitAdtData($input); + $dataPatVisit = $this->preparePatVisitData($input); + $dataPatDiag = $this->preparePatDiagData($input); + $dataPatVisitAdt = $this->preparePatVisitAdtData($input); $this->db->transStart(); $this->db->table('patvisit')->where('InternalPVID', $InternalPVID)->update($dataPatVisit); @@ -115,15 +94,21 @@ class PatVisit extends Controller { $input = $this->request->getJSON(true); if (!$input) { return $this->respond(['status' => 'error', 'message' => 'Invalid JSON input'], 400); } - $InternalPVID = $input["InternalPVID"]; - $dataPatVisit = preparePatVisitData($input); - $dataPatDiag = preparePatDiagData($input); - $dataPatVisitAdt = preparePatVisitAdtData($input); + $dataPatVisit = $this->preparePatVisitData($input); + $dataPatDiag = $this->preparePatDiagData($input); + $dataPatVisitAdt = $this->preparePatVisitAdtData($input); $this->db->transStart(); $this->db->table('patvisit')->insert($dataPatVisit); - if(!empty($dataPatDiag)) { $this->db->table('patdiag')->insert($dataPatDiag); } - if(!empty($dataPatVisitAdt)) {$this->db->table('patvisitadt')->insert($dataPatVisitAdt); } + $newInternalPVID = $this->db->insertID(); + if(!empty($dataPatDiag)) { + $dataPatDiag['InternalPVID'] = $newInternalPVID; + $this->db->table('patdiag')->insert($dataPatDiag); + } + if(!empty($dataPatVisitAdt)) { + $dataPatVisitAdt['InternalPVID'] = $newInternalPVID; + $this->db->table('patvisitadt')->insert($dataPatVisitAdt); + } $dbError = $this->db->error(); @@ -131,7 +116,7 @@ class PatVisit extends Controller { if (!empty($dbError['message'])) { $this->db->transRollback(); - return $this->failServerError('Update failed: ' . $dbError['message']); + return $this->failServerError('create failed: ' . $dbError['message']); } @@ -151,4 +136,41 @@ class PatVisit extends Controller { return $this->failServerError('Something went wrong: ' . $e->getMessage()); } } + + private function preparePatVisitData(array $input): array { + $data = [ + "PVID" => $input['PVID'] ?? null, + "InternalPID" => $input['InternalPID'] ?? null, + "EpisodeID" => $input['EpisodeID'] ?? null + ]; + + if(!empty($input['InternalPVID'])) { $data["InternalPVID"] = $input["InternalPVID"]; } + + return $data; + } + + private function preparePatDiagData(array $input): array { + $data = [ + "InternalPVID" => $input['InternalPVID'] ?? null, + "InternalPID" => $input['InternalPID'] ?? null, + "DiagCode" => $input['DiagCode'] ?? null, + "Diagnosis" => $input['Diagnosis'] ?? null + ]; + + return $data; + } + + private function preparePatVisitAdtData(array $input): array { + $data = [ + "InternalPVID" => $input['InternalPVID'] ?? null, + "ADTCode" => $input['ADTCode'] ?? null, + "LocationID" => $input['LocationID'] ?? null, + "AttDoc" => $input['AttDoc'] ?? null, + "RefDoc" => $input['RefDoc'] ?? null, + "AdmDoc" => $input['AdmDoc'] ?? null, + "CnsDoc" => $input['CnsDoc'] ?? null + ]; + + return $data; + } } \ No newline at end of file diff --git a/app/Database/Migrations/2025-09-09-155526_Patient_Vst.php b/app/Database/Migrations/2025-09-09-155526_Pat_Visit.php similarity index 96% rename from app/Database/Migrations/2025-09-09-155526_Patient_Vst.php rename to app/Database/Migrations/2025-09-09-155526_Pat_Visit.php index 0dc8894..4ae0d88 100644 --- a/app/Database/Migrations/2025-09-09-155526_Patient_Vst.php +++ b/app/Database/Migrations/2025-09-09-155526_Pat_Visit.php @@ -12,7 +12,7 @@ class CreatePVTables extends Migration { 'InternalPVID'=> ['type' => 'INT', 'constraint' => 11, 'unsigned' => true, 'auto_increment' => true], 'PVID' => ['type' => 'VARCHAR', 'constraint' => 20, 'null' => true], 'InternalPID' => ['type' => 'INT', 'constraint' => 11, 'null' => true], - 'Episode' => ['type' => 'VARCHAR', 'constraint' => 255, 'null' => true], + 'EpisodeID' => ['type' => 'VARCHAR', 'constraint' => 255, 'null' => true], 'EndDate' => ['type' => 'DATETIME', 'null' => true], 'ArchivedDate'=> ['type' => 'DATETIME', 'null' => true], 'DelDate' => ['type' => 'DATETIME', 'null' => true], @@ -42,7 +42,7 @@ class CreatePVTables extends Migration { 'ADTCode' => ['type' => 'VARCHAR', 'constraint' => 255, 'null' => true], 'LocationID' => ['type' => 'INT', 'constraint' => 11, 'null' => true], 'AttDoc' => ['type' => 'INT', 'constraint' => 11, 'null' => true], - 'ReffDoc' => ['type' => 'INT', 'constraint' => 11, 'null' => true], + 'RefDoc' => ['type' => 'INT', 'constraint' => 11, 'null' => true], 'AdmDoc' => ['type' => 'INT', 'constraint' => 11, 'null' => true], 'CnsDoc' => ['type' => 'INT', 'constraint' => 11, 'null' => true], 'EndDate' => ['type' => 'DATETIME', 'null' => true], diff --git a/app/Database/Migrations/2025-09-12-011643_Contact.php b/app/Database/Migrations/2025-09-12-011643_Contact.php index 3b6eb45..7799dde 100644 --- a/app/Database/Migrations/2025-09-12-011643_Contact.php +++ b/app/Database/Migrations/2025-09-12-011643_Contact.php @@ -29,16 +29,16 @@ class CreateContactTable extends Migration { // ContactDetail $this->forge->addField([ - 'ContactDetID' => [ 'type' => 'INT', 'constraint' => 11, 'unsigned' => true, 'auto_increment' => true ], - 'ContactID' => [ 'type' => 'INT', 'constraint' => 11 ], - 'SiteID' => [ 'type' => 'INT', 'constraint' => 11, 'null' => true ], - 'Code' => [ 'type' => 'varchar', 'constraint' => 11, 'null' => false ], - 'ContactEmail' => [ 'type' => 'VARCHAR', 'constraint' => 150, 'null' => true ], - 'OccupationID' => [ 'type' => 'VARCHAR', 'constraint' => 50, 'null' => true ], - 'JobTitle' => [ 'type' => 'VARCHAR', 'constraint' => 100, 'null' => true ], - 'Department' => [ 'type' => 'VARCHAR', 'constraint' => 100, 'null' => true ], + 'ContactDetID' => [ 'type' => 'INT', 'constraint' => 11, 'unsigned' => true, 'auto_increment' => true ], + 'ContactID' => [ 'type' => 'INT', 'constraint' => 11 ], + 'SiteID' => [ 'type' => 'INT', 'constraint' => 11, 'null' => true ], + 'ContactCode' => [ 'type' => 'varchar', 'constraint' => 11, 'null' => false ], + 'ContactEmail' => [ 'type' => 'VARCHAR', 'constraint' => 150, 'null' => true ], + 'OccupationID' => [ 'type' => 'VARCHAR', 'constraint' => 50, 'null' => true ], + 'JobTitle' => [ 'type' => 'VARCHAR', 'constraint' => 100, 'null' => true ], + 'Department' => [ 'type' => 'VARCHAR', 'constraint' => 100, 'null' => true ], 'ContactStartDate' => [ 'type' => 'DATE', 'null' => true ], - 'ContactEndDate' => [ 'type' => 'DATE', 'null' => true ], + 'ContactEndDate' => [ 'type' => 'DATE', 'null' => true ], ]); $this->forge->addKey('ContactDetID', true); $this->forge->createTable('contactdetail'); From e6dbe3e951f4091963972928d46e63c2158438f4 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Mon, 22 Sep 2025 15:22:07 +0700 Subject: [PATCH 2/7] fix location not printed on index --- app/Controllers/Location.php | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/app/Controllers/Location.php b/app/Controllers/Location.php index 82b3162..ce81c0c 100644 --- a/app/Controllers/Location.php +++ b/app/Controllers/Location.php @@ -19,8 +19,8 @@ class Location extends Controller { public function index() { $rows = $this->db->table('location l') ->select("l.LocationID, LocCode, Parent, LocFull, LocType, v.VDesc ") - ->join("locationaddress la", "l.LocationID=la.LocationID") - ->join("valueset v", "v.VSetID=12 and v.VValue=l.LocType") + ->join("locationaddress la", "l.LocationID=la.LocationID", 'left') + ->join("valueset v", "v.VSetID=12 and v.VValue=l.LocType", 'left') ->get()->getResultArray(); if (empty($rows)) { @@ -62,31 +62,22 @@ class Location extends Controller { } public function create() { + $input = $this->request->getJSON(true); + $dataLocation = $this->prepareLocationData($input); + $dataLocationAddress = $this->prepareLocationAddressData($input); + if (!$this->validateData($dataLocation, $this->rules)) { + return $this->failValidationErrors($this->validator->getErrors()); + } + try { - $input = $this->request->getJSON(true); - - // Prepare data - $dataLocation = $this->prepareLocationData($input); - $dataLocationAddress = $this->prepareLocationAddressData($input); - - if (!$this->validateData($dataLocation, $this->rules)) { - return $this->failValidationErrors($this->validator->getErrors()); - } - - // Start transaction $this->db->transStart(); - - // Insert location $this->db->table('location')->insert($dataLocation); $newLocationID = $this->db->insertID(); - - // Insert address if available + if (!empty($dataLocationAddress)) { $dataLocationAddress['LocationID'] = $newLocationID; $this->db->table('locationaddress')->insert($dataLocationAddress); } - - // Complete transaction $this->db->transComplete(); if ($this->db->transStatus() === false) { From 4db1a61e0479c0cd1be843b5aa519ff5f5b67804 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Mon, 22 Sep 2025 15:37:25 +0700 Subject: [PATCH 3/7] fix location show --- app/Controllers/Location.php | 4 ++-- app/Database/Seeds/DummySeeder.php | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/Controllers/Location.php b/app/Controllers/Location.php index ce81c0c..0a97a48 100644 --- a/app/Controllers/Location.php +++ b/app/Controllers/Location.php @@ -41,8 +41,8 @@ class Location extends Controller { public function show($LocationID = null) { $rows = $this->db->table('location l') ->select("l.*, la.*, v.*") - ->join("locationaddress la", "l.LocationID=la.LocationID") - ->join("valueset v", "v.VSetID=12 and v.VValue=l.loctype") + ->join("locationaddress la", "l.LocationID=la.LocationID", "left") + ->join("valueset v", "v.VSetID=12 and v.VValue=l.loctype", "left") ->where('l.LocationID', (int) $LocationID) ->get()->getResultArray(); diff --git a/app/Database/Seeds/DummySeeder.php b/app/Database/Seeds/DummySeeder.php index c464ef3..d32da3b 100644 --- a/app/Database/Seeds/DummySeeder.php +++ b/app/Database/Seeds/DummySeeder.php @@ -11,13 +11,23 @@ class DummySeeder extends Seeder { ['LocationID'=>1, 'LocCode'=>'QLOC', 'LocFull'=>'Dummy Location', 'LocType'=>'ROOM', 'Description'=>'Location made for dummy testing' ] ]; $this->db->table('location')->insertBatch($data); - - // locationAddress $data = [ ['LocationID'=>1, 'Street1'=>'Jalan Nginden', 'Street2'=>'Intan Raya', 'City'=>'Surabaya', 'Province'=>'East Java', 'PostCode'=>'60222'] ]; $this->db->table('locationaddress')->insertBatch($data); + // contact + $data = [ + ['ContactID'=>1, 'NameFirst'=>'Default', 'NameLast'=>'Doctor', 'Title'=>'', 'Initial'=>'DEFDOC', 'Birthdate'=>'', 'EmailAddress1'=>'', 'EmailAddress2'=>'', + 'Phone'=>'', 'MobilePhone1'=>'', 'MobilePhone2'=>'', 'Specialty'=>'', 'SubSpecialty'=>'' ] + ]; + $this->db->table('contact')->insertBatch($data); + $data = [ + ['ContactID'=>1, 'ContactCode'=>'QDOC', 'ContactEmail'=>'qdoc@email.com', 'OccupationID'=>'', + 'JobTitle'=>'', 'Department'=>'', 'ContactStartDate'=>'', 'ContactEndDate'=>'' ] + ]; + $this->db->table('contactdetail')->insertBatch($data); + // patient $data = [ [ 'InternalPID'=>1, 'PatientID'=>'SMAJ1', 'NameFirst'=>'Dummy', 'NameLast' => 'Patient M', 'Gender'=>'1', 'BirthDate'=>'1991-09-09', 'Street_1'=>'Makati', 'IntCountryID'=>'105', 'EmailAddress1'=>'smaj1@5panda.id', @@ -26,8 +36,6 @@ class DummySeeder extends Seeder { 'RaceID'=>'1', 'ReligionID'=>'1', 'EthnicID'=>'1', 'DeathIndicator' => '0'] ]; $this->db->table('patient')->insertBatch($data); - - // patidt $data = [ [ 'InternalPID'=>1, 'IdentifierType'=>'KTP', 'Identifier'=>'9901' ], [ 'InternalPID'=>2, 'IdentifierType'=>'KTP', 'Identifier'=>'9902' ] From 07eb2a04d82dcae65db20332c9cdb555bd780687 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Mon, 22 Sep 2025 15:40:45 +0700 Subject: [PATCH 4/7] fix loctype to use vid --- app/Controllers/Location.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Controllers/Location.php b/app/Controllers/Location.php index 0a97a48..dff6960 100644 --- a/app/Controllers/Location.php +++ b/app/Controllers/Location.php @@ -20,7 +20,7 @@ class Location extends Controller { $rows = $this->db->table('location l') ->select("l.LocationID, LocCode, Parent, LocFull, LocType, v.VDesc ") ->join("locationaddress la", "l.LocationID=la.LocationID", 'left') - ->join("valueset v", "v.VSetID=12 and v.VValue=l.LocType", 'left') + ->join("valueset v", "v.VSetID=12 and v.VID=l.loctype", 'left') ->get()->getResultArray(); if (empty($rows)) { @@ -42,7 +42,7 @@ class Location extends Controller { $rows = $this->db->table('location l') ->select("l.*, la.*, v.*") ->join("locationaddress la", "l.LocationID=la.LocationID", "left") - ->join("valueset v", "v.VSetID=12 and v.VValue=l.loctype", "left") + ->join("valueset v", "v.VSetID=12 and v.VID=l.loctype", "left") ->where('l.LocationID', (int) $LocationID) ->get()->getResultArray(); @@ -192,6 +192,7 @@ class Location extends Controller { "LocCode" => $input['LocCode'] ?? null, "Parent" => $input['Parent'] ?? null, "LocFull" => $input['LocFull'] ?? null, + "LocType" => $input['LocType'] ?? null, "Description" => $input['Description'] ?? null, ]; From 4c2d4e55e4f586a69ee7e854ded614185c5b017c Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Mon, 22 Sep 2025 16:22:20 +0700 Subject: [PATCH 5/7] add counter table --- .../Migrations/2025-09-22-155700_Counter.php | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/Database/Migrations/2025-09-22-155700_Counter.php diff --git a/app/Database/Migrations/2025-09-22-155700_Counter.php b/app/Database/Migrations/2025-09-22-155700_Counter.php new file mode 100644 index 0000000..8651488 --- /dev/null +++ b/app/Database/Migrations/2025-09-22-155700_Counter.php @@ -0,0 +1,27 @@ +forge->addField([ + 'CounterID' => ['type' => 'INT', 'auto_increment' => true, 'unsigned' => true], + 'CounterValue' => ['type' => 'INT', 'null' => false], + 'CounterStart' => ['type' => 'INT', 'null' => false], + 'CounterEnd' => ['type' => 'INT', 'null' => false], + 'CounterDesc' => ['type' => 'varchar', 'constraint' => 255, 'null' => true], + 'CounterReset' => ['type' => 'varchar', 'constraint' => 1, 'null' => true], + 'EndDate' => ['type' => 'DATETIME', 'null' => true] + ]); + $this->forge->addField('CreateDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP'); + $this->forge->addKey('CounterID', true); + $this->forge->createTable('counter'); + } + + public function down() { + $this->forge->dropTable('counter'); + } +} \ No newline at end of file From 25dc76b7b9e054315e7fd5c4063ff97157377bb9 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Mon, 22 Sep 2025 16:43:49 +0700 Subject: [PATCH 6/7] change loctype to vvalue --- app/Controllers/Location.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Controllers/Location.php b/app/Controllers/Location.php index dff6960..bde886d 100644 --- a/app/Controllers/Location.php +++ b/app/Controllers/Location.php @@ -20,7 +20,7 @@ class Location extends Controller { $rows = $this->db->table('location l') ->select("l.LocationID, LocCode, Parent, LocFull, LocType, v.VDesc ") ->join("locationaddress la", "l.LocationID=la.LocationID", 'left') - ->join("valueset v", "v.VSetID=12 and v.VID=l.loctype", 'left') + ->join("valueset v", "v.VSetID=12 and v.VValue=l.loctype", 'left') ->get()->getResultArray(); if (empty($rows)) { @@ -42,7 +42,7 @@ class Location extends Controller { $rows = $this->db->table('location l') ->select("l.*, la.*, v.*") ->join("locationaddress la", "l.LocationID=la.LocationID", "left") - ->join("valueset v", "v.VSetID=12 and v.VID=l.loctype", "left") + ->join("valueset v", "v.VSetID=12 and v.VValue=l.loctype", "left") ->where('l.LocationID', (int) $LocationID) ->get()->getResultArray(); From 7faf3b4e57e9224c529517ff8ac5fe07da356a16 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Tue, 23 Sep 2025 09:25:13 +0700 Subject: [PATCH 7/7] change rowarray to resultarray --- app/Controllers/Auth.php | 8 +++----- app/Controllers/Contact.php | 4 ++-- app/Controllers/OrderTest.php | 4 ++-- app/Controllers/Patient.php | 6 +++--- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/app/Controllers/Auth.php b/app/Controllers/Auth.php index 442b6e9..230cbab 100644 --- a/app/Controllers/Auth.php +++ b/app/Controllers/Auth.php @@ -87,12 +87,10 @@ class Auth extends Controller { $sql = "SELECT * FROM users WHERE username=" . $this->db->escape($username); $query = $this->db->query($sql); - $row = $query->getRowArray(); - - if (!$row) { - return $this->fail('User not found.', 401); - } + $row = $query->getResultArray(); + if (!$row) { return $this->fail('User not found.', 401); } + $row = $row[0]; if (!password_verify($password, $row['password'])) { return $this->fail('Invalid password.', 401); } diff --git a/app/Controllers/Contact.php b/app/Controllers/Contact.php index 96aa9db..3a891e5 100644 --- a/app/Controllers/Contact.php +++ b/app/Controllers/Contact.php @@ -20,7 +20,7 @@ class Contact extends Controller { $sql->select("*") ->join("contactdetail", "contact.ContactID=contactdetail.ContactID", "left") ->join("occupation","contactdetail.OccupationID=occupation.OccupationID", "left"); - $rows = $sql->get()->getRowArray(); + $rows = $sql->get()->getResultArray(); if (empty($rows)) { return $this->respond([ @@ -43,7 +43,7 @@ class Contact extends Controller { ->join("contactdetail", "contact.ContactID=contactdetail.ContactID", "left") ->join("occupation","occupation.OccupationID=contactdetail.OccupationID", "left") ->where('contact.ContactID', (int) $ContactID) - ->get()->getRowArray(); + ->get()->getResultArray(); if (empty($rows)) { return $this->respond([ diff --git a/app/Controllers/OrderTest.php b/app/Controllers/OrderTest.php index ae8699a..9a672dc 100644 --- a/app/Controllers/OrderTest.php +++ b/app/Controllers/OrderTest.php @@ -16,7 +16,7 @@ class OrderTest extends Controller { } public function index() { - $rows = $this->db->table('ordertest')->select("*")->get()->getRowArray(); + $rows = $this->db->table('ordertest')->select("*")->get()->getResultArray(); if (empty($rows)) { return $this->respond([ @@ -34,7 +34,7 @@ class OrderTest extends Controller { } public function show($OrderID = null) { - $row=$this->db->table('ordertest')->select("*")->where('OrderID=', $OrderID)->get()->getRowArray(); + $row=$this->db->table('ordertest')->select("*")->where('OrderID=', $OrderID)->get()->getResultArray(); if (empty($row)) { return $this->respond([ diff --git a/app/Controllers/Patient.php b/app/Controllers/Patient.php index d317538..bf5fcbe 100644 --- a/app/Controllers/Patient.php +++ b/app/Controllers/Patient.php @@ -169,7 +169,7 @@ class Patient extends Controller { ->select('InternalPID, PatientID') ->where('InternalPID', (int) $custodianId) ->get() - ->getRowArray() ?: null; + ->getResultArray() ?: null; } @@ -344,7 +344,7 @@ class Patient extends Controller { if (!$input["InternalPID"] || !is_numeric($input["InternalPID"])) { return $this->respond(['status' => 'error', 'message' => 'Invalid or missing InternalPID'], 400); } $InternalPID = $input["InternalPID"]; - $patient = $this->db->table('patient')->where('InternalPID', $InternalPID)->get()->getRowArray(); + $patient = $this->db->table('patient')->where('InternalPID', $InternalPID)->get()->getResultArray(); if (!$patient) { return $this->respond(['status' => 'error', 'message' => 'Patient not found'], 404); } $dataPatient = $this->preparePatientData($input); @@ -466,7 +466,7 @@ class Patient extends Controller { $patient = $this->db->table('patient') ->where($tableName, $searchName) ->get() - ->getRowArray(); + ->getResultArray(); if (!$patient) { return $this->respond([