update backend claim history hospital
This commit is contained in:
@@ -8,6 +8,8 @@ use App\Models\Claim;
|
||||
use App\Models\Icd;
|
||||
use App\Models\Member;
|
||||
use App\Models\Organization;
|
||||
use App\Models\ClaimHistoryCare;
|
||||
use App\Models\DiagnosisSecondaryClaimHistoryCare;
|
||||
use App\Services\ClaimService;
|
||||
use Illuminate\Contracts\Support\Renderable;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -16,6 +18,7 @@ use Modules\HospitalPortal\Helpers\ApiResponse;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Modules\Internal\Transformers\ClaimShowResource;
|
||||
use Modules\Internal\Transformers\ClaimEditResource;
|
||||
use Modules\Internal\Transformers\ClaimHistoryCareResource;
|
||||
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
|
||||
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
|
||||
|
||||
@@ -526,4 +529,96 @@ class ClaimController extends Controller
|
||||
"file_url" => url('files/Benefit Usage Report.xlsx')
|
||||
]);
|
||||
}
|
||||
|
||||
//////////////////// History Care Hospital ///////////////////////////
|
||||
|
||||
public function storeHistoryCare(Request $request, $id){
|
||||
$request->validate([
|
||||
'service_code' => 'required',
|
||||
'admision_date' => 'required',
|
||||
'discharge_date' => 'required',
|
||||
'organization_id' => 'required',
|
||||
'practitioner_id' => 'required',
|
||||
'medical_record_number' => 'required',
|
||||
'symptoms' => 'required',
|
||||
'sign' => 'required',
|
||||
'main_diagnosis_id' => 'required',
|
||||
]);
|
||||
|
||||
$data = [
|
||||
'service_code' => $request->service_code,
|
||||
'admision_date' => $request->admision_date,
|
||||
'discharge_date' => $request->discharge_date,
|
||||
'organization_id' => $request->organization_id,
|
||||
'practitioner_id' => $request->practitioner_id,
|
||||
'medical_record_number' => $request->medical_record_number,
|
||||
'symptoms' => $request->symptoms,
|
||||
'sign' => $request->sign,
|
||||
'claim_id' => $id,
|
||||
'main_diagnosis_id' => $request->main_diagnosis_id,
|
||||
'status' => 0,
|
||||
];
|
||||
|
||||
$claimHistoryCare = ClaimHistoryCare::create($data);
|
||||
if (count($request->secondary_diagnosis_id)) {
|
||||
foreach($request->secondary_diagnosis_id as $value){
|
||||
$dataSecondary = [
|
||||
'claim_history_care_id' => $claimHistoryCare->id,
|
||||
'icd_id' => intval($value)
|
||||
];
|
||||
DiagnosisSecondaryClaimHistoryCare::create($dataSecondary);
|
||||
}
|
||||
}
|
||||
|
||||
return Helper::responseJson($claimHistoryCare);
|
||||
}
|
||||
|
||||
public function updateHistoryCare(Request $request, $id){
|
||||
$data = $request->validate([
|
||||
'service_code' => 'required',
|
||||
'admision_date' => 'required',
|
||||
'discharge_date' => 'required',
|
||||
'organization_id' => 'required',
|
||||
'practitioner_id' => 'required',
|
||||
'medical_record_number' => 'required',
|
||||
'symptoms' => 'required',
|
||||
'sign' => 'required',
|
||||
'main_diagnosis_id' => 'required',
|
||||
]);
|
||||
|
||||
// $data['status'] = 0;
|
||||
|
||||
$claimHistoryCare = ClaimHistoryCare::findOrFail($id);
|
||||
$claimHistoryCare->update($data);
|
||||
|
||||
// Hapus diagnosis sekunder yang terkait
|
||||
DiagnosisSecondaryClaimHistoryCare::where('claim_history_care_id', $id)->delete();
|
||||
|
||||
if (count($request->secondary_diagnosis_id)) {
|
||||
foreach ($request->secondary_diagnosis_id as $value) {
|
||||
$dataSecondary = [
|
||||
'claim_history_care_id' => $claimHistoryCare->id,
|
||||
'icd_id' => intval($value),
|
||||
];
|
||||
DiagnosisSecondaryClaimHistoryCare::create($dataSecondary);
|
||||
}
|
||||
}
|
||||
|
||||
return Helper::responseJson(message: 'Data Berhasil di update');
|
||||
|
||||
}
|
||||
|
||||
public function showHistoryCare($id){
|
||||
$data = ClaimHistoryCare::with(['organization', 'practitioner', 'practitioner.person', 'icd'])->find($id);
|
||||
|
||||
return Helper::responseJson(ClaimHistoryCareResource::make($data));
|
||||
}
|
||||
|
||||
public function approvalHistoryCare(Request $request, $id){
|
||||
$claimHistoryCare = ClaimHistoryCare::findOrFail($id);
|
||||
$claimHistoryCare->status = $request->status;
|
||||
$claimHistoryCare->save();
|
||||
|
||||
return Helper::responseJson(message: 'Data Berhasil di update');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,6 +191,12 @@ Route::prefix('internal')->group(function () {
|
||||
Route::post('claims/{id}/decline', [ClaimController::class, 'decline'])->name('claim.decline');
|
||||
Route::post('claims/{id}/approve', [ClaimController::class, 'approve'])->name('claim.approve');
|
||||
Route::post('claims/{id}/re-open', [ClaimController::class, 'reOpen'])->name('claim.re-open');
|
||||
|
||||
Route::post('claims/{id}/carehistory', [ClaimController::class, 'storeHistoryCare']);
|
||||
Route::post('claims/carehistory/{id}/update', [ClaimController::class, 'updateHistoryCare']);
|
||||
Route::get('claims/carehistory/{id}', [ClaimController::class, 'showHistoryCare']);
|
||||
Route::post('claims/carehistory/{id}/approval', [ClaimController::class, 'approvalHistoryCare']);
|
||||
|
||||
Route::post('claims', [ClaimController::class, 'store']);
|
||||
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
||||
Route::put('claims/{id}', [ClaimController::class, 'update']);
|
||||
|
||||
44
Modules/Internal/Transformers/ClaimHistoryCareResource.php
Normal file
44
Modules/Internal/Transformers/ClaimHistoryCareResource.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Internal\Transformers;
|
||||
use App\Models\DiagnosisSecondaryClaimHistoryCare;
|
||||
use App\Models\Icd;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ClaimHistoryCareResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$claim = parent::toArray($request);
|
||||
|
||||
$secondaryDiagnosis = DiagnosisSecondaryClaimHistoryCare::where('claim_history_care_id', $claim['id'])->with(['icd'])->get()->toArray();
|
||||
|
||||
$data = [
|
||||
'id' => $claim['id'],
|
||||
'service_code' => $claim['service_code'],
|
||||
'admision_date' => $claim['admision_date'],
|
||||
'discharge_date' => $claim['discharge_date'],
|
||||
'claim_id' => $claim['claim_id'],
|
||||
'organization_id' => $claim['organization_id'],
|
||||
'organization_name' => $claim['organization'] ? $claim['organization']['name'] : '-',
|
||||
'practitioner_id' => $claim['practitioner_id'],
|
||||
'practitioner_name' => $claim['practitioner'] ? $claim['practitioner']['person']['name'] : '-',
|
||||
'medical_record_number' => $claim['medical_record_number'],
|
||||
'symptoms' => $claim['symptoms'],
|
||||
'sign' => $claim['sign'],
|
||||
'main_diagnosis_id' => $claim['main_diagnosis_id'],
|
||||
'main_diagnosis_name' => $claim['icd'] ? $claim['icd']['name'] : '-',
|
||||
'status' => $claim['status'],
|
||||
'secondary_diagnosis' => $secondaryDiagnosis,
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user