API Home dan Linking

This commit is contained in:
2024-04-18 08:46:49 +07:00
parent 666712f015
commit 1f26289b7a
11 changed files with 601 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
<?php
namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Organization;
use App\Models\PractitionerRole;
use App\Models\OLDLMS\User;
use Illuminate\Routing\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Http;
use Modules\Linksehat\Transformers\Article\ArticleResource;
use Modules\Linksehat\Transformers\Home\HomeResource;
use Modules\Linksehat\Transformers\Doctor\DoctorResource;
use Modules\Linksehat\Transformers\Hospital\HospitalResource;
class HomeController extends Controller
{
public function index(Request $request)
{
$user = User::with('detail')
->where('nId', $request->id)
->first();
return Helper::responseJson([
'home' => HomeResource::make($user, $request),
]);
}
public function listHospital(Request $request){
// Hospital List
$hospitalList = [];
$hospitals = Organization::where([
'type' => 'hospital',
'status' => 'active',
])
->with('currentAddress')
->get()->toArray();
foreach($hospitals as $hospital){
$lat = 0;
$lang = 0;
if ($hospital['current_address']['lat']){
$lat = $hospital['current_address']['lat'];
}
if ($hospital['current_address']['lng']){
$lang = $hospital['current_address']['lng'];
}
$address = '';
if ($hospital['current_address']['text']){
$address = $hospital['current_address']['text'];
}
$radius = 0;
if ($lat && $lang && $request->longitude && $request->latitude){
$radius = round(Helper::calculateDistance($lat, $lang, $request->latitude, $request->longitude), 2);
}
$data = [
'name' => $hospital['name'],
'radius' => $radius,
'image' => '',
'address' => $address
];
array_push($hospitalList, $data);
}
usort($hospitalList, function($a, $b) {
return $a['radius'] <=> $b['radius'];
});
return Helper::responseJson([
'hospital' => $hospitalList
]);
}
}

View File

@@ -5,6 +5,8 @@ namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Models\Person;
use App\Models\RequestLogBenefit;
use App\Models\RequestLog;
use App\Models\Corporate;
use App\Models\Member;
use App\Models\OLDLMS\User;
@@ -135,4 +137,39 @@ class LinkingController extends Controller
$message = $member->currentPolicy->corporate->welcome_message;
return Helper::responseJson(data: MemberResource::make($member), message: $message);
}
public function card_detail($member_id, $id){
$member = Member::where('member_id', $member_id)->get()->toArray();
$requestLogBenefits = RequestLogBenefit::where('request_log_id', $id)->with('benefit')->get()->toArray();
$requestLog = RequestLog::find($id)->first();
$benefitItem = [];
$dataRequestLog = [
'code' => $requestLog['code'],
'diagnosis' => Helper::diagnosisName($requestLog['diagnosis']),
'service_type' => Helper::serviceName($requestLog['service_code']),
];
foreach($requestLogBenefits as $requestLogBenefit) {
$data = [
'benefit_item' => $requestLogBenefit['benefit']['description'],
'amount_incurred' => $requestLogBenefit['amount_incurred'],
'amount_approved' => $requestLogBenefit['amount_approved'],
'amount_not_approved' => $requestLogBenefit['amount_not_approved'],
'excess_paid' => $requestLogBenefit['excess_paid'],
];
$benefitItem[] = $data;
};
$dataRequestLog['benefit_item'] = $benefitItem;
// dd($dataRequestLog);
// $data = [
// 'id' => $requestLog['id'],
// 'code' => $requestLog['code'],
// 'submission_date' => Carbon::parse($requestLog['submission_date'])->format('d M Y H:i:s'),
// 'provider_name' => $requestLog['organization']['name'],
// 'service' => Helper::serviceName($requestLog['service_code'])
// ];
return Helper::responseJson(data:$dataRequestLog);
}
}