189 lines
7.3 KiB
PHP
189 lines
7.3 KiB
PHP
<?php
|
|
|
|
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
|
|
{
|
|
/**
|
|
* Transform the resource into an array.
|
|
*
|
|
* @param \Illuminate\Http\Request
|
|
* @return array
|
|
*/
|
|
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 $data;
|
|
}
|
|
}
|