update fitur alarm center

This commit is contained in:
2023-10-13 10:47:22 +07:00
parent a9e6a750ad
commit 54019e998d
17 changed files with 1563 additions and 265 deletions

View File

@@ -4,11 +4,15 @@ namespace Modules\Client\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Member;
use App\Models\Claim;
use App\Models\ClaimRequest;
use App\Services\CorporateMemberService;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Client\Transformers\ClaimReport\MemberResources as ClaimReportMemberResources;
use Modules\Client\Transformers\AlarmCenter\DataListClaimMemberResource;
use Modules\Client\Transformers\AlarmCenter\DataServiceMonitoring;
use Modules\Client\Transformers\Dashboard\MemberResources as ClaimSubmitMemberResources;
use Modules\Client\Transformers\Dashboard\MemberResources as DashboardMemberResources;
use Modules\Client\Transformers\Dashboard\MemberAlarmCenterResources as DashboardMemberAlarmResources;
@@ -52,12 +56,13 @@ class CorporateMemberController extends Controller
public function show($corporate_id, $person_id)
{
$data = Member::with(['claims', 'person', 'employeds', 'currentPlan.benefits', 'person.currentAddress'])
->where('person_id', $person_id)
->whereHas('employeds', function ($query) use ($corporate_id) {
$query->where('corporate_id', $corporate_id);
})
->first();
->where('person_id', $person_id)
->whereHas('employeds', function ($query) use ($corporate_id) {
$query->where('corporate_id', $corporate_id);
})
->first();
$totalClaims = $data->claims->sum('total_claim');
$data->total_claims = $totalClaims;
@@ -95,5 +100,22 @@ class CorporateMemberController extends Controller
$data->claim_history = $data_claim_history;
return response()->json(DataMemberResource::make($data));
}
public function showPerMember($corporate_id, $member_id){
$data = ClaimRequest::where(['member_id' => $member_id])
->whereNotNull('claim_id')
->paginate(10);
return response()->json(Helper::paginateResources(DataListClaimMemberResource::collection($data)));
}
public function serviceMonitoring($corporate_id, $claim_id)
{
$data = Claim::where('id', $claim_id)->first();
return Helper::responseJson(DataServiceMonitoring::make($data));
}
}

View File

@@ -48,6 +48,8 @@ Route::prefix('client')->group(function () {
Route::get('division', [CorporateDivisionController::class, 'index']);
Route::get('members', [CorporateMemberController::class, 'index']);
Route::get('members/{id}', [CorporateMemberController::class, 'show']);
Route::get('alarm-center-members/{id}', [CorporateMemberController::class, 'showPerMember']);
Route::get('service-monitoring/{id}', [CorporateMemberController::class, 'serviceMonitoring']);
Route::get('claims/status', [ClaimController::class, 'status']);
Route::get('claims', [ClaimController::class, 'index']);
Route::get('claims/{claim_id}/encounters', [ClaimEncounterController::class, 'getEncounterData']);

View File

@@ -0,0 +1,37 @@
<?php
namespace Modules\Client\Transformers\AlarmCenter;
use App\Models\Member;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Storage;
class DataListClaimMemberResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
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,
'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,
];
}
}

View File

@@ -0,0 +1,126 @@
<?php
namespace Modules\Client\Transformers\AlarmCenter;
use App\Models\ClaimRequest;
use App\Models\ClaimEncounter;
use App\Models\Encounter;
use App\Models\Member;
use App\Models\Organization;
use App\Models\CorporateEmployee;
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);
$encounter = ClaimEncounter::where('claim_id', $this->id)->first();
if ($encounter) {
$final_encounter = Encounter::findOrFail($this->final_encounter_id);
$data = Organization::findOrFail($final_encounter->healthcare_id);
$hospital = $data->name;
} else {
$hospital = '-';
}
$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" => "Nyeri dada",
"sign" => "Sesak Nafas",
"main_diagnose" => "Chest pain on breathing",
"main_diagnose_code" => "R07.1",
"comparative_diagnosis" => "Abnormalities of breathing",
"comparative_diagnosis_code" => "R06",
"medical_evacuation" => "Land Transportation",
"benefit_name" => "Konsultasi Dokter",
"hospital" => $hospital,
"admission_date" => $claim_request->submission_date,
"discharge_date" => $claim_request->submission_date,
"dialy_monitoring" => [
"0" => [
"date" => "2023-10-05",
"time" => "09:10",
"status" => "Done",
"subject_title" => "Pasien mengalami sesak napas dan nyeri dada",
"body_temperature" => "36.5",
"sistole" => "110 mm[Hg]",
"diastole" => "110 mm[Hg]",
"respiration_rate" => "20/min",
"analisis_title" => "Asthma bronkial dengan perbaikan",
"Perencanaan" => [
"O2 4L/min", "IVDL RL 2 kolf/6 jam", "Rencana tes sputum"
]
],
"1" => [
"date" => "2023-10-04",
"time" => "09:10",
"status" => "Done",
"subject_title" => "Pasien mengalami sesak napas dan nyeri dada",
"body_temperature" => "36.5",
"sistole" => "110 mm[Hg]",
"diastole" => "110 mm[Hg]",
"respiration_rate" => "20/min",
"analisis_title" => "Asthma bronkial dengan perbaikan",
"Perencanaan" => [
"O2 4L/min", "IVDL RL 2 kolf/6 jam", "Rencana tes sputum"
]
]
],
"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"
]
]
]
];
return $data;
}
}