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;
|
||||
}
|
||||
}
|
||||
47
app/Models/ClaimHistoryCare.php
Normal file
47
app/Models/ClaimHistoryCare.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ClaimHistoryCare extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
protected $fillable = [
|
||||
'service_code',
|
||||
'admision_date',
|
||||
'discharge_date',
|
||||
'claim_id',
|
||||
'organization_id',
|
||||
'practitioner_id',
|
||||
'medical_record_number',
|
||||
'symptoms',
|
||||
'sign',
|
||||
'main_diagnosis_id',
|
||||
'status'
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function organization()
|
||||
{
|
||||
return $this->belongsTo(Organization::class, 'organization_id');
|
||||
}
|
||||
|
||||
public function practitioner()
|
||||
{
|
||||
return $this->belongsTo(Practitioner::class, 'practitioner_id');
|
||||
}
|
||||
|
||||
public function icd()
|
||||
{
|
||||
return $this->belongsTo(Icd::class, 'main_diagnosis_id');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
28
app/Models/DiagnosisSecondaryClaimHistoryCare.php
Normal file
28
app/Models/DiagnosisSecondaryClaimHistoryCare.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class DiagnosisSecondaryClaimHistoryCare extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'diagnosis_secondary_claim_history_care';
|
||||
|
||||
protected $fillable = [
|
||||
'claim_history_care_id',
|
||||
'icd_id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function icd()
|
||||
{
|
||||
return $this->belongsTo(Icd::class, 'icd_id');
|
||||
}
|
||||
}
|
||||
@@ -74,4 +74,14 @@ class Icd extends Model
|
||||
});
|
||||
}
|
||||
|
||||
public function claim_history_care()
|
||||
{
|
||||
return $this->hasMany(CliamHistoryCare::class, 'main_diagnosis_id', 'id');
|
||||
}
|
||||
|
||||
public function diagnosis_secondary_claim_history_care()
|
||||
{
|
||||
return $this->hasMany(DiagnosisSecondaryCliamHistoryCare::class, 'icd_id', 'id');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -107,4 +107,8 @@ class Organization extends Model
|
||||
{
|
||||
return $this->hasMany(ClaimRequest::class, 'organization_id', 'id');
|
||||
}
|
||||
public function claim_history_care()
|
||||
{
|
||||
return $this->hasOne(ClaimHistoryCare::class, 'organization_id', 'id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,4 +47,11 @@ class Practitioner extends Model
|
||||
{
|
||||
return $this->hasMany(PractitionerRole::class, 'practitioner_id');
|
||||
}
|
||||
|
||||
public function claim_history_care()
|
||||
{
|
||||
return $this->hasMany(ClaimHistoryCare::class, 'practitioner_id');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('claim_history_cares', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->string('service_code');
|
||||
$table->date('admision_date');
|
||||
$table->date('discharge_date');
|
||||
$table->integer('claim_id');
|
||||
$table->integer('organization_id');
|
||||
$table->integer('practitioner_id');
|
||||
$table->string('medical_record_number');
|
||||
$table->string('symptoms');
|
||||
$table->string('sign');
|
||||
$table->integer('main_diagnosis_id');
|
||||
$table->integer('status');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('claim_history_cares');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('diagnosis_secondary_claim_history_care', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
$table->integer('claim_history_care_id');
|
||||
$table->integer('icd_id');
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('diagnosis_secondary_claim_history_care');
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user