Compare commits
1 Commits
master
...
feature/cl
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ee9293daf |
0
.editorconfig
Normal file → Executable file
0
.editorconfig
Normal file → Executable file
0
.env.example
Normal file → Executable file
0
.env.example
Normal file → Executable file
0
.gitattributes
vendored
Normal file → Executable file
0
.gitattributes
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
.styleci.yml
Normal file → Executable file
0
.styleci.yml
Normal file → Executable file
0
Modules/Client/Config/.gitkeep
Normal file → Executable file
0
Modules/Client/Config/.gitkeep
Normal file → Executable file
0
Modules/Client/Config/config.php
Normal file → Executable file
0
Modules/Client/Config/config.php
Normal file → Executable file
0
Modules/Client/Console/.gitkeep
Normal file → Executable file
0
Modules/Client/Console/.gitkeep
Normal file → Executable file
0
Modules/Client/Database/Migrations/.gitkeep
Normal file → Executable file
0
Modules/Client/Database/Migrations/.gitkeep
Normal file → Executable file
0
Modules/Client/Database/Seeders/.gitkeep
Normal file → Executable file
0
Modules/Client/Database/Seeders/.gitkeep
Normal file → Executable file
0
Modules/Client/Database/Seeders/ClientDatabaseSeeder.php
Normal file → Executable file
0
Modules/Client/Database/Seeders/ClientDatabaseSeeder.php
Normal file → Executable file
0
Modules/Client/Database/factories/.gitkeep
Normal file → Executable file
0
Modules/Client/Database/factories/.gitkeep
Normal file → Executable file
0
Modules/Client/Entities/.gitkeep
Normal file → Executable file
0
Modules/Client/Entities/.gitkeep
Normal file → Executable file
0
Modules/Client/Http/Controllers/.gitkeep
Normal file → Executable file
0
Modules/Client/Http/Controllers/.gitkeep
Normal file → Executable file
0
Modules/Client/Http/Controllers/Api/AuthController.php
Normal file → Executable file
0
Modules/Client/Http/Controllers/Api/AuthController.php
Normal file → Executable file
@@ -1,136 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Modules\Client\Http\Controllers\Api;
|
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
|
||||||
use App\Models\Claim;
|
|
||||||
use App\Services\ClaimService;
|
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Routing\Controller;
|
|
||||||
use Modules\Client\Transformers\ClaimShowResource;
|
|
||||||
|
|
||||||
class ClaimController extends Controller
|
|
||||||
{
|
|
||||||
public function __construct(public ClaimService $claimService)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function status($corporate_id)
|
|
||||||
{
|
|
||||||
$claims = $this->claimService->getCountClaimRequestPerStatus($corporate_id);
|
|
||||||
|
|
||||||
dd($claims);
|
|
||||||
|
|
||||||
return Helper::responseJson([
|
|
||||||
'count_requested' => 0,
|
|
||||||
'count_approval' => 0,
|
|
||||||
'count_disbrushment' => 0,
|
|
||||||
'count_rejected' => 0,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function index(Request $request, $corporate_id)
|
|
||||||
{
|
|
||||||
$claims = Claim::query()
|
|
||||||
->when($request->search ?? null, function ($query, $search) {
|
|
||||||
$query->where('code', 'LIKE', '%' . $search . '%');
|
|
||||||
})
|
|
||||||
->with([
|
|
||||||
'member',
|
|
||||||
'diagnoses' => function ($diagnosis) {
|
|
||||||
return $diagnosis->where('type', 'primary');
|
|
||||||
},
|
|
||||||
'diagnoses.icd',
|
|
||||||
'plan',
|
|
||||||
'benefit',
|
|
||||||
'claimRequest',
|
|
||||||
'claimRequest.service'
|
|
||||||
])
|
|
||||||
->paginate(10);
|
|
||||||
|
|
||||||
return Helper::responseJson($claims);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
return view('client::create');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
$claim = Claim::query()
|
|
||||||
->with([
|
|
||||||
'member',
|
|
||||||
'member.currentPlan',
|
|
||||||
'member.currentPlan.benefits',
|
|
||||||
'member.currentCorporate',
|
|
||||||
'member.currentPolicy',
|
|
||||||
'diagnosis',
|
|
||||||
'diagnoses',
|
|
||||||
'benefit',
|
|
||||||
'files',
|
|
||||||
'claimRequest',
|
|
||||||
'claimRequest.files',
|
|
||||||
'items',
|
|
||||||
'items.claim_itemable',
|
|
||||||
])
|
|
||||||
->findOrFail($id);
|
|
||||||
|
|
||||||
return Helper::responseJson(ClaimShowResource::make($claim));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
return view('client::edit');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
Modules/Client/Http/Controllers/Api/CorporateDivisionController.php
Normal file → Executable file
0
Modules/Client/Http/Controllers/Api/CorporateDivisionController.php
Normal file → Executable file
0
Modules/Client/Http/Controllers/Api/CorporateManageController.php
Normal file → Executable file
0
Modules/Client/Http/Controllers/Api/CorporateManageController.php
Normal file → Executable file
113
Modules/Client/Http/Controllers/Api/CorporateMemberController.php
Normal file → Executable file
113
Modules/Client/Http/Controllers/Api/CorporateMemberController.php
Normal file → Executable file
@@ -3,39 +3,110 @@
|
|||||||
namespace Modules\Client\Http\Controllers\Api;
|
namespace Modules\Client\Http\Controllers\Api;
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
use App\Helpers\Helper;
|
||||||
use App\Services\CorporateMemberService;
|
use App\Models\Member;
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
use Illuminate\Contracts\Support\Renderable;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
use Modules\Client\Transformers\ClaimReport\MemberResources as ClaimReportMemberResources;
|
use Modules\Client\Transformers\MemberResources;
|
||||||
use Modules\Client\Transformers\Dashboard\MemberResources as DashboardMemberResources;
|
|
||||||
use Modules\Client\Transformers\Dashboard\MemberAlarmCenterResources as DashboardMemberAlarmResources;
|
|
||||||
|
|
||||||
class CorporateMemberController extends Controller
|
class CorporateMemberController extends Controller
|
||||||
{
|
{
|
||||||
public function __construct(public CorporateMemberService $corporateMemberService)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
* @return Renderable
|
* @return Renderable
|
||||||
*/
|
*/
|
||||||
public function index(Request $request, $corporate_id)
|
public function index(Request $request, $corporate_id)
|
||||||
{
|
{
|
||||||
switch ($request->input('type')) {
|
$limit = $request->has('per_page') ? $request->per_page : 10;
|
||||||
case 'claim-report':
|
|
||||||
$members = $this->corporateMemberService->getAllMemberClaimReports($corporate_id, $request);
|
$members = Member::query()
|
||||||
return response()->json(Helper::paginateResources(ClaimReportMemberResources::collection($members)));
|
->whereHas('employeds', function ($corporateEmployee) use ($corporate_id) {
|
||||||
case 'claim-submit':
|
$corporateEmployee->where('corporate_id', $corporate_id);
|
||||||
$members = $this->corporateMemberService->getAllMemberClaimReports($corporate_id, $request);
|
})->when($request->input('search'), function ($query, $search) {
|
||||||
return response()->json(Helper::paginateResources(ClaimReportMemberResources::collection($members)));
|
$query->where('member_id', 'like', "%" . $search . "%")
|
||||||
case 'alarm-center':
|
->orWhere('name', 'like', "%" . $search . "%");
|
||||||
$members = $this->corporateMemberService->getAllMemberAlarmCenter($corporate_id, $request);
|
});
|
||||||
return response()->json(Helper::paginateResources(DashboardMemberAlarmResources::collection($members)));
|
|
||||||
default:
|
if ($request->input('claimMember') === 'false') {
|
||||||
$members = $this->corporateMemberService->getAllMemberDashboards($corporate_id, $request);
|
$members = $members->when($request->input('division'), function ($division, $division_id) {
|
||||||
return response()->json(Helper::paginateResources(DashboardMemberResources::collection($members)));
|
$division->whereHas('division', function ($corporateEmployee) use ($division_id) {
|
||||||
|
$corporateEmployee->where('division_id', $division_id);
|
||||||
|
});
|
||||||
|
})->when($request->has('orderBy'), function ($query) use ($request) {
|
||||||
|
$query->orderBy($request->orderBy, $request->order);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
// else {
|
||||||
|
// $members = $members->get();
|
||||||
|
|
||||||
|
// return response()->json(MemberResources::collection($members));
|
||||||
|
// }
|
||||||
|
$members->with('currentPlan');
|
||||||
|
$members->withSum('claims', 'total_claim');
|
||||||
|
|
||||||
|
$members = $members->paginate($limit);
|
||||||
|
// return $members;
|
||||||
|
|
||||||
|
return response()->json(Helper::paginateResources(MemberResources::collection($members)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('client::create');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
* @param Request $request
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the specified resource.
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
return view('client::show');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
return view('client::edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
* @param Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
21
Modules/Client/Http/Controllers/Api/CorporatePolicyController.php
Normal file → Executable file
21
Modules/Client/Http/Controllers/Api/CorporatePolicyController.php
Normal file → Executable file
@@ -2,12 +2,11 @@
|
|||||||
|
|
||||||
namespace Modules\Client\Http\Controllers\Api;
|
namespace Modules\Client\Http\Controllers\Api;
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
use Illuminate\Contracts\Support\Renderable;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Modules\Client\Transformers\Dashboard\LimitResources;
|
use Modules\Client\Transformers\DashboardResources;
|
||||||
|
|
||||||
class CorporatePolicyController extends Controller
|
class CorporatePolicyController extends Controller
|
||||||
{
|
{
|
||||||
@@ -15,15 +14,25 @@ class CorporatePolicyController extends Controller
|
|||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
* @return Renderable
|
* @return Renderable
|
||||||
*/
|
*/
|
||||||
public function index($corporate_id)
|
public function index(Request $request, $corporate_id)
|
||||||
{
|
{
|
||||||
$currentCorporate = Auth::user()->managedCorporates()
|
$user = Auth::user();
|
||||||
|
$currentCorporate = $user->managedCorporates()
|
||||||
->with(['currentPolicy', 'employees'])
|
->with(['currentPolicy', 'employees'])
|
||||||
->find($corporate_id);
|
->find($corporate_id);
|
||||||
|
|
||||||
$data = LimitResources::make($currentCorporate);
|
$data = DashboardResources::make($currentCorporate);
|
||||||
|
|
||||||
return Helper::responseJson($data);
|
return response()->json($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('client::create');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Modules\Client\Http\Controllers\Api;
|
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Routing\Controller;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Modules\Client\Transformers\Dashboard\TopUpLimitResources;
|
|
||||||
|
|
||||||
class TopUpController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function index($corporate_id)
|
|
||||||
{
|
|
||||||
$data = Auth::user()
|
|
||||||
->managedCorporates()
|
|
||||||
->with(['currentPolicy', 'employees'])
|
|
||||||
->withCount(['employees', 'claims' => function ($query) {
|
|
||||||
$query->where('claims.status', 'paid');
|
|
||||||
}])
|
|
||||||
->find($corporate_id);
|
|
||||||
|
|
||||||
return Helper::responseJson(TopUpLimitResources::make($data));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
return view('client::show');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
Modules/Client/Http/Controllers/Api/UserController.php
Normal file → Executable file
0
Modules/Client/Http/Controllers/Api/UserController.php
Normal file → Executable file
0
Modules/Client/Http/Controllers/ClientController.php
Normal file → Executable file
0
Modules/Client/Http/Controllers/ClientController.php
Normal file → Executable file
0
Modules/Client/Http/Middleware/.gitkeep
Normal file → Executable file
0
Modules/Client/Http/Middleware/.gitkeep
Normal file → Executable file
0
Modules/Client/Http/Requests/.gitkeep
Normal file → Executable file
0
Modules/Client/Http/Requests/.gitkeep
Normal file → Executable file
0
Modules/Client/Providers/.gitkeep
Normal file → Executable file
0
Modules/Client/Providers/.gitkeep
Normal file → Executable file
0
Modules/Client/Providers/ClientServiceProvider.php
Normal file → Executable file
0
Modules/Client/Providers/ClientServiceProvider.php
Normal file → Executable file
0
Modules/Client/Providers/RouteServiceProvider.php
Normal file → Executable file
0
Modules/Client/Providers/RouteServiceProvider.php
Normal file → Executable file
0
Modules/Client/Resources/assets/.gitkeep
Normal file → Executable file
0
Modules/Client/Resources/assets/.gitkeep
Normal file → Executable file
0
Modules/Client/Resources/assets/js/app.js
Normal file → Executable file
0
Modules/Client/Resources/assets/js/app.js
Normal file → Executable file
0
Modules/Client/Resources/assets/sass/app.scss
Normal file → Executable file
0
Modules/Client/Resources/assets/sass/app.scss
Normal file → Executable file
0
Modules/Client/Resources/lang/.gitkeep
Normal file → Executable file
0
Modules/Client/Resources/lang/.gitkeep
Normal file → Executable file
0
Modules/Client/Resources/views/.gitkeep
Normal file → Executable file
0
Modules/Client/Resources/views/.gitkeep
Normal file → Executable file
0
Modules/Client/Resources/views/index.blade.php
Normal file → Executable file
0
Modules/Client/Resources/views/index.blade.php
Normal file → Executable file
0
Modules/Client/Resources/views/layouts/master.blade.php
Normal file → Executable file
0
Modules/Client/Resources/views/layouts/master.blade.php
Normal file → Executable file
0
Modules/Client/Routes/.gitkeep
Normal file → Executable file
0
Modules/Client/Routes/.gitkeep
Normal file → Executable file
9
Modules/Client/Routes/api.php
Normal file → Executable file
9
Modules/Client/Routes/api.php
Normal file → Executable file
@@ -6,8 +6,6 @@ use Modules\Client\Http\Controllers\Api\CorporateManageController;
|
|||||||
use Modules\Client\Http\Controllers\Api\CorporateMemberController;
|
use Modules\Client\Http\Controllers\Api\CorporateMemberController;
|
||||||
use Modules\Client\Http\Controllers\Api\CorporatePolicyController;
|
use Modules\Client\Http\Controllers\Api\CorporatePolicyController;
|
||||||
use Modules\Client\Http\Controllers\Api\UserController;
|
use Modules\Client\Http\Controllers\Api\UserController;
|
||||||
use Modules\Client\Http\Controllers\Api\ClaimController;
|
|
||||||
use Modules\Client\Http\Controllers\Api\TopUpController;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -36,13 +34,6 @@ Route::prefix('client')->group(function () {
|
|||||||
Route::get('policy', [CorporatePolicyController::class, 'index']);
|
Route::get('policy', [CorporatePolicyController::class, 'index']);
|
||||||
Route::get('division', [CorporateDivisionController::class, 'index']);
|
Route::get('division', [CorporateDivisionController::class, 'index']);
|
||||||
Route::get('members', [CorporateMemberController::class, 'index']);
|
Route::get('members', [CorporateMemberController::class, 'index']);
|
||||||
Route::get('claims/status', [ClaimController::class, 'status']);
|
|
||||||
Route::get('claims', [ClaimController::class, 'index']);
|
|
||||||
|
|
||||||
Route::get('topup', [TopUpController::class, 'index']);
|
|
||||||
Route::post('topup', [TopUpController::class, 'store']);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
0
Modules/Client/Routes/web.php
Normal file → Executable file
0
Modules/Client/Routes/web.php
Normal file → Executable file
0
Modules/Client/Tests/Feature/.gitkeep
Normal file → Executable file
0
Modules/Client/Tests/Feature/.gitkeep
Normal file → Executable file
0
Modules/Client/Tests/Unit/.gitkeep
Normal file → Executable file
0
Modules/Client/Tests/Unit/.gitkeep
Normal file → Executable file
@@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Modules\Client\Transformers\ClaimReport;
|
|
||||||
|
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
|
||||||
|
|
||||||
class MemberResources extends JsonResource
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Transform the resource into an array.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function toArray($request)
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'id' => $this->id,
|
|
||||||
'memberId' => $this->member_id,
|
|
||||||
'fullName' => $this->full_name,
|
|
||||||
'division' => $this->division_name ?? '',
|
|
||||||
'submission_date' => '',
|
|
||||||
'status' => $this->active,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
c<?php
|
|
||||||
|
|
||||||
namespace Modules\Client\Transformers;
|
|
||||||
|
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
|
||||||
|
|
||||||
class ClaimShowResource extends JsonResource
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Transform the resource into an array.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
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'];
|
|
||||||
|
|
||||||
return $itemData;
|
|
||||||
});
|
|
||||||
|
|
||||||
$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();
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
namespace Modules\Client\Transformers\Dashboard;
|
|
||||||
|
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
|
||||||
|
|
||||||
class MemberAlarmCenterResources extends JsonResource
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Transform the resource into an array.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
|
||||||
*/
|
|
||||||
public function toArray($request)
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'id' => $this->id,
|
|
||||||
'memberId' => $this->member_id,
|
|
||||||
'fullName' => $this->full_name,
|
|
||||||
'service' => $this->service_code,
|
|
||||||
'start_date' => $this->start_date,
|
|
||||||
'end_date' => $this->end_date,
|
|
||||||
'status' => $this->active,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Modules\Client\Transformers\Dashboard;
|
|
||||||
|
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
|
||||||
|
|
||||||
class TopUpLimitResources extends JsonResource
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Transform the resource into an array.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function toArray($request)
|
|
||||||
{
|
|
||||||
$myLimitBalance = (int)$this->currentPolicy->limit_balance;
|
|
||||||
$myLimitTotal = (int)$this->currentPolicy->total_premi;
|
|
||||||
|
|
||||||
return [
|
|
||||||
'companyName' => $this->name,
|
|
||||||
'policyNumber' => $this->currentPolicy->code,
|
|
||||||
'totalMembers' => $this->employees_count,
|
|
||||||
'totalCases' => $this->claims_count,
|
|
||||||
'myLimit' => [
|
|
||||||
'balance' => $myLimitBalance,
|
|
||||||
'total' => $myLimitTotal,
|
|
||||||
'percentage' => $myLimitTotal ? round(($myLimitBalance / $myLimitTotal) * 100, 2) : 0,
|
|
||||||
],
|
|
||||||
'maxTopUp' => ($myLimitTotal - $myLimitBalance)
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Modules\Client\Transformers\Dashboard;
|
namespace Modules\Client\Transformers;
|
||||||
|
|
||||||
|
use App\Helpers\Helper;
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
class LimitResources extends JsonResource
|
class DashboardResources extends JsonResource
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Transform the resource into an array.
|
* Transform the resource into an array.
|
||||||
@@ -21,15 +22,17 @@ class LimitResources extends JsonResource
|
|||||||
$lockPercentage = (int)$this->currentPolicy->minimal_stop_service_percentage;
|
$lockPercentage = (int)$this->currentPolicy->minimal_stop_service_percentage;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'myLimit' => [
|
'policy' => [
|
||||||
'balance' => $myLimitBalance,
|
'myLimit' => [
|
||||||
'total' => $myLimitTotal,
|
'balance' => $myLimitBalance,
|
||||||
'percentage' => $myLimitTotal ? round(($myLimitBalance / $myLimitTotal) * 100, 2) : 0,
|
'total' => $myLimitTotal,
|
||||||
|
'percentage' => $myLimitTotal ? (($myLimitBalance / $myLimitTotal) * 100) : 0,
|
||||||
|
],
|
||||||
|
'lockLimit' => [
|
||||||
|
'balance' => $lockBalance,
|
||||||
|
'percentage' => $lockPercentage
|
||||||
|
]
|
||||||
],
|
],
|
||||||
'lockLimit' => [
|
|
||||||
'balance' => $lockBalance,
|
|
||||||
'percentage' => $lockPercentage
|
|
||||||
]
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Modules\Client\Transformers\Dashboard;
|
namespace Modules\Client\Transformers;
|
||||||
|
|
||||||
use Illuminate\Http\Resources\Json\JsonResource;
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
@@ -18,13 +18,15 @@ class MemberResources extends JsonResource
|
|||||||
'id' => $this->id,
|
'id' => $this->id,
|
||||||
'memberId' => $this->member_id,
|
'memberId' => $this->member_id,
|
||||||
'fullName' => $this->full_name,
|
'fullName' => $this->full_name,
|
||||||
'division' => $this->division_name ?? '',
|
$this->mergeWhen($request->input('claimMember') === 'false', [
|
||||||
|
'division' => $this->division->name ?? '',
|
||||||
|
'status' => $this->active
|
||||||
|
]),
|
||||||
'limit' => [
|
'limit' => [
|
||||||
'current' => $this->claims_sum_total_claim ?? 0,
|
'current' => $this->claims_sum_total_claim,
|
||||||
'total' => $this->currentPlan->limit_rules ?? 0,
|
'total' => $this->currentPlan->limit_rules ?? 0,
|
||||||
'percentage' => (!empty($this->currentPlan->limit_rules ?? 0)) ? (($this->claims_sum_total_claim / $this->currentPlan->limit_rules) * 100) : 0
|
'percentage' => (!empty($this->currentPlan->limit_rules ?? 0)) ? (($this->claims_sum_total_claim / $this->currentPlan->limit_rules) * 100) : 0
|
||||||
],
|
],
|
||||||
'status' => $this->active,
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
0
Modules/Client/composer.json
Normal file → Executable file
0
Modules/Client/composer.json
Normal file → Executable file
0
Modules/Client/module.json
Normal file → Executable file
0
Modules/Client/module.json
Normal file → Executable file
0
Modules/Client/package.json
Normal file → Executable file
0
Modules/Client/package.json
Normal file → Executable file
0
Modules/Client/webpack.mix.js
Normal file → Executable file
0
Modules/Client/webpack.mix.js
Normal file → Executable file
0
Modules/HospitalPortal/Http/Controllers/Api/AuthController.php
Normal file → Executable file
0
Modules/HospitalPortal/Http/Controllers/Api/AuthController.php
Normal file → Executable file
@@ -62,11 +62,10 @@ class ClaimRequestController extends Controller
|
|||||||
{
|
{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'member_id' => 'required',
|
'member_id' => 'required',
|
||||||
'service_code' => 'required|in:OP,IP'
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$member = Member::find($request->member_id);
|
$member = Member::find($request->member_id);
|
||||||
$newClaimRequest = ClaimRequestService::storeClaimRequest(member: $member, paymentType: 'reimbursement', serviceCode: $request->service_code);
|
$newClaimRequest = ClaimRequestService::storeClaimRequest(member: $member);
|
||||||
|
|
||||||
ClaimRequested::dispatch($newClaimRequest);
|
ClaimRequested::dispatch($newClaimRequest);
|
||||||
|
|
||||||
|
|||||||
0
Modules/Internal/Config/.gitkeep
Normal file → Executable file
0
Modules/Internal/Config/.gitkeep
Normal file → Executable file
0
Modules/Internal/Config/config.php
Normal file → Executable file
0
Modules/Internal/Config/config.php
Normal file → Executable file
0
Modules/Internal/Console/.gitkeep
Normal file → Executable file
0
Modules/Internal/Console/.gitkeep
Normal file → Executable file
0
Modules/Internal/Database/Migrations/.gitkeep
Normal file → Executable file
0
Modules/Internal/Database/Migrations/.gitkeep
Normal file → Executable file
0
Modules/Internal/Database/Seeders/.gitkeep
Normal file → Executable file
0
Modules/Internal/Database/Seeders/.gitkeep
Normal file → Executable file
0
Modules/Internal/Database/Seeders/InternalDatabaseSeeder.php
Normal file → Executable file
0
Modules/Internal/Database/Seeders/InternalDatabaseSeeder.php
Normal file → Executable file
0
Modules/Internal/Database/factories/.gitkeep
Normal file → Executable file
0
Modules/Internal/Database/factories/.gitkeep
Normal file → Executable file
0
Modules/Internal/Entities/.gitkeep
Normal file → Executable file
0
Modules/Internal/Entities/.gitkeep
Normal file → Executable file
0
Modules/Internal/Http/Controllers/.gitkeep
Normal file → Executable file
0
Modules/Internal/Http/Controllers/.gitkeep
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/AuthController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/AuthController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/BenefitController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/BenefitController.php
Normal file → Executable file
@@ -2,18 +2,14 @@
|
|||||||
|
|
||||||
namespace Modules\Internal\Http\Controllers\Api;
|
namespace Modules\Internal\Http\Controllers\Api;
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
|
||||||
use App\Models\Benefit;
|
use App\Models\Benefit;
|
||||||
use App\Models\Claim;
|
use App\Models\Claim;
|
||||||
use App\Models\Icd;
|
use App\Models\Icd;
|
||||||
use App\Models\Member;
|
use App\Models\Member;
|
||||||
use App\Models\Organization;
|
|
||||||
use App\Services\ClaimService;
|
use App\Services\ClaimService;
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
use Illuminate\Contracts\Support\Renderable;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
use Modules\Internal\Transformers\ClaimShowResource;
|
|
||||||
use PDF;
|
|
||||||
|
|
||||||
class ClaimController extends Controller
|
class ClaimController extends Controller
|
||||||
{
|
{
|
||||||
@@ -25,14 +21,9 @@ class ClaimController extends Controller
|
|||||||
{
|
{
|
||||||
$claims = Claim::with([
|
$claims = Claim::with([
|
||||||
'member',
|
'member',
|
||||||
'diagnoses' => function ($diagnosis) {
|
'diagnosis',
|
||||||
return $diagnosis->where('type', 'primary');
|
|
||||||
},
|
|
||||||
'diagnoses.icd',
|
|
||||||
'plan',
|
'plan',
|
||||||
'benefit',
|
'benefit'
|
||||||
'claimRequest',
|
|
||||||
'claimRequest.service'
|
|
||||||
])
|
])
|
||||||
->latest()
|
->latest()
|
||||||
->paginate(10);
|
->paginate(10);
|
||||||
@@ -96,27 +87,13 @@ class ClaimController extends Controller
|
|||||||
->with([
|
->with([
|
||||||
'member',
|
'member',
|
||||||
'member.currentPlan',
|
'member.currentPlan',
|
||||||
'member.currentPlan.benefits',
|
'diagnosis',
|
||||||
'member.currentCorporate',
|
|
||||||
'member.currentPolicy',
|
|
||||||
// 'diagnosis',
|
|
||||||
'diagnoses',
|
|
||||||
'diagnoses.icd',
|
|
||||||
'benefit',
|
'benefit',
|
||||||
'files',
|
'files'
|
||||||
'claimRequest',
|
|
||||||
'claimRequest.files',
|
|
||||||
'items',
|
|
||||||
'items.claim_itemable',
|
|
||||||
'encounters',
|
|
||||||
'encounters.doctors',
|
|
||||||
'encounters.primaryDiagnoses',
|
|
||||||
'encounters.primaryDiagnoses.diagnosis',
|
|
||||||
'encounters.healthcare'
|
|
||||||
])
|
])
|
||||||
->findOrFail($id);
|
->findOrFail($id);
|
||||||
|
|
||||||
return Helper::responseJson(ClaimShowResource::make($claim));
|
return response()->json($claim);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -154,135 +131,4 @@ class ClaimController extends Controller
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateDetails(Request $request, $id)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'healthcare_id' => 'required',
|
|
||||||
'doctor_id' => 'required',
|
|
||||||
'start' => 'required',
|
|
||||||
'end' => 'required'
|
|
||||||
]);
|
|
||||||
|
|
||||||
$claim = Claim::findOrFail($id);
|
|
||||||
|
|
||||||
return $claim;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function updateItems(Request $request, $id)
|
|
||||||
{
|
|
||||||
$request->validate([]);
|
|
||||||
$claim = Claim::findOrFail($id);
|
|
||||||
|
|
||||||
$order = 1;
|
|
||||||
$data = [];
|
|
||||||
$claim->items()->forceDelete();
|
|
||||||
foreach ($request->benefit_items as $benefitItem) {
|
|
||||||
$benefit = Benefit::find($benefitItem['id']);
|
|
||||||
if ($benefit) {
|
|
||||||
$benefit->claimItem()->create([
|
|
||||||
'claim_id' => $claim->id,
|
|
||||||
'order' => $order,
|
|
||||||
'name' => $benefit->code,
|
|
||||||
'currency' => 'IDR',
|
|
||||||
'nominal_ditagihkan' => $benefitItem['biaya_diajukan'] ?? 0,
|
|
||||||
'nominal_dicover' => $benefitItem['biaya_disetujui'] ?? 0,
|
|
||||||
'nominal_total' => $benefitItem['biaya_disetujui'] ?? 0,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$order++;
|
|
||||||
}
|
|
||||||
return Helper::responseJson([], message: "Item Claim berhasil di update");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function updateDiagnosis(Request $request, $id)
|
|
||||||
{
|
|
||||||
$request->validate([]);
|
|
||||||
$claim = Claim::findOrFail($id);
|
|
||||||
|
|
||||||
$claim->diagnoses()->forceDelete();
|
|
||||||
if ($request->primary) {
|
|
||||||
foreach ($request->primary as $diagnosisId) {
|
|
||||||
$claim->diagnoses()->create([
|
|
||||||
'claim_id' => $claim->id,
|
|
||||||
'type' => 'primary',
|
|
||||||
'diagnosis_id' => $diagnosisId,
|
|
||||||
'note' => '',
|
|
||||||
'description' => '',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->secondary) {
|
|
||||||
foreach ($request->secondary as $diagnosisId) {
|
|
||||||
$claim->diagnoses()->create([
|
|
||||||
'claim_id' => $claim->id,
|
|
||||||
'type' => 'secondary',
|
|
||||||
'diagnosis_id' => $diagnosisId,
|
|
||||||
'note' => '',
|
|
||||||
'description' => '',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return Helper::responseJson([], message: "Diagnosis berhasil di update");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function decline($id)
|
|
||||||
{
|
|
||||||
$claim = Claim::findOrFail($id);
|
|
||||||
$claim->status = 'declined';
|
|
||||||
$claim->save();
|
|
||||||
|
|
||||||
return Helper::responseJson($claim, message: "Claim berhasil di decline");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function approve($id)
|
|
||||||
{
|
|
||||||
$claim = Claim::findOrFail($id);
|
|
||||||
$claim->status = 'approved';
|
|
||||||
$claim->save();
|
|
||||||
|
|
||||||
return Helper::responseJson($claim, message: "Claim berhasil di approve");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function reOpen($id)
|
|
||||||
{
|
|
||||||
$claim = Claim::findOrFail($id);
|
|
||||||
$claim->status = 'received';
|
|
||||||
$claim->save();
|
|
||||||
|
|
||||||
return Helper::responseJson($claim, message: "Claim berhasil di approve");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function downloadFinalLog($id)
|
|
||||||
{
|
|
||||||
$claim = Claim::findOrFail($id);
|
|
||||||
|
|
||||||
$hospital = $claim->finalEncounter->healthcare ?? null;
|
|
||||||
|
|
||||||
// TODO Fix this tipu tipu
|
|
||||||
$inpationBenefit = $claim->member->currentPlan->benefits()->first();
|
|
||||||
|
|
||||||
$pdf = PDF::loadView('pdf.final_log', [
|
|
||||||
'claim' => $claim,
|
|
||||||
'member' => $claim->member,
|
|
||||||
'dateOfAdmission' => $claim->start,
|
|
||||||
'hospital' => $hospital,
|
|
||||||
'inpationBenefit' => $inpationBenefit
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $pdf->download('Final LOG '.$claim->code.'.pdf');
|
|
||||||
|
|
||||||
$view = view('pdf.final_log', [
|
|
||||||
'claim' => $claim,
|
|
||||||
'member' => $claim->member,
|
|
||||||
'dateOfAdmission' => $claim->start,
|
|
||||||
'hospital' => $hospital,
|
|
||||||
'inpationBenefit' => $inpationBenefit
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $view;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ namespace Modules\Internal\Http\Controllers\Api;
|
|||||||
|
|
||||||
use App\Helpers\Helper;
|
use App\Helpers\Helper;
|
||||||
use App\Models\ClaimRequest;
|
use App\Models\ClaimRequest;
|
||||||
use App\Services\ClaimService;
|
use App\Models\Member;
|
||||||
|
use Exception;
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
use Illuminate\Contracts\Support\Renderable;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
|
use Knp\Snappy\Pdf;
|
||||||
use Modules\Internal\Transformers\ClaimRequestResource;
|
use Modules\Internal\Transformers\ClaimRequestResource;
|
||||||
use Modules\Internal\Transformers\ClaimRequestShowResource;
|
use Modules\Internal\Transformers\ClaimRequestShowResource;
|
||||||
|
|
||||||
@@ -34,7 +36,7 @@ class ClaimRequestController extends Controller
|
|||||||
->when($request->status, function($q, $status) {
|
->when($request->status, function($q, $status) {
|
||||||
$q->where('status', $status);
|
$q->where('status', $status);
|
||||||
})
|
})
|
||||||
->with(['member', 'files', 'service'])
|
->with(['member', 'files'])
|
||||||
->paginate();
|
->paginate();
|
||||||
|
|
||||||
return Helper::paginateResources(ClaimRequestResource::collection($claimRequests));
|
return Helper::paginateResources(ClaimRequestResource::collection($claimRequests));
|
||||||
@@ -113,31 +115,19 @@ class ClaimRequestController extends Controller
|
|||||||
$claimRequest = ClaimRequest::findOrFail($id);
|
$claimRequest = ClaimRequest::findOrFail($id);
|
||||||
$member = $claimRequest->member;
|
$member = $claimRequest->member;
|
||||||
|
|
||||||
try {
|
$claimRequest->status = 'approved';
|
||||||
|
$claimRequest->save();
|
||||||
// Create New Claim
|
|
||||||
$newClaim = ClaimService::storeClaim(member: $member, status: 'received', claimRequest: $claimRequest);
|
// Store Generated Documents
|
||||||
|
$logContent = view('pdf.guaranted_leter', compact('member', 'claimRequest'));
|
||||||
// Update Claim Request Status & Link with Claim
|
$claimRequest->generatedDocuments()->create([
|
||||||
$claimRequest->status = 'approved';
|
'type' => 'guarantee_letter',
|
||||||
$claimRequest->claim_id = $newClaim->id;
|
'title' => 'Guarantee Letter for '. $member->full_name,
|
||||||
$claimRequest->save();
|
'document_type' => 'type',
|
||||||
|
'html_content' => $logContent,
|
||||||
// Store Generated Documents LOG
|
'system_origin' => 'primecenter'
|
||||||
$logContent = view('pdf.guaranted_leter', compact('member', 'claimRequest'));
|
]);
|
||||||
$claimRequest->generatedDocuments()->create([
|
|
||||||
'type' => 'guarantee_letter',
|
|
||||||
'title' => 'Guarantee Letter for '. $member->full_name,
|
|
||||||
'document_type' => 'type',
|
|
||||||
'html_content' => $logContent,
|
|
||||||
'system_origin' => 'primecenter'
|
|
||||||
]);
|
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return $claimRequest;
|
return $claimRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
0
Modules/Internal/Http/Controllers/Api/CorporateBenefitController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/CorporateBenefitController.php
Normal file → Executable file
5
Modules/Internal/Http/Controllers/Api/CorporateController.php
Normal file → Executable file
5
Modules/Internal/Http/Controllers/Api/CorporateController.php
Normal file → Executable file
@@ -77,7 +77,6 @@ class CorporateController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'code' => 'required|regex:/^[a-zA-Z0-9]+$/',
|
'code' => 'required|regex:/^[a-zA-Z0-9]+$/',
|
||||||
'name' => 'required',
|
'name' => 'required',
|
||||||
@@ -91,6 +90,7 @@ class CorporateController extends Controller
|
|||||||
'policy_stop_service_percentage' => 'required_with:policy_code',
|
'policy_stop_service_percentage' => 'required_with:policy_code',
|
||||||
'policy_stop_service_net' => 'required_with:policy_code',
|
'policy_stop_service_net' => 'required_with:policy_code',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
$corporate_data = $request->all();
|
$corporate_data = $request->all();
|
||||||
@@ -98,6 +98,7 @@ class CorporateController extends Controller
|
|||||||
|
|
||||||
$newCorporate = Corporate::create($request->all());
|
$newCorporate = Corporate::create($request->all());
|
||||||
if ($request->has('policy_code') && !empty($request->policy_code)) {
|
if ($request->has('policy_code') && !empty($request->policy_code)) {
|
||||||
|
// dd($request->policy_code, 'fuck you');
|
||||||
$newCorporate->policies()->create([
|
$newCorporate->policies()->create([
|
||||||
'code' => $request->policy_code ?? NULL,
|
'code' => $request->policy_code ?? NULL,
|
||||||
'total_premi' => $request->policy_total_premi ?? NULL,
|
'total_premi' => $request->policy_total_premi ?? NULL,
|
||||||
@@ -396,6 +397,7 @@ class CorporateController extends Controller
|
|||||||
$request->validate([
|
$request->validate([
|
||||||
'file' => 'required|file|mimes:xls,xlsx,csv,txt',
|
'file' => 'required|file|mimes:xls,xlsx,csv,txt',
|
||||||
]);
|
]);
|
||||||
|
// dd($request->toArray());
|
||||||
$file_name = now()->getPreciseTimestamp(3) . '-' . $request->file('file')->getClientOriginalName();
|
$file_name = now()->getPreciseTimestamp(3) . '-' . $request->file('file')->getClientOriginalName();
|
||||||
$file = $request->file('file')->storeAs('temp', $file_name);
|
$file = $request->file('file')->storeAs('temp', $file_name);
|
||||||
$corporate = Corporate::with(['plans'])->findOrFail($corporate_id);
|
$corporate = Corporate::with(['plans'])->findOrFail($corporate_id);
|
||||||
@@ -519,5 +521,4 @@ class CorporateController extends Controller
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
0
Modules/Internal/Http/Controllers/Api/CorporateFormulariumController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/CorporateFormulariumController.php
Normal file → Executable file
4
Modules/Internal/Http/Controllers/Api/CorporateMemberController.php
Normal file → Executable file
4
Modules/Internal/Http/Controllers/Api/CorporateMemberController.php
Normal file → Executable file
@@ -155,7 +155,7 @@ class CorporateMemberController extends Controller
|
|||||||
$result_headers = $this->memberEnrollmentService->result_doc_headers;
|
$result_headers = $this->memberEnrollmentService->result_doc_headers;
|
||||||
$singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRow($result_headers));
|
$singleRow = WriterEntityFactory::createRow($this->memberEnrollmentService->makeResultRow($result_headers));
|
||||||
$writer->addRow($singleRow);
|
$writer->addRow($singleRow);
|
||||||
|
|
||||||
$imported_member_data = 0;
|
$imported_member_data = 0;
|
||||||
$failed_member_data = [];
|
$failed_member_data = [];
|
||||||
foreach ($reader->getSheetIterator() as $sheet) {
|
foreach ($reader->getSheetIterator() as $sheet) {
|
||||||
@@ -181,7 +181,7 @@ class CorporateMemberController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// dd($new_member_data);
|
||||||
$rowResponse = $this->memberEnrollmentService->handleImportRow($corporate, $new_member_data);
|
$rowResponse = $this->memberEnrollmentService->handleImportRow($corporate, $new_member_data);
|
||||||
|
|
||||||
// Write Success Result to File
|
// Write Success Result to File
|
||||||
|
|||||||
0
Modules/Internal/Http/Controllers/Api/CorporatePlanController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/CorporatePlanController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/CorporateServiceController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/CorporateServiceController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/DiagnosisController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/DiagnosisController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/DiagnosisExclusionController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/DiagnosisExclusionController.php
Normal file → Executable file
3
Modules/Internal/Http/Controllers/Api/DivisionController.php
Normal file → Executable file
3
Modules/Internal/Http/Controllers/Api/DivisionController.php
Normal file → Executable file
@@ -91,8 +91,7 @@ class DivisionController extends Controller
|
|||||||
$request->validate([
|
$request->validate([
|
||||||
'code' => [
|
'code' => [
|
||||||
'required',
|
'required',
|
||||||
// Rule::unique('corporate_plans')->where('corporate_id', $corporate_id)->ignore($corporatePlan->id)
|
Rule::unique('corporate_plans')->where('corporate_id', $corporate_id)->ignore($corporatePlan->id)
|
||||||
Rule::unique('corporate_divisions')->where('corporate_id', $corporate_id)
|
|
||||||
],
|
],
|
||||||
'name' => 'required'
|
'name' => 'required'
|
||||||
]);
|
]);
|
||||||
|
|||||||
0
Modules/Internal/Http/Controllers/Api/DrugController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/DrugController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/FormulariumController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/FormulariumController.php
Normal file → Executable file
@@ -1,136 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Modules\Internal\Http\Controllers\Api\Linksehat;
|
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
|
||||||
use App\Models\OLDLMS\Appointment;
|
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Routing\Controller;
|
|
||||||
use Modules\Internal\Transformers\LinksehatPaymentResource;
|
|
||||||
|
|
||||||
class PaymentController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function index(Request $request)
|
|
||||||
{
|
|
||||||
// return $request->toArray();
|
|
||||||
$appointments = Appointment::query()
|
|
||||||
->where('sPaymentStatus', 'settlement')
|
|
||||||
->with(['healthCare', 'healthCare.commission', 'detail', 'user', 'doctor', 'doctor.user']);
|
|
||||||
|
|
||||||
if ($request->has('search')) {
|
|
||||||
$appointments->where(function ($query) use ($request) {
|
|
||||||
$query->where('nID', $request->search)
|
|
||||||
->orWhere('sBookingCode', $request->search)
|
|
||||||
->orWhereHas('detail', function (Builder $detail) use ($request) {
|
|
||||||
$detail->where('sPaymentDetails', 'LIKE', '%' . $request->search . "%");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (($request->has('appointment_start') || $request->has('appointment_end'))
|
|
||||||
&& !empty($request->appointment_start)
|
|
||||||
&& !empty($request->appointment_end)
|
|
||||||
) {
|
|
||||||
// $appointments = $appointments->whereHas('detail', function (Builder $detail) use ($request) {
|
|
||||||
|
|
||||||
// // Appointment Start
|
|
||||||
// // if ($request->has('appointment_start')) {
|
|
||||||
// $detail->where('dTanggalAppointment', '>=', $request->appointment_start);
|
|
||||||
// // } else {
|
|
||||||
// // $detail->where('dTanggalAppointment', '>', now()->format('Y-m-d'));
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// // if ($request->has('appointment_end')) {
|
|
||||||
// $detail->where('dTanggalAppointment', '<=', $request->appointment_end);
|
|
||||||
// // } else {
|
|
||||||
// // $detail->where('dTanggalAppointment', '<', now()->addDay(1)->format('Y-m-d'));
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// });
|
|
||||||
|
|
||||||
$appointments = $appointments->where(function($q) use ($request) {
|
|
||||||
$q->where('dAgreeOn', '>=', $request->appointment_start)
|
|
||||||
->where('dAgreeOn', '<=', $request->appointment_end);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->has('payment_status') && $request->payment_status != 'semua') {
|
|
||||||
$appointments->where('sPaymentStatus', $request->payment_status);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->has('healthcare_id') && !empty($request->healthcare_id)) {
|
|
||||||
$appointments->where('nIDHealthCare', $request->healthcare_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
$appointments = $appointments->orderBy('dUpdateOn', 'DESC')
|
|
||||||
->paginate();
|
|
||||||
|
|
||||||
return Helper::responseJson(Helper::paginateResources(LinksehatPaymentResource::collection($appointments)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
return view('internal::create');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
return view('internal::show');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
return view('internal::edit');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Modules\Internal\Http\Controllers\Api;
|
|
||||||
|
|
||||||
use App\Models\Icd;
|
|
||||||
use App\Models\OLDLMS\Healthcare;
|
|
||||||
use App\Models\Organization;
|
|
||||||
use App\Models\Practitioner;
|
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Routing\Controller;
|
|
||||||
|
|
||||||
class OptionController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function index(Request $request)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'type' => 'required',
|
|
||||||
'search' => 'required'
|
|
||||||
]);
|
|
||||||
|
|
||||||
switch ($request->type) {
|
|
||||||
case 'diagnosis':
|
|
||||||
$icds = Icd::query()
|
|
||||||
->where('code', 'LIKE', '%'.$request->search.'%')
|
|
||||||
->orWhere('name', 'LIKE', '%'.$request->search.'%')
|
|
||||||
->limit('10')
|
|
||||||
->get();
|
|
||||||
|
|
||||||
return $icds;
|
|
||||||
break;
|
|
||||||
case 'doctors':
|
|
||||||
$doctors = Practitioner::query()
|
|
||||||
->whereHas('person', function ($person) use ($request) {
|
|
||||||
$person->where('name', 'LIKE', '%'.$request->search.'%');
|
|
||||||
})
|
|
||||||
->limit('10')
|
|
||||||
->get();
|
|
||||||
|
|
||||||
$doctors = $doctors->map(function($doctor) {
|
|
||||||
$doctorDetail = $doctor->person->toArray();
|
|
||||||
unset($doctorDetail['id']);
|
|
||||||
|
|
||||||
return array_merge([
|
|
||||||
'id' => $doctor->id,
|
|
||||||
'code' => $doctor->code
|
|
||||||
], $doctorDetail);
|
|
||||||
});
|
|
||||||
|
|
||||||
return $doctors;
|
|
||||||
break;
|
|
||||||
case 'healthcares':
|
|
||||||
$healthcares = Organization::query()
|
|
||||||
->hospital()
|
|
||||||
->where('name', 'LIKE', '%'.$request->search.'%')
|
|
||||||
->limit('10')
|
|
||||||
->get();
|
|
||||||
|
|
||||||
return $healthcares;
|
|
||||||
break;
|
|
||||||
case 'linksehat-healthcares':
|
|
||||||
$healthcares = Healthcare::query()
|
|
||||||
->where('sHealthCare', 'LIKE', '%'.$request->search.'%')
|
|
||||||
->limit('10')
|
|
||||||
->get();
|
|
||||||
|
|
||||||
return $healthcares;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
# code...
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('internal::index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
return view('internal::create');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
return view('internal::show');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
return view('internal::edit');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
Modules/Internal/Http/Controllers/Api/PlanController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/Api/PlanController.php
Normal file → Executable file
@@ -1,281 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Modules\Internal\Http\Controllers;
|
|
||||||
|
|
||||||
use App\Helpers\Helper;
|
|
||||||
use App\Models\Claim;
|
|
||||||
use App\Models\Encounter;
|
|
||||||
use App\Models\Practitioner;
|
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Routing\Controller;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Modules\Internal\Transformers\EncounterResource;
|
|
||||||
|
|
||||||
class ClaimEncounterController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function index()
|
|
||||||
{
|
|
||||||
return view('internal::index');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
return view('internal::create');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function store(Request $request, $claim_id)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'service_code' => 'required',
|
|
||||||
'tanggal_masuk' => 'required',
|
|
||||||
'tanggal_keluar' => 'required'
|
|
||||||
]);
|
|
||||||
$claim = Claim::findOrFail($claim_id);
|
|
||||||
|
|
||||||
// return ($request->primary_diagnosis['id']);
|
|
||||||
// die;
|
|
||||||
// return $request->toArray();
|
|
||||||
try {
|
|
||||||
DB::beginTransaction();
|
|
||||||
|
|
||||||
$newEncounterData = [
|
|
||||||
'status' => 'completed',
|
|
||||||
'class' => $request->service_code,
|
|
||||||
'type' => 'Consultation',
|
|
||||||
'patient_id' => $claim->member->person_id,
|
|
||||||
'start' => $request->tanggal_masuk,
|
|
||||||
'end' => $request->tanggal_keluar,
|
|
||||||
'number_of_bed' => $request->number_of_bed,
|
|
||||||
'duration_day' => $request->duration_day
|
|
||||||
];
|
|
||||||
|
|
||||||
if ($request->has('healthcare')) {
|
|
||||||
$newEncounterData['healthcare_id'] = $request->healthcare['id'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create New Encounter
|
|
||||||
$newEncounter = $claim->encounters()->create($newEncounterData);
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------------
|
|
||||||
// Meta
|
|
||||||
// TODO Handle if healthcare not primaya
|
|
||||||
$newEncounter->metas()->updateOrCreate([
|
|
||||||
'type' => 'MEDRECID',
|
|
||||||
'system' => 'primaya-his'
|
|
||||||
], [
|
|
||||||
'type' => 'MEDRECID',
|
|
||||||
'system' => 'primaya-his',
|
|
||||||
'value' => $request->medical_record_number
|
|
||||||
]);
|
|
||||||
|
|
||||||
// ---------------------------------------------
|
|
||||||
// Handle Diagnosis
|
|
||||||
if ($request->has('primary_diagnosis') && $request->primary_diagnosis) {
|
|
||||||
$newEncounter->diagnoses()->create([
|
|
||||||
'diagnosis_id' => $request->primary_diagnosis['id'],
|
|
||||||
'type' => 'primary',
|
|
||||||
'use' => 'discharge',
|
|
||||||
'source' => 'primecenter',
|
|
||||||
'description' => 'Batching',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->has('secondary_diagnoses')) {
|
|
||||||
foreach ($request->secondary_diagnoses as $diagnosis) {
|
|
||||||
if (!isset($diagnosis['id'])) { // Handle Null Values
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$newEncounter->diagnoses()->create([
|
|
||||||
'diagnosis_id' => $diagnosis['id'],
|
|
||||||
'type' => 'secondary',
|
|
||||||
'use' => 'discharge',
|
|
||||||
'source' => 'primecenter',
|
|
||||||
'description' => 'Batching',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------
|
|
||||||
// Handle Doctors as primary Doctor
|
|
||||||
if ($request->has('doctor')) {
|
|
||||||
$newEncounter->participants()->create([
|
|
||||||
'type' => 'Doctor',
|
|
||||||
'participantable_type' => Practitioner::class,
|
|
||||||
'participantable_id' => $request->doctor['id'],
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
DB::commit();
|
|
||||||
|
|
||||||
$newEncounter->load(['diagnoses', 'doctors', 'healthcare']);
|
|
||||||
|
|
||||||
return Helper::responseJson(data: EncounterResource::make($newEncounter), message: 'Encounter berhasil ditambahkan');
|
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
DB::rollback();
|
|
||||||
throw $e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
return view('internal::show');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
return view('internal::edit');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
* @param Request $request
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function update(Request $request, $claim_id, $encounter_id)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'service_code' => 'required',
|
|
||||||
'tanggal_masuk' => 'required',
|
|
||||||
'tanggal_keluar' => 'required'
|
|
||||||
]);
|
|
||||||
// $claim = Claim::findOrFail($claim_id);
|
|
||||||
|
|
||||||
// return ($request->primary_diagnosis['id']);
|
|
||||||
// die;
|
|
||||||
// return $request->toArray();
|
|
||||||
try {
|
|
||||||
DB::beginTransaction();
|
|
||||||
|
|
||||||
$encounter = Encounter::findOrFail($encounter_id);
|
|
||||||
|
|
||||||
$encounterData = [
|
|
||||||
'status' => 'completed',
|
|
||||||
'class' => $request->service_code,
|
|
||||||
'type' => 'Consultation',
|
|
||||||
'start' => $request->tanggal_masuk,
|
|
||||||
'end' => $request->tanggal_keluar,
|
|
||||||
'number_of_bed' => $request->number_of_bed,
|
|
||||||
'duration_day' => $request->duration_day
|
|
||||||
];
|
|
||||||
|
|
||||||
if ($request->has('healthcare')) {
|
|
||||||
$encounterData['healthcare_id'] = $request->healthcare['id'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update The Encounter
|
|
||||||
$encounter->fill($encounterData);
|
|
||||||
$encounter->save();
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------------
|
|
||||||
// Meta
|
|
||||||
// TODO Handle if healthcare not primaya
|
|
||||||
$encounter->metas()->updateOrCreate([
|
|
||||||
'type' => 'MEDRECID',
|
|
||||||
'system' => 'primaya-his'
|
|
||||||
], [
|
|
||||||
'type' => 'MEDRECID',
|
|
||||||
'system' => 'primaya-his',
|
|
||||||
'value' => $request->medical_record_number
|
|
||||||
]);
|
|
||||||
|
|
||||||
// ---------------------------------------------
|
|
||||||
// Handle Diagnosis
|
|
||||||
if ($request->has('primary_diagnosis')) {
|
|
||||||
$encounter->diagnoses()->where('type', 'primary')->delete();
|
|
||||||
$encounter->diagnoses()->create([
|
|
||||||
'diagnosis_id' => $request->primary_diagnosis['id'],
|
|
||||||
'type' => 'primary',
|
|
||||||
'use' => 'discharge',
|
|
||||||
'source' => 'primecenter',
|
|
||||||
'description' => 'Batching',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->has('secondary_diagnoses')) {
|
|
||||||
$encounter->diagnoses()->where('type', 'secondary')->delete();
|
|
||||||
foreach ($request->secondary_diagnoses as $diagnosis) {
|
|
||||||
if (!isset($diagnosis['id'])) { // Handle Null Values
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$encounter->diagnoses()->create([
|
|
||||||
'diagnosis_id' => $diagnosis['id'],
|
|
||||||
'type' => 'secondary',
|
|
||||||
'use' => 'discharge',
|
|
||||||
'source' => 'primecenter',
|
|
||||||
'description' => 'Batching',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------
|
|
||||||
// Handle Doctors as primary Doctor
|
|
||||||
// if ($request->has('doctor')) {
|
|
||||||
// $encounter->participants()->create([
|
|
||||||
// 'type' => 'Doctor',
|
|
||||||
// 'participantable_type' => Practitioner::class,
|
|
||||||
// 'participantable_id' => $request->doctor['id'],
|
|
||||||
// ]);
|
|
||||||
// }
|
|
||||||
DB::commit();
|
|
||||||
|
|
||||||
$encounter->load(['diagnoses', 'doctors', 'healthcare']);
|
|
||||||
|
|
||||||
return Helper::responseJson(data: EncounterResource::make($encounter), message: 'Encounter berhasil ditambahkan');
|
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
DB::rollback();
|
|
||||||
throw $e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
* @param int $id
|
|
||||||
* @return Renderable
|
|
||||||
*/
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setFinalEncounter(Request $request, $claim_id)
|
|
||||||
{
|
|
||||||
$request->validate([
|
|
||||||
'encounter_id' => 'required'
|
|
||||||
]);
|
|
||||||
|
|
||||||
$claim = Claim::findOrFail($claim_id);
|
|
||||||
|
|
||||||
$claim->final_encounter_id = $request->encounter_id;
|
|
||||||
$claim->save();
|
|
||||||
|
|
||||||
return Helper::responseJson(data: $claim, message: "Success Update Final Encounter");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
Modules/Internal/Http/Controllers/InternalController.php
Normal file → Executable file
0
Modules/Internal/Http/Controllers/InternalController.php
Normal file → Executable file
0
Modules/Internal/Http/Middleware/.gitkeep
Normal file → Executable file
0
Modules/Internal/Http/Middleware/.gitkeep
Normal file → Executable file
0
Modules/Internal/Http/Requests/.gitkeep
Normal file → Executable file
0
Modules/Internal/Http/Requests/.gitkeep
Normal file → Executable file
0
Modules/Internal/Providers/.gitkeep
Normal file → Executable file
0
Modules/Internal/Providers/.gitkeep
Normal file → Executable file
0
Modules/Internal/Providers/InternalServiceProvider.php
Normal file → Executable file
0
Modules/Internal/Providers/InternalServiceProvider.php
Normal file → Executable file
0
Modules/Internal/Providers/RouteServiceProvider.php
Normal file → Executable file
0
Modules/Internal/Providers/RouteServiceProvider.php
Normal file → Executable file
0
Modules/Internal/Resources/assets/.gitkeep
Normal file → Executable file
0
Modules/Internal/Resources/assets/.gitkeep
Normal file → Executable file
0
Modules/Internal/Resources/assets/js/app.js
Normal file → Executable file
0
Modules/Internal/Resources/assets/js/app.js
Normal file → Executable file
0
Modules/Internal/Resources/assets/sass/app.scss
Normal file → Executable file
0
Modules/Internal/Resources/assets/sass/app.scss
Normal file → Executable file
0
Modules/Internal/Resources/lang/.gitkeep
Normal file → Executable file
0
Modules/Internal/Resources/lang/.gitkeep
Normal file → Executable file
0
Modules/Internal/Resources/views/.gitkeep
Normal file → Executable file
0
Modules/Internal/Resources/views/.gitkeep
Normal file → Executable file
0
Modules/Internal/Resources/views/index.blade.php
Normal file → Executable file
0
Modules/Internal/Resources/views/index.blade.php
Normal file → Executable file
0
Modules/Internal/Resources/views/layouts/master.blade.php
Normal file → Executable file
0
Modules/Internal/Resources/views/layouts/master.blade.php
Normal file → Executable file
0
Modules/Internal/Routes/.gitkeep
Normal file → Executable file
0
Modules/Internal/Routes/.gitkeep
Normal file → Executable file
17
Modules/Internal/Routes/api.php
Normal file → Executable file
17
Modules/Internal/Routes/api.php
Normal file → Executable file
@@ -21,16 +21,13 @@ use Modules\Internal\Http\Controllers\Api\DivisionController;
|
|||||||
use Modules\Internal\Http\Controllers\Api\DoctorController;
|
use Modules\Internal\Http\Controllers\Api\DoctorController;
|
||||||
use Modules\Internal\Http\Controllers\Api\DrugController;
|
use Modules\Internal\Http\Controllers\Api\DrugController;
|
||||||
use Modules\Internal\Http\Controllers\Api\FormulariumController;
|
use Modules\Internal\Http\Controllers\Api\FormulariumController;
|
||||||
use Modules\Internal\Http\Controllers\Api\Linksehat\PaymentController;
|
|
||||||
use Modules\Internal\Http\Controllers\Api\LivechatController;
|
use Modules\Internal\Http\Controllers\Api\LivechatController;
|
||||||
use Modules\Internal\Http\Controllers\Api\MemberController;
|
use Modules\Internal\Http\Controllers\Api\MemberController;
|
||||||
use Modules\Internal\Http\Controllers\Api\OptionController;
|
|
||||||
use Modules\Internal\Http\Controllers\Api\OrganizationController;
|
use Modules\Internal\Http\Controllers\Api\OrganizationController;
|
||||||
use Modules\Internal\Http\Controllers\Api\PlanController;
|
use Modules\Internal\Http\Controllers\Api\PlanController;
|
||||||
use Modules\Internal\Http\Controllers\Api\ProvinceController;
|
use Modules\Internal\Http\Controllers\Api\ProvinceController;
|
||||||
use Modules\Internal\Http\Controllers\Api\SpecialityController;
|
use Modules\Internal\Http\Controllers\Api\SpecialityController;
|
||||||
use Modules\Internal\Http\Controllers\Api\VillageController;
|
use Modules\Internal\Http\Controllers\Api\VillageController;
|
||||||
use Modules\Internal\Http\Controllers\ClaimEncounterController;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -50,8 +47,6 @@ Route::prefix('internal')->group(function () {
|
|||||||
Route::post('forget-password', [AuthController::class, 'forgetPassword'])->name('forget-password');
|
Route::post('forget-password', [AuthController::class, 'forgetPassword'])->name('forget-password');
|
||||||
Route::post('verify-email', [AuthController::class, 'verifyEmail'])->name('verify-email');
|
Route::post('verify-email', [AuthController::class, 'verifyEmail'])->name('verify-email');
|
||||||
|
|
||||||
Route::get('linksehat/payments', [PaymentController::class, 'index']);
|
|
||||||
|
|
||||||
|
|
||||||
Route::middleware('auth:sanctum')->group(function () {
|
Route::middleware('auth:sanctum')->group(function () {
|
||||||
|
|
||||||
@@ -123,16 +118,7 @@ Route::prefix('internal')->group(function () {
|
|||||||
Route::get('members', [MemberController::class, 'index']);
|
Route::get('members', [MemberController::class, 'index']);
|
||||||
Route::get('members/{member_id}/benefits', [MemberController::class, 'benefits']);
|
Route::get('members/{member_id}/benefits', [MemberController::class, 'benefits']);
|
||||||
|
|
||||||
Route::post('claims/{claim_id}/encounters', [ClaimEncounterController::class, 'store']);
|
|
||||||
Route::post('claims/{claim_id}/encounters/{encounter_id}/update', [ClaimEncounterController::class, 'update']);
|
|
||||||
Route::post('claims/{claim_id}/set-final-encounter', [ClaimEncounterController::class, 'setFinalEncounter']);
|
|
||||||
|
|
||||||
Route::get('claims', [ClaimController::class, 'index']);
|
Route::get('claims', [ClaimController::class, 'index']);
|
||||||
Route::post('claims/{id}/update-items', [ClaimController::class, 'updateItems'])->name('claim.update-items');
|
|
||||||
Route::post('claims/{id}/update-diagnosis', [ClaimController::class, 'updateDiagnosis'])->name('claim.update-diagnosis');
|
|
||||||
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', [ClaimController::class, 'store']);
|
Route::post('claims', [ClaimController::class, 'store']);
|
||||||
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
||||||
Route::post('check-limit', [ClaimController::class, 'checkLimit']);
|
Route::post('check-limit', [ClaimController::class, 'checkLimit']);
|
||||||
@@ -156,7 +142,4 @@ Route::prefix('internal')->group(function () {
|
|||||||
Route::get('city', [CityController::class, 'index']);
|
Route::get('city', [CityController::class, 'index']);
|
||||||
Route::get('district', [DistrictController::class, 'index']);
|
Route::get('district', [DistrictController::class, 'index']);
|
||||||
Route::get('village', [VillageController::class, 'index']);
|
Route::get('village', [VillageController::class, 'index']);
|
||||||
Route::get('options', [OptionController::class, 'index']);
|
|
||||||
|
|
||||||
Route::get('final-log/{id}', [ClaimController::class, 'downloadFinalLog'])->name('claim.download-final-log');
|
|
||||||
});
|
});
|
||||||
|
|||||||
0
Modules/Internal/Routes/web.php
Normal file → Executable file
0
Modules/Internal/Routes/web.php
Normal file → Executable file
11
Modules/Internal/Services/ClaimService.php
Normal file
11
Modules/Internal/Services/ClaimService.php
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Internal\Services;
|
||||||
|
|
||||||
|
use App\Models\Claim;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class ClaimService
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
8
Modules/Internal/Services/CorporateService.php
Normal file → Executable file
8
Modules/Internal/Services/CorporateService.php
Normal file → Executable file
@@ -39,10 +39,11 @@ class CorporateService
|
|||||||
try {
|
try {
|
||||||
$plan_data = $row;
|
$plan_data = $row;
|
||||||
$plan_data["corporate_id"] = $corporate->id;
|
$plan_data["corporate_id"] = $corporate->id;
|
||||||
|
|
||||||
$this->validatePlanRow($plan_data);
|
$this->validatePlanRow($plan_data);
|
||||||
|
|
||||||
$plan = $corporate->plans()->updateOrCreate([
|
$plan = $corporate->plans()->updateOrCreate([
|
||||||
'corporate_plan_id' => $plan_data['corporate_plan_id'],
|
'service_code' => $plan_data['service_code'],
|
||||||
// 'active' => 0,
|
|
||||||
], $plan_data);
|
], $plan_data);
|
||||||
|
|
||||||
return $plan;
|
return $plan;
|
||||||
@@ -101,8 +102,7 @@ class CorporateService
|
|||||||
], [
|
], [
|
||||||
'code' => $benefit_data['code'],
|
'code' => $benefit_data['code'],
|
||||||
'service_code' => $plan->service_code,
|
'service_code' => $plan->service_code,
|
||||||
'active' => 1,
|
'active' => true
|
||||||
'description' => $benefit_data['description'],
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$corporateBenefit = $corporate->corporateBenefits()->updateOrCreate([
|
$corporateBenefit = $corporate->corporateBenefits()->updateOrCreate([
|
||||||
|
|||||||
0
Modules/Internal/Services/ExclusionService.php
Normal file → Executable file
0
Modules/Internal/Services/ExclusionService.php
Normal file → Executable file
0
Modules/Internal/Services/FormulariumService.php
Normal file → Executable file
0
Modules/Internal/Services/FormulariumService.php
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user