first(); } public function searchPatients(Request $request) { $search = $request->search; return MedicalHistory::whereLike('full_name', $search . '%') ->orderBy('recipient_date', 'desc') ->get()->map(function ($item) { return [ 'label' => "$item->medical_card_number - $item->full_name", 'value' => $item->id ]; }); } public function storePatient(Request $request) { $user = auth()->user(); $department = auth()->user()->department; $misUserId = $user->rf_lpudoctor_id; $data = $request->validate([ 'source_type' => 'nullable', 'medical_card_number' => 'nullable', 'full_name' => 'required', 'birth_date' => 'required', 'recipient_date' => 'required', 'extract_date' => 'nullable', 'death_date' => 'nullable', 'male' => 'nullable', 'urgency_id' => 'required', 'hospital_result_id' => 'nullable', 'visit_result_id' => 'required', 'mis_user_id' => 'nullable', 'comment' => 'nullable', ]); $data['user_id'] = $user->id; $branch = MisStationarBranch::where('rf_DepartmentID', $department->rf_mis_department_id) ->first(); $migrationData = [ 'ingoing_date' => $data['recipient_date'], 'out_date' => $data['extract_date'], 'department_id' => $department->rf_mis_department_id, 'stationar_branch_id' => $branch->StationarBranchID, 'visit_result_id' => $data['visit_result_id'], 'user_id' => $data['user_id'], 'mis_user_id' => $misUserId ]; DB::beginTransaction(); $historyNurse = MedicalHistoryNurse::create($data); $migrationData['medical_history_id'] = $historyNurse->id; $migrationNurse = MigrationPatientNurse::create($migrationData); $historyNurse->update([ 'latest_migration_id' => $migrationNurse->id ]); if ($historyNurse && $migrationNurse) { DB::commit(); } else { DB::rollBack(); } return response()->json([ 'data' => $historyNurse, ], 201); } public function storeCorrection($id, Request $request) { $data = $request->validate([ 'medical_card_number' => 'nullable', 'full_name' => 'nullable', 'birth_date' => 'nullable', 'recipient_date' => 'nullable', 'extract_date' => 'nullable', 'death_date' => 'nullable', 'male' => 'nullable', 'urgency_id' => 'nullable', 'hospital_result_id' => 'nullable', 'visit_result_id' => 'nullable', 'mis_user_id' => 'nullable', 'comment' => 'nullable', ]); $data['medical_history_id'] = $id; $data['user_id'] = auth()->user()->id; $currentMigration = MigrationPatient::currentMigration($id); $migrationData = [ 'migration_patient_id' => $currentMigration->id, 'medical_history_id' => $id, 'ingoing_date' => $data['recipient_date'], 'out_date' => $data['extract_date'], 'visit_result_id' => $data['visit_result_id'], 'user_id' => $data['user_id'], ]; DB::beginTransaction(); $historyCorrection = MedicalHistoryCorrection::create($data); $migrationCorrection = MigrationPatientCorrection::create($migrationData); if ($historyCorrection && $migrationCorrection) { DB::commit(); return response()->json([ 'data' => $historyCorrection, ], 201); } else { DB::rollBack(); return response()->json([ 'data' => 'Something went wrong', ], 400); } } }