merge claim detail

This commit is contained in:
2023-11-01 22:46:59 +07:00
parent 01fcaf7181
commit 5b3cddf5fe
18 changed files with 4371 additions and 3416 deletions

View File

@@ -119,24 +119,31 @@ class ClaimController extends Controller
$claim = Claim::query()
->with([
'member',
'member.currentPlan',
'member.currentPlan.benefits',
// 'member.currentPlan',
// 'member.currentPlan.benefits',
'member.currentCorporate',
'member.currentPolicy',
// 'diagnosis',
'diagnoses',
'diagnoses.icd',
'benefit',
'files',
'claimRequest',
'claimRequest.files',
'items',
'items.claim_itemable',
'encounters',
'encounters.doctors',
'encounters.primaryDiagnoses',
'encounters.primaryDiagnoses.diagnosis',
'encounters.healthcare'
// 'member.currentPolicy',
// // 'diagnosis',
// 'diagnoses',
// 'diagnoses.icd',
// 'benefit',
// 'files',
// 'claimRequest',
// 'claimRequest.files',
// 'items',
// 'items.claim_itemable',
// 'encounters',
// 'encounters.doctors',
// 'encounters.primaryDiagnoses',
// 'encounters.primaryDiagnoses.diagnosis',
// 'encounters.healthcare',
'historyHospitalCare',
'historyHospitalCare.person',
'historyHospitalCare.practitioner',
'historyHospitalCare.organization',
'historyHospitalCare.icd',
'historyHospitalCare.comparativeDiagnosis',
'historyHospitalCare.comparativeDiagnosis.icd',
])
->findOrFail($id);

View File

@@ -40,6 +40,22 @@ class DiagnosisExclusionController extends Controller
return Helper::paginateResources(DiagnosisExclusionResource::collection($exclusions));
}
public function listDiagnosis(Request $request, $corporate_id){
$exclusion = Exclusion::query()
->where('corporate_id', $corporate_id)
->where('type', 'diagnosis')
->where('deleted_at', null)
// ->with(['rules'])
->get('exclusionable_id')->toArray();
$icd = Icd::query()
->whereNotIn('id', $exclusion)
->limit(100)
->get()
->toArray();
return Helper::responseJson($icd);
}
/**
* Show the form for creating a new resource.
* @return Renderable

View File

@@ -246,15 +246,17 @@ class FormulariumTemplateController extends Controller
public function activation(Request $request, $id)
{
$request->validate([
'active' => 'required'
]);
$Icd = FormulariumTemplate::findOrFail($id);
$Icd->active = $request->active == '1';
$formulariumTemplate = FormulariumTemplate::find($id);
if ($Icd->save()) {
$formulariumTemplate->active = $request->active == 1 ? 0 : 1;
if ($formulariumTemplate->save()) {
return response()->json([
'icd' => $Icd,
'data' => $formulariumTemplate,
'message' => 'Status Updated Successfully'
]);
}

View File

@@ -108,6 +108,7 @@ Route::prefix('internal')->group(function () {
Route::get('corporates/{corporate_id}/hospitals/data', [HospitalController::class, 'dataHospital']);
Route::post('corporates/{corporate_id}/hospitals/save', [HospitalController::class, 'store']);
Route::put('corporates/{corporate_id}/hospitals/{id}/edit', [HospitalController::class, 'update']);
Route::get('corporates/{corporate_id}/members', [CorporateMemberController::class, 'index']);
Route::get('corporates/{corporate_id}/members/list', [CorporateMemberController::class, 'generateMemberList']);
@@ -115,6 +116,8 @@ Route::prefix('internal')->group(function () {
Route::put('members/{member_id}/activation', [CorporateMemberController::class, 'activation']);
Route::get('corporates/{corporate_id}/diagnosis', [DiagnosisExclusionController::class, 'listDiagnosis']);
Route::get('corporates/{corporate_id}/diagnosis-exclusions', [DiagnosisExclusionController::class, 'index']);
Route::get('corporates/{corporate_id}/diagnosis-exclusions/{id_exclusion}', [DiagnosisExclusionController::class, 'detilExclusion']); // By Bagaskoro, get detil exclusion
Route::post('corporates/{corporate_id}/diagnosis-exclusions/store', [DiagnosisExclusionController::class, 'storeExclusion']);
@@ -137,6 +140,8 @@ Route::prefix('internal')->group(function () {
Route::post('corporates/{corporate_id}/formulariums/import', [CorporateFormulariumController::class, 'import']);
Route::put('corporates/{corporate_id}/formulariums-update-status/{id}', [CorporateFormulariumController::class, 'active']);
Route::put('corporates/{corporate_id}/formulariums/{formularium_id}/{action}', [CorporateFormulariumController::class, 'updateStatus']);
Route::controller(CorporateController::class)->group(function () {
Route::post('add-files-doc', 'addFilesDoc');
Route::post('get-files-doc', 'getFilesDoc');

View File

@@ -3,6 +3,9 @@
namespace Modules\Internal\Transformers;
use App\Models\Benefit;
use App\Models\CorporateEmployee;
use App\Models\ClaimRequest;
use App\Models\Icd;
use Illuminate\Http\Resources\Json\JsonResource;
class ClaimShowResource extends JsonResource
@@ -15,34 +18,55 @@ class ClaimShowResource extends JsonResource
*/
public function toArray($request)
{
$data = parent::toArray($request);
// $data['']
$data['benefit_items'] = $this->items
->filter(function ($item) {
return $item->claim_itemable_type == Benefit::class;
})
->map(function ($item) {
$itemData = $item->claim_itemable->toArray();
$itemData['nominal_dicover'] = $item['nominal_dicover'] ?? 0;
$itemData['nominal_ditagihkan'] = $item['nominal_ditagihkan'] ?? 0;
$itemData['nominal_total'] = $item['nominal_total'] ?? 0;
// For React Frotnend
$itemData['biaya_diajukan'] = $itemData['nominal_ditagihkan'];
$itemData['biaya_disetujui'] = $itemData['nominal_dicover'];
$claim = parent::toArray($request);
return $itemData;
});
$member_data = CorporateEmployee::where('member_id', $claim['member_id'])->first();
$claim_request = ClaimRequest::where('id', $claim['claim_request_id'])->first();
$data['primary_diagnosis'] = $this->diagnoses->filter(function($diagnosis){ return $diagnosis->type == 'primary';})->values();
$data['secondary_diagnosis'] = $this->diagnoses->filter(function($diagnosis){ return $diagnosis->type == 'secondary';})->values();
$data['encounters'] = $this->encounters->map(function($encounter) {
$encounterData = EncounterResource::make($encounter);
return $encounterData;
});
// $memberDiagnosisHistories = $this->member->
$data = [
'id' => $claim['id'],
'uuid' => $claim['uuid'],
'code' => $claim['code'],
'claim_request_id' => $claim['claim_request_id'],
'member_id' => $claim['member_id'],
'currency' => $claim['currency'],
'total_claim' => $claim['total_claim'],
'plan_id' => $claim['plan_id'],
'benefit_id' => $claim['benefit_id'],
'organization_id' => $claim['organization_id'],
'benefit_code' => $claim['benefit_code'],
'benefit_desc' => $claim['benefit_desc'],
'amount_incurred' => $claim['amount_incurred'],
'amount_approved' => $claim['amount_approved'],
'amount_not_approved' => $claim['amount_not_approved'],
'excess_paid' => $claim['excess_paid'],
'final_encounter_id' => $claim['final_encounter_id'],
'status' => $claim['status'],
'created_at' => $claim['created_at'],
'corporate_id' => $member_data->corporate_id,
'service_code' => $claim_request->service_code
// "uuid" => "9a59bff7-857f-4e48-8c6b-242ad1286395"
// "" => "CLM-00035"
// "" => 66
// "member_id" => 3
// "" => "IDR"
// "" => null
// "" => 1
// "" => null
// "" => 0
// "benefit_code" => ""
// "benefit_desc" => "erwraf"
// "" => 10000
// "" => 123000
// "amount_not_approved" => 122000
// "excess_paid" => 230000
// "final_encounter_id" => null
// "status" => "received"
// "created_at" => "2023-10-12T09:23:54.000000Z"
];
// $data['benefit_items'] = $this->items
$data['history_hospital_care'] = $claim['history_hospital_care'];
// $data['main_diagnosis']
return $data;
}