From 7b69906c13b4fcebbbc1657025ef1f2ee2a214a3 Mon Sep 17 00:00:00 2001 From: mikael-zakaria Date: Fri, 18 Jul 2025 13:35:03 +0700 Subject: [PATCH] Update Pasien Controller --- app/Controllers/Patient.php | 105 +++++++++++++++++++++++------------- 1 file changed, 69 insertions(+), 36 deletions(-) diff --git a/app/Controllers/Patient.php b/app/Controllers/Patient.php index 00c0466..1fa5299 100644 --- a/app/Controllers/Patient.php +++ b/app/Controllers/Patient.php @@ -70,6 +70,74 @@ class Patient extends Controller { } public function create() { + $data = $this->request->getJSON(true); + + // $datas = [ + // 'name_first' => $data['name_first'], + // 'name_last' => $data['name_last'], + // 'name_middle' => $data['name_middle'] ?? null, + // 'name_maiden' => $data['name_maiden'] ?? null, + // 'pat_num' => $data['pat_num'], + // 'prefix' => $data['prefix'] ?? null, + // 'suffix' => $data['suffix'] ?? null, + // 'birth_date' => $data['pat_dob'] ?? null, + // 'pat_altnum' => $data['pat_altnum'] ?? null, + // 'address_1' => $data['address_1'] ?? null, + // 'address_2' => $data['address_2'] ?? null, + // 'address_3' => $data['address_3'] ?? null, + // 'city' => $data['city'] ?? null, + // 'province' => $data['province'] ?? null, + // 'zip' => $data['zip'] ?? null, + // 'email_1' => $data['email_1'] ?? null, + // 'email_2' => $data['email_2'] ?? null, + // 'phone' => $data['phone'] ?? null, + // 'mobile_phone' => $data['mobile_phone'] ?? null, + // 'mother' => $data['mother'] ?? null, + // 'account_number' => $data['account_number'] ?? null, + // 'marital_status' => $data['marital_status'] ?? null, + // 'country_id' => $data['country_id'] ?? null, + // 'race_id' => $data['race_id'] ?? null, + // 'religion_id' => $data['religion_id'] ?? null, + // 'ethnic_id' => $data['ethnic_id'] ?? null, + // 'citizenship' => $data['citizenship'] ?? null, + // 'death' => $data['death'] ?? null, + // 'death_date' => $data['death_date'] ?? null, + // 'create_date' => date('Y-m-d H:i:s'), + // ]; + + $datas = [ + 'name_first' => $data['firstName'], // Mengambil dari firstName + 'name_last' => $data['lastName'], // Mengambil dari lastName + 'name_middle' => $data['middleName'] ?? null, // Mengambil dari middleName + 'name_maiden' => $data['maindenName'] ?? null, // Mengambil dari maindenName + 'pat_num' => $data['patientID'], // Mengambil dari patientID + 'prefix' => $data['title'] ?? null, // Mengambil dari title + 'suffix' => $data['suffixName'] ?? null, // Mengambil dari suffixName + 'birth_date' => $data['birthdate'] ?? null, // Mengambil dari birthdate + 'pat_altnum' => $data['alternateID'] ?? null, // Mengambil dari alternateID + 'address_1' => $data['street1'] ?? null, // Mengambil dari street1 + 'address_2' => $data['street2'] ?? null, // Mengambil dari street2 + 'address_3' => $data['placeOfBirthdate'] ?? null, // Memetakan placeOfBirthdate ke address_3, jika diperlukan + 'city' => $data['city'] ?? null, // Mengambil dari city + 'province' => $data['province'] ?? null, // Mengambil dari province + 'zip' => null, // Tidak ada padanan langsung di newPatientForm, bisa diisi manual atau dari input lain + 'email_1' => $data['email1'] ?? null, // Mengambil dari email1 + 'email_2' => $data['email2'] ?? null, // Mengambil dari email2 + 'phone' => $data['phone'] ?? null, // Mengambil dari phone + 'mobile_phone' => $data['mobile'] ?? null, // Mengambil dari mobile + 'mother' => $data['motherName'] ?? null, // Mengambil dari motherName + 'account_number' => null, // Tidak ada padanan langsung, bisa diisi manual atau dari input lain + 'marital_status' => $data['maritalStatus'] ?? null, // Mengambil dari maritalStatus + 'country_id' => null, // Tidak ada padanan langsung, perlu penyesuaian jika ada input negara + // 'race_id' => $data['race'] ?? null, // Mengambil dari race + // 'religion_id' => $data['religion'] ?? null, // Mengambil dari religion + // 'ethnic_id' => $data['ethnic'] ?? null, // Mengambil dari ethnic + 'citizenship' => null, // Tidak ada padanan langsung, perlu penyesuaian jika ada input kewarganegaraan + 'death' => $data['death'] ?? null, // Mengambil dari death (asumsi 0/1 atau boolean) + 'death_date' => $data['deathTime'] ?? null, // Mengambil dari deathTime + 'create_date' => date('Y-m-d H:i:s'), // Ini adalah tanggal dan waktu saat ini di server PHP + ]; + $rules = [ 'pat_num' => 'required|is_unique[patients.pat_num]|max_length[50]', 'name_first' => 'required|min_length[3]|max_length[255]', @@ -84,45 +152,10 @@ class Patient extends Controller { 'city' => 'permit_empty', ]; - $data = $this->request->getJSON(true); - - if (!$this->validate($rules)) { + if (!$this->validateData($datas, $rules)) { return $this->failValidationErrors($this->validator->getErrors()); } - $datas = [ - 'name_first' => $data['name_first'], - 'name_last' => $data['name_last'], - 'name_middle' => $data['name_middle'] ?? null, - 'name_maiden' => $data['name_maiden'] ?? null, - 'pat_num' => $data['pat_num'], - 'prefix' => $data['prefix'] ?? null, - 'suffix' => $data['suffix'] ?? null, - 'birth_date' => $data['pat_dob'] ?? null, - 'pat_altnum' => $data['pat_altnum'] ?? null, - 'address_1' => $data['address_1'] ?? null, - 'address_2' => $data['address_2'] ?? null, - 'address_3' => $data['address_3'] ?? null, - 'city' => $data['city'] ?? null, - 'province' => $data['province'] ?? null, - 'zip' => $data['zip'] ?? null, - 'email_1' => $data['email_1'] ?? null, - 'email_2' => $data['email_2'] ?? null, - 'phone' => $data['phone'] ?? null, - 'mobile_phone' => $data['mobile_phone'] ?? null, - 'mother' => $data['mother'] ?? null, - 'account_number' => $data['account_number'] ?? null, - 'marital_status' => $data['marital_status'] ?? null, - 'country_id' => $data['country_id'] ?? null, - 'race_id' => $data['race_id'] ?? null, - 'religion_id' => $data['religion_id'] ?? null, - 'ethnic_id' => $data['ethnic_id'] ?? null, - 'citizenship' => $data['citizenship'] ?? null, - 'death' => $data['death'] ?? null, - 'death_date' => $data['death_date'] ?? null, - 'create_date' => date('Y-m-d H:i:s'), - ]; - $this->db->table('patients')->insert($datas); $newPatientId = $this->db->insertID();