':attribute harus diisi', 'integer' => ':attribute harus angka', 'unique' => ':attribute (:input) sudah ada', 'max' => ':attribute maximal :max karakter', 'exists' => ':attribute (:input) tidak ditemukan', 'numeric' => ':attribute harus angka', 'digits_between'=> ':attribute maximal :max digit minimal :min digit' ]; } /** * Member List */ public function GetMemberList() { $memberList = DB::table('claims') ->leftJoin('members', 'claims.member_id', '=', 'members.id') ->leftJoin('member_plans', 'members.id', '=', 'member_plans.id') ->select('members.member_id','members.name','member_plans.start AS startdate','member_plans.end AS enddate') ->groupBy('claims.member_id') ->orderBy('claims.created_at', 'desc') ->get(); return response()->json([ 'error' => false, 'message' => "success", 'data' => [ 'member_list'=> $memberList, ] ],200); } /** * Claim List - by member id */ public function GetClaimList(Request $request, $member_id) { $memberDetail = DB::table('members') ->select('id','member_id','name') ->where('member_id', $member_id) ->first(); $claimList = DB::table('claims') ->leftJoin('claim_requests', 'claims.claim_request_id', '=', 'claim_requests.id') ->leftJoin('services', 'claim_requests.service_code', '=', 'services.code') ->leftJoin('members', 'claims.member_id', '=', 'members.id') ->select('claims.id AS claim_id','claims.admission_dates','claims.discharge_dates','claim_requests.code AS claim_code','services.name AS service_type','claims.status AS claim_status','members.member_id',) ->where("claims.member_id", "=", $memberDetail->id) ->orderBy("claims.created_at", "desc") ->get(); return response()->json([ 'error' => false, 'message' => "success", 'data' => [ 'member_detail'=> $memberDetail, 'claim_list' => $claimList, ] ],200); } /** * Detail Monitoring List - by claim_code */ public function GetDetailMonitoringList(Request $request, $claim_code) { // get claim request $claim_request = DB::table('claim_requests') ->select('id') ->where('code', $claim_code) ->first(); // get claim $claim = DB::table('claims') ->select('id') ->where('claim_request_id', empty($claim_request)==false ? $claim_request->id : '') ->first(); $detail_list = DailyMonitoring::where('claim_id', empty($claim) == false ? $claim->id : '')->orderBy("created_at", "desc")->get()->makeHidden(['updated_at']); return response()->json([ 'error' => false, 'message' => "success", 'data' => [ 'detail_list'=> $detail_list, ] ],200); } /** * Add Detail Monitoring List */ public function AddDetailMonitoringList(Request $request, $claim_code) { $request->merge(['claim_code' => $claim_code]); // validation rule $validator = Validator::make($request->all(),[ 'claim_code' => 'required|exists:claim_requests,code', 'subject' => 'required', 'sistole' => 'required|numeric', 'diastole' => 'required|numeric', 'body_temperature' => 'required|numeric', 'respiration_rate' => 'required|numeric', 'analysis' => 'required', 'complaints' => 'required', 'medical_plan' => 'required', ],$this->messages()); // validation error if ($validator->fails()) { return response()->json([ 'error' => true, 'message' => $validator->getMessageBag() ],400); } // get claim request $claim_request = DB::table('claim_requests') ->select('id') ->where('code', $claim_code) ->first(); // get claim $claim = DB::table('claims') ->select('id') ->where('claim_request_id', $claim_request->id) ->first(); DB::beginTransaction(); try { // insert claim daily monitoring $db_response = DailyMonitoring::create([ 'claim_id' => $claim->id, 'subject' => $request->subject, 'sistole' => $request->sistole, 'diastole' => $request->diastole, 'body_temperature' => $request->body_temperature, 'respiration_rate' => $request->respiration_rate, 'analysis' => $request->analysis, 'complaints' => $request->complaints, ]); // cek medical plan $num_medical_plan = 0; foreach ($request->medical_plan as $row) { if ($row['medical_plan_str']) { $num_medical_plan++; } } if ($num_medical_plan == 0) { DB::rollBack(); return response()->json([ 'error' => true, 'message' => [ 'medical_plan' => ['medical plan harus diisi'] ], 'data' => [] ],400); } // insert medical plan foreach ($request->medical_plan as $row) { MedicalPlan::create([ 'claim_daily_monitoring_id' => $db_response->id, 'plan' => $row['medical_plan_str'], ]); } DB::commit(); return response()->json([ 'error' => false, 'message' => "success", 'data' => [] ],200); } catch (Exception $e) { DB::rollBack(); return response()->json([ 'error' => true, 'message' => $e->getMessage(), 'data' => [] ],500); } } }