Merge branch 'origin/production' of https://dev.sismedika.online/febio/aso into origin/production
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Helpers\Helper;
|
||||
use App\Models\Member;
|
||||
use App\Models\Claim;
|
||||
use App\Models\ClaimRequest;
|
||||
use App\Models\RequestLog;
|
||||
use App\Services\CorporateMemberService;
|
||||
use Illuminate\Contracts\Support\Renderable;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -184,17 +185,31 @@ class CorporateMemberController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function showPerMember($corporate_id, $member_id)
|
||||
public function showPerMember(Request $request, $corporate_id, $member_id)
|
||||
{
|
||||
$data = ClaimRequest::where(['member_id' => $member_id])
|
||||
->whereNotNull('claim_id')
|
||||
->paginate(10);
|
||||
return response()->json(Helper::paginateResources(DataListClaimMemberResource::collection($data)));
|
||||
$per_page = $request->has('per_page') ? $request->input('per_page') : 10;
|
||||
|
||||
$data = Member::query()
|
||||
->with(['requestLogs'])
|
||||
->whereHas('currentCorporate', function ($query) use ($corporate_id) {
|
||||
$query->where('corporate_id', $corporate_id);
|
||||
})
|
||||
->find($member_id);
|
||||
|
||||
return response()->json(['full_name' => $data->full_name, 'paginations' => Helper::paginateResources(DataListClaimMemberResource::collection($data->requestLogs()->paginate($per_page)))]);
|
||||
}
|
||||
|
||||
public function serviceMonitoring($corporate_id, $claim_id)
|
||||
public function serviceMonitoring(int $corporate_id, int $request_log_id)
|
||||
{
|
||||
$data = Claim::where('id', $claim_id)->first();
|
||||
// $data = Claim::where('id', $claim_id)->first();
|
||||
|
||||
// return $request_log_id;
|
||||
|
||||
$data = RequestLog::query()
|
||||
->with(['member' => ['currentCorporate', 'person'], 'organization', 'requestLogBenefit' => ['benefit'], 'requestLogDailyMonitorings' => ['requestLogMedicalPlans'],])
|
||||
->find($request_log_id);
|
||||
|
||||
// return $data;
|
||||
return Helper::responseJson(DataServiceMonitoring::make($data));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ Route::prefix('client')->group(function () {
|
||||
Route::get('members/{id}', [CorporateMemberController::class, 'show']);
|
||||
Route::get('export-members/list', [CorporateMemberController::class, 'generateMemberList']);
|
||||
Route::get('alarm-center-members/{id}', [CorporateMemberController::class, 'showPerMember']);
|
||||
Route::get('service-monitoring/{id}', [CorporateMemberController::class, 'serviceMonitoring']);
|
||||
Route::get('service-monitoring/{request_log_id}', [CorporateMemberController::class, 'serviceMonitoring']);
|
||||
Route::get('claims/status', [ClaimController::class, 'status']);
|
||||
Route::get('claims', [ClaimController::class, 'index']);
|
||||
Route::get('claims/export', [ClaimController::class, 'export']);
|
||||
@@ -65,8 +65,6 @@ Route::prefix('client')->group(function () {
|
||||
|
||||
Route::get('corporate', [CorporateCurrentController::class, 'index']);
|
||||
Route::put('corporate-update', [CorporateCurrentController::class, 'update']);
|
||||
|
||||
|
||||
});
|
||||
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
|
||||
namespace Modules\Client\Transformers\AlarmCenter;
|
||||
|
||||
use App\Models\Member;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DataListClaimMemberResource extends JsonResource
|
||||
{
|
||||
@@ -16,22 +14,13 @@ class DataListClaimMemberResource extends JsonResource
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$member = Member::findOrFail($this->member_id);
|
||||
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'admission_date' => $this->submission_date,
|
||||
'discharge_date' => $this->submission_date,
|
||||
'code' => $this->code,
|
||||
'admission_date' => $this->submission_date ?? null,
|
||||
'discharge_date' => $this->discharge_date ?? null,
|
||||
'code' => $this->code ?? null,
|
||||
'service_type' => $this->service_code == 'IP' ? 'Inpatient' : 'Outpatient',
|
||||
'status' => $this->service_code == 'approved' ? 'Done' : 'OnGoing',
|
||||
'claim_id' => $this->claim_id,
|
||||
// 'memberId' => $this->member_id,
|
||||
'fullName' => $member->name,
|
||||
// 'division' => $this->division_name ?? '',
|
||||
// 'status' => $this->status,
|
||||
// 'claimRequestId' => $this->claim_request_id,
|
||||
// 'submissionDate' => $this->submission_date,
|
||||
];
|
||||
'status' => $this->status === 'requested' || ($this->status === 'approved' && $this->status_final_log) || ($this->status_final_log === 'requested' && $this->status === 'requested') ? 'Ongoing' : ($this->status === 'approved' && $this->status_final_log === 'approved' ? 'Approved' : 'Declined')
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,25 +2,8 @@
|
||||
|
||||
namespace Modules\Client\Transformers\AlarmCenter;
|
||||
|
||||
use App\Models\ClaimRequest;
|
||||
use App\Models\DiagnosisSecondaryClaimHistoryCare;
|
||||
use App\Models\ClaimEncounter;
|
||||
use App\Models\ClaimHistoryCare;
|
||||
use App\Models\Encounter;
|
||||
use App\Models\Member;
|
||||
use App\Models\Icd;
|
||||
use App\Models\Organization;
|
||||
use App\Models\MedicalPlan;
|
||||
use App\Models\CorporateEmployee;
|
||||
use App\Models\DailyMonitoring;
|
||||
use App\Models\LaboratoriumResult;
|
||||
|
||||
|
||||
use App\Helpers\Helper;
|
||||
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class DataServiceMonitoring extends JsonResource
|
||||
{
|
||||
@@ -32,157 +15,38 @@ class DataServiceMonitoring extends JsonResource
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$claim_request = ClaimRequest::findOrFail($this->claim_request_id);
|
||||
$member = Member::findOrFail($this->member_id);
|
||||
|
||||
|
||||
// History Care Hospital
|
||||
$historyCareHospital = ClaimHistoryCare::where('claim_id', $this->id)->first();
|
||||
if ($historyCareHospital) {
|
||||
$hospital = Organization::findOrFail($historyCareHospital->organization_id)->name;
|
||||
$mainDianosis = Icd::findOrFail($historyCareHospital->main_diagnosis_id)->name;
|
||||
$mainDianosisCode = Icd::findOrFail($historyCareHospital->main_diagnosis_id)->code;
|
||||
|
||||
$comporatationDiagnosis = DiagnosisSecondaryClaimHistoryCare::where('claim_history_care_id', $historyCareHospital->id)->first();
|
||||
|
||||
$comporatationDiagnosisName = Icd::findOrFail($comporatationDiagnosis->icd_id)->name;
|
||||
$comporatationDiagnosisCode = Icd::findOrFail($comporatationDiagnosis->icd_id)->code;
|
||||
|
||||
$admissionDate = $historyCareHospital->admission_date;
|
||||
$dischargeDate = $historyCareHospital->discharge_date;
|
||||
$serviceCode = $historyCareHospital->service_code;
|
||||
$symptoms = $historyCareHospital->symptoms;
|
||||
$sign = $historyCareHospital->sign;
|
||||
} else {
|
||||
$hospital = '-';
|
||||
$mainDianosis = '-';
|
||||
$mainDianosisCode = '-';
|
||||
$comporatationDiagnosisName = '-';
|
||||
$comporatationDiagnosisCode = '-';
|
||||
$admissionDate = '-';
|
||||
$dischargeDate = '-';
|
||||
$serviceCode = '-';
|
||||
$symptoms = '-';
|
||||
$sign = '-';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$dailyMonitoring = DailyMonitoring::where('claim_id', $claim_request->claim_id)->get()->toArray();
|
||||
$laboratoriumResult = LaboratoriumResult::where('claim_id', $claim_request->claim_id)->get()->toArray();
|
||||
|
||||
// Handle Daily Monitoring
|
||||
$dataDailyMonitoring = [];
|
||||
if (count($dailyMonitoring) > 0){
|
||||
$temp = [];
|
||||
foreach($dailyMonitoring as $data){
|
||||
$temp['date'] = Helper::formatDateOnly($data['created_at']);
|
||||
$temp['time'] = Helper::formatTimeOnly($data['created_at']);
|
||||
$temp['status'] = 'Done';
|
||||
$temp['subject_title'] = $data['subject'];
|
||||
$temp['body_temperature'] = $data['body_temperature']. 'mm[Hg]';
|
||||
$temp['sistole'] = $data['sistole']. 'mm[Hg]';
|
||||
$temp['diastole'] = $data['diastole']. 'mm[Hg]';
|
||||
$temp['respiration_rate'] = $data['respiration_rate']. 'mm[Hg]';
|
||||
$temp['analisis_title'] = $data['analysis'];
|
||||
|
||||
$medicalPlan = MedicalPlan::where('claim_daily_monitoring_id', $data['id'])->get('plan')->toArray();
|
||||
if (count( $medicalPlan) > 0){
|
||||
$temp['Perencanaan'] = [];
|
||||
foreach($medicalPlan as $item){
|
||||
array_push($temp['Perencanaan'], $item['plan']);
|
||||
}
|
||||
|
||||
} else {
|
||||
$temp['Perencanaan'] = [];
|
||||
}
|
||||
array_push($dataDailyMonitoring, $temp);
|
||||
}
|
||||
}
|
||||
|
||||
// Handle Laboratorium Result
|
||||
$dataLaboratoruiumResult = [];
|
||||
if (count($laboratoriumResult) > 0){
|
||||
$tempLab = [];
|
||||
foreach($laboratoriumResult as $data){
|
||||
$tempLab['datetime'] = $data['date'];
|
||||
$tempLab['reimbursement_code'] = "RE-0" . $data['id'];
|
||||
$tempLab['examination'] = $data['examination'];
|
||||
$tempLab['location'] = $data['location'];
|
||||
|
||||
if (count($data['lab_result_file']) > 0){
|
||||
$tempLab['file'] = $data['lab_result_file'][0]['lab_result_file_obj']->path; // masih dumy untuk download nya belum bisa multiple
|
||||
}
|
||||
array_push($dataLaboratoruiumResult, $tempLab);
|
||||
}
|
||||
}
|
||||
|
||||
$data = [
|
||||
"id" => $this->id,
|
||||
"company_name" => $member->currentCorporate->name,
|
||||
"member_name" => $member->name,
|
||||
"member_code" => $member->member_id,
|
||||
"member_id" => $member->id,
|
||||
"phone" => $member->person->phone,
|
||||
"email" => $member->email,
|
||||
"birth_date" => $member->birth_date,
|
||||
"symptoms" => $symptoms,
|
||||
"sign" => $sign,
|
||||
"main_diagnose" => $mainDianosis,
|
||||
"main_diagnose_code" => $mainDianosisCode,
|
||||
"comparative_diagnosis" => $comporatationDiagnosisName,
|
||||
"comparative_diagnosis_code" => $comporatationDiagnosisCode,
|
||||
"service_name" => $serviceCode,
|
||||
"benefit_name" => "Konsultasi Dokter",
|
||||
"hospital" => $hospital,
|
||||
"admission_date" => $admissionDate,
|
||||
"discharge_date" => $dischargeDate,
|
||||
"dialy_monitoring" => $dataDailyMonitoring,
|
||||
// "laboratorium_result" => [
|
||||
// "0" => [
|
||||
// [
|
||||
// "datetime" => "2023-10-05 10:00",
|
||||
// "reimbursement_code" => "RE-011",
|
||||
// "examination" => "SGOT",
|
||||
// "location" => "Pramita Jakarta Ragunan",
|
||||
// "files" => "https:://test.com"
|
||||
// ],
|
||||
// [
|
||||
// "datetime" => "2023-10-05 09:00",
|
||||
// "reimbursement_code" => "RE-010",
|
||||
// "examination" => "SGOT",
|
||||
// "location" => "Pramita Jakarta Ragunan",
|
||||
// "files" => "https:://test.com"
|
||||
// ],
|
||||
// ],
|
||||
// "1" => [
|
||||
// [
|
||||
// "datetime" => "2023-10-04 10:00",
|
||||
// "reimbursement_code" => "RE-09",
|
||||
// "examination" => "Hematologi Lengkap",
|
||||
// "location" => "Pramita Jakarta Ragunan",
|
||||
// "files" => "https:://test.com"
|
||||
// ],
|
||||
// [
|
||||
// "datetime" => "2023-10-04 09:00",
|
||||
// "reimbursement_code" => "RE-08",
|
||||
// "examination" => "Hematologi Lengkap",
|
||||
// "location" => "Pramita Jakarta Ragunan",
|
||||
// "files" => "https:://test.com"
|
||||
// ]
|
||||
// ]
|
||||
|
||||
// ],
|
||||
|
||||
"laboratorium_result" => [$dataLaboratoruiumResult], //
|
||||
|
||||
|
||||
return [
|
||||
'companyName' => $this->member->currentCorporate->name ?? null,
|
||||
'memberId' => $this->member->member_id ?? null,
|
||||
'fullName' => $this->member->full_name ?? null,
|
||||
'dateOfBirth' => $this->member->birth_date ?? null,
|
||||
'dateOfBirth' => $this->member->birth_date ?? null,
|
||||
'phoneNumber' => $this->person->phone ?? null,
|
||||
'email' => $this->member->email ?? ($this->member->person->email ?? null),
|
||||
'serviceName' => $this->service_code === 'IP' ? 'Inpatient' : ($this->service_code === 'OP' ? 'Outpatient' : null),
|
||||
'benefitName' => $this->requestLogBenefit->benefit->description ?? null,
|
||||
'hospital' => $this->organization->name ?? null,
|
||||
'admissionDate' => $this->submission_date ?? null,
|
||||
'dischargeDate' => $this->discharge_date ?? null,
|
||||
'dailyMonitorings' => $this->when($this->service_code === 'IP', collect($this->requesLogDailyMonitorings)->map(function ($requesLogDailyMonitoring) {
|
||||
return [
|
||||
'date' => Helper::formatDateOnly($requesLogDailyMonitoring->created_at) ?? null,
|
||||
'time' => Helper::formatTimeOnly($requesLogDailyMonitoring->created_at) ?? null,
|
||||
'status' => 'Done' ?? null,
|
||||
'subject' => $requesLogDailyMonitoring->subject ?? null,
|
||||
'bodyTemperature' => $requesLogDailyMonitoring->body_temperature ?? null,
|
||||
'sistole' => $requesLogDailyMonitoring->sistole . 'mm[Hg]' ?? null,
|
||||
'diastole' => $requesLogDailyMonitoring->diastole . 'mm[Hg]' ?? null,
|
||||
'respirationRate' => $requesLogDailyMonitoring->respiration_rate . '/min' ?? null,
|
||||
'analysis' => $requesLogDailyMonitoring->analysis ?? null,
|
||||
'plan' => collect($requesLogDailyMonitoring->requestLogMedicalPlans)->map(function ($requestLogMedicalPlan) {
|
||||
return $requestLogMedicalPlan->type == 1 ? $requestLogMedicalPlan->plan : null;
|
||||
})->all(),
|
||||
];
|
||||
})->all()),
|
||||
// 'laboratoriumResults' => collect($this->dailyMonitorings)->map(function ($dailyMonitoring) {
|
||||
// $data['date'][Helper::formatDateOnly($dailyMonitoring->created_at)]
|
||||
// })->all() ?? null
|
||||
];
|
||||
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user