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) { $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'] = auth()->user()->id; $result = MedicalHistoryNurse::create($data); return response()->json([ 'data' => $result, ], 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); } } }