Merge remote-tracking branch 'origin/staging' into origin/production
This commit is contained in:
@@ -13,6 +13,7 @@ use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\File as Files;
|
||||
use Modules\Internal\Transformers\DailyMonitoringResource;
|
||||
use App\Models\File;
|
||||
use Carbon\Carbon;
|
||||
|
||||
|
||||
/**
|
||||
@@ -38,25 +39,44 @@ class DailyMonitoringController extends Controller
|
||||
|
||||
public function GetMemberList(Request $request)
|
||||
{
|
||||
$memberList = DB::table('request_logs')
|
||||
->leftJoin('members', 'request_logs.member_id', '=', 'members.id')
|
||||
->leftJoin('organizations', 'organizations.id', '=', 'request_logs.organization_id')
|
||||
->select('members.member_id','members.name','members.members_effective_date AS startdate','members.members_expire_date AS enddate', 'request_logs.submission_date as addmision_date', 'organizations.name as provider', 'request_logs.organization_id' )
|
||||
->where('request_logs.service_code', 'IP')
|
||||
->where('request_logs.deleted_at', null)
|
||||
->when($request->search, function ($q, $search) {
|
||||
$q->where(function ($subQ) use ($search) {
|
||||
$subQ->where('members.member_id', 'LIKE', "%".$search."%");
|
||||
$subQ->orWhere('members.name','LIKE',"%".$search."%");
|
||||
});
|
||||
})
|
||||
// ->where('request_logs.status_final_log', 'approved')
|
||||
->groupBy('request_logs.member_id', 'request_logs.organization_id')
|
||||
->orderBy('request_logs.created_at', 'desc')
|
||||
// ->get()
|
||||
->paginate();
|
||||
|
||||
$startDate = $request->start_date ? Carbon::parse($request->start_date) : Carbon::today();
|
||||
$endDate = $request->end_date ? Carbon::parse($request->end_date)->addDay() : Carbon::today()->addDay();
|
||||
|
||||
$memberList = DB::table('request_log_daily_monitorings')
|
||||
->leftJoin('request_logs', 'request_log_daily_monitorings.request_log_id', '=', 'request_logs.id')
|
||||
->leftJoin('members', 'request_logs.member_id', '=', 'members.id')
|
||||
->leftJoin('organizations', 'organizations.id', '=', 'request_logs.organization_id')
|
||||
->select(
|
||||
'members.member_id',
|
||||
'members.name',
|
||||
'members.birth_date',
|
||||
'request_logs.type_of_member as member_type',
|
||||
'members.members_effective_date AS startdate',
|
||||
'members.members_expire_date AS enddate',
|
||||
'request_logs.submission_date as addmision_date',
|
||||
'organizations.name as provider',
|
||||
'request_logs.organization_id',
|
||||
'request_logs.code',
|
||||
// Using a subquery to fetch medical_plan
|
||||
DB::raw('(SELECT plan FROM request_log_medical_plan rdm WHERE rdm.request_log_daily_monitoring_id = request_log_daily_monitorings.id AND type = 1 LIMIT 1) as medical_plan'),
|
||||
DB::raw('(SELECT plan FROM request_log_medical_plan rdm WHERE rdm.request_log_daily_monitoring_id = request_log_daily_monitorings.id AND type = 2 LIMIT 1) as non_medical_plan'),
|
||||
'request_log_daily_monitorings.*'
|
||||
)
|
||||
->whereNull('request_logs.deleted_at') // Use whereNull() for checking NULL
|
||||
->when($request->search, function ($q, $search) {
|
||||
$q->where(function ($subQ) use ($search) {
|
||||
$subQ->where('members.member_id', 'LIKE', "%{$search}%");
|
||||
$subQ->orWhere('members.name', 'LIKE', "%{$search}%");
|
||||
});
|
||||
})
|
||||
->when($startDate, function ($q) use ($startDate) {
|
||||
$q->where('request_log_daily_monitorings.submission_date', '>=', $startDate);
|
||||
})
|
||||
->when($endDate, function ($q) use ($endDate) {
|
||||
$q->where('request_log_daily_monitorings.submission_date', '<=', Carbon::parse($endDate)->addDay());
|
||||
})
|
||||
->orderBy('request_logs.created_at', 'desc')
|
||||
->paginate();
|
||||
return Helper::paginateResources(DailyMonitoringResource::collection($memberList));
|
||||
}
|
||||
|
||||
@@ -125,29 +145,34 @@ class DailyMonitoringController extends Controller
|
||||
{
|
||||
|
||||
$detail = RequestDailyMonitoring::where('id', $id)
|
||||
->orderBy("created_at", "desc")
|
||||
->first();
|
||||
->orderBy("created_at", "desc")
|
||||
->first();
|
||||
|
||||
if ($detail) {
|
||||
// Ubah menjadi array agar bisa dimodifikasi
|
||||
$detailArray = $detail->toArray();
|
||||
|
||||
// Ubah nama key dari request_log_id menjadi log_id
|
||||
$detailArray['log_code'] = $detailArray['request_log_id'];
|
||||
unset($detailArray['request_log_id']);
|
||||
} else {
|
||||
$detailArray = null;
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'error' => false,
|
||||
'message' => "success",
|
||||
'data' => $detail,
|
||||
],200);
|
||||
'data' => $detailArray,
|
||||
], 200);
|
||||
|
||||
}
|
||||
|
||||
public function UpdateDetailMonitoringbyID(Request $request)
|
||||
{
|
||||
// validation rule
|
||||
$validator = Validator::make($request->all(),[
|
||||
'subject' => 'required',
|
||||
'submission_date' => 'required',
|
||||
'body_temperature' => 'required',
|
||||
'sistole' => 'required',
|
||||
'diastole' => 'required',
|
||||
'respiration_rate' => 'required',
|
||||
'analysis' => 'required',
|
||||
'medical_plan' => 'required',
|
||||
'log_code' => 'required',
|
||||
'reason' => 'required',
|
||||
'non_medikamentosa_plan' => 'required',
|
||||
],$this->messages());
|
||||
|
||||
// validation error
|
||||
@@ -161,6 +186,7 @@ class DailyMonitoringController extends Controller
|
||||
// insert claim daily monitoring
|
||||
$db_response = RequestDailyMonitoring::where('id', $request->id)
|
||||
->update([
|
||||
'request_log_id' => $request->log_code,
|
||||
'submission_date' => $request->submission_date,
|
||||
'subject' => $request->subject,
|
||||
'object' => $request->objective,
|
||||
@@ -172,6 +198,13 @@ class DailyMonitoringController extends Controller
|
||||
'lab_date' => $request->lab_date,
|
||||
'provider' => $request->provider,
|
||||
'examination' => $request->examination,
|
||||
'doctor_1' => $request->doctor_1,
|
||||
'doctor_2' => $request->doctor_2,
|
||||
'temp_diagnosis' => $request->temp_diagnosis,
|
||||
'final_diagnosis' => $request->final_diagnosis,
|
||||
'approval_pendamping' => $request->approval_pendamping,
|
||||
'description' => $request->keterangan,
|
||||
'note' => $request->catatan,
|
||||
'reason' => $request->reason,
|
||||
'created_by' => auth()->user()->id,
|
||||
]);
|
||||
@@ -620,6 +653,181 @@ class DailyMonitoringController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function AddListRequestLog(Request $request)
|
||||
{
|
||||
// validation rule
|
||||
$validator = Validator::make($request->all(),[
|
||||
'log_code' => 'required|exists:request_logs,id',
|
||||
'subject' => 'required',
|
||||
'submission_date' => 'required',
|
||||
'body_temperature' => 'required',
|
||||
'sistole' => 'required',
|
||||
'diastole' => 'required',
|
||||
'respiration_rate' => 'required',
|
||||
'analysis' => 'required',
|
||||
'medical_plan' => 'required',
|
||||
'non_medikamentosa_plan' => 'required',
|
||||
],$this->messages());
|
||||
|
||||
// validation error
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'error' => true,
|
||||
'message' => $validator->getMessageBag()
|
||||
],400);
|
||||
}
|
||||
|
||||
// get claim request
|
||||
$request_log = DB::table('request_logs')
|
||||
->select('id')
|
||||
->where('id', $request->log_code)
|
||||
->first();
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
// insert claim daily monitoring
|
||||
$db_response = RequestDailyMonitoring::create([
|
||||
'request_log_id' => $request->log_code,
|
||||
'submission_date' => $request->submission_date,
|
||||
'doctor_1' => $request->doctor_1,
|
||||
'doctor_2' => $request->doctor_2,
|
||||
'temp_diagnosis' => $request->temp_diagnosis,
|
||||
'final_diagnosis' => $request->final_diagnosis,
|
||||
'approval_pendamping' => $request->approval_pendamping,
|
||||
'description' => $request->keterangan,
|
||||
'note' => $request->catatan,
|
||||
'subject' => $request->subject,
|
||||
'object' => $request->objective,
|
||||
'sistole' => $request->sistole,
|
||||
'diastole' => $request->diastole,
|
||||
'body_temperature' => $request->body_temperature,
|
||||
'respiration_rate' => $request->respiration_rate,
|
||||
'analysis' => $request->analysis,
|
||||
'lab_date' => $request->lab_date,
|
||||
'provider' => $request->provider,
|
||||
'examination' => $request->examination,
|
||||
'created_by' => auth()->user()->id,
|
||||
]);
|
||||
|
||||
|
||||
// cek medical plan
|
||||
$num_medical_plan = 0;
|
||||
foreach ($request->medical_plan as $row) {
|
||||
if ($row['medical_plan_str']) {
|
||||
$num_medical_plan++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($num_medical_plan == 0) {
|
||||
DB::rollBack();
|
||||
return response()->json([
|
||||
'error' => true,
|
||||
'message' => [
|
||||
'medical_plan' => ['medical plan harus diisi']
|
||||
],
|
||||
'data' => []
|
||||
],400);
|
||||
}
|
||||
|
||||
// insert medical plan
|
||||
foreach ($request->medical_plan as $row) {
|
||||
DB::table('request_log_medical_plan')->insert([
|
||||
'request_log_daily_monitoring_id' => $db_response->id,
|
||||
'plan' => $row['medical_plan_str'],
|
||||
'type' => 1,
|
||||
'created_at' => date('Y-m-d'),
|
||||
]);
|
||||
}
|
||||
|
||||
// insert non medical plan
|
||||
foreach ($request->non_medikamentosa_plan as $row) {
|
||||
DB::table('request_log_medical_plan')->insert([
|
||||
'request_log_daily_monitoring_id' => $db_response->id,
|
||||
'plan' => $row['non_medikamentosa_plan_str'],
|
||||
'type' => 2,
|
||||
'created_at' => date('Y-m-d'),
|
||||
]);
|
||||
}
|
||||
|
||||
// insert file result
|
||||
if ($request->confirmation_medical_leter){
|
||||
foreach ($request->confirmation_medical_leter as $file) {
|
||||
$name = 'labresult-' . uniqid();
|
||||
$extension= $file->getClientOriginalExtension();
|
||||
$fileName = $name . '.' . $extension;
|
||||
$orignalName = $file->getClientOriginalName();
|
||||
$path = $file->storeAs($this->path_for_store, $fileName);
|
||||
File::create([
|
||||
'fileable_type' => 'App\Models\LaboratoriumResult',
|
||||
'fileable_id' => $db_response->id,
|
||||
'type' => 'confirmation-medical-letter',
|
||||
'name' => $name,
|
||||
'original_name' => $orignalName,
|
||||
'extension' => $extension,
|
||||
'path' => $path,
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
if ($request->medical_action_letter){
|
||||
foreach ($request->medical_action_letter as $file) {
|
||||
$name = 'labresult-' . uniqid();
|
||||
$extension= $file->getClientOriginalExtension();
|
||||
$fileName = $name . '.' . $extension;
|
||||
$orignalName = $file->getClientOriginalName();
|
||||
$path = $file->storeAs($this->path_for_store, $fileName);
|
||||
File::create([
|
||||
'fileable_type' => 'App\Models\LaboratoriumResult',
|
||||
'fileable_id' => $db_response->id,
|
||||
'type' => 'medical-action-letter',
|
||||
'name' => $name,
|
||||
'original_name' => $orignalName,
|
||||
'extension' => $extension,
|
||||
'path' => $path,
|
||||
]);
|
||||
|
||||
// $file->storeAs($this->path_for_store, $fileName);
|
||||
}
|
||||
}
|
||||
if ($request->result){
|
||||
foreach ($request->result as $file) {
|
||||
$name = 'labresult-' . uniqid();
|
||||
$extension= $file->getClientOriginalExtension();
|
||||
$orignalName = $file->getClientOriginalName();
|
||||
$fileName = $name . '.' . $extension;
|
||||
$path = $file->storeAs($this->path_for_store, $fileName);
|
||||
File::create([
|
||||
'fileable_type' => 'App\Models\LaboratoriumResult',
|
||||
'fileable_id' => $db_response->id,
|
||||
'type' => 'laboratorium-result',
|
||||
'name' => $name,
|
||||
'original_name' => $orignalName,
|
||||
'extension' => $extension,
|
||||
'path' => $path,
|
||||
]);
|
||||
|
||||
// $file->storeAs($this->path_for_store, $fileName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DB::commit();
|
||||
|
||||
return response()->json([
|
||||
'error' => false,
|
||||
'message' => "success",
|
||||
'data' => []
|
||||
],200);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
DB::rollBack();
|
||||
return response()->json([
|
||||
'error' => true,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => []
|
||||
],500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Listing Daily Monitoring
|
||||
*/
|
||||
|
||||
@@ -165,6 +165,10 @@ class DrugController extends Controller
|
||||
[
|
||||
'name' => $row['name'],
|
||||
'code' => $row['code'],
|
||||
'id_setara' => $row['id_setara'],
|
||||
'code_setara' => $row['code_setara'],
|
||||
'nama_setara' => $row['nama_setara'],
|
||||
'multiply_jual' => $row['multiply_jual'],
|
||||
'generic_name' => $row['generic_name'],
|
||||
'description' => $row['description'],
|
||||
'mims_class' => $row['mims_class'],
|
||||
|
||||
@@ -150,7 +150,9 @@ class RequestLogController extends Controller
|
||||
// status: 'approved',
|
||||
status: 'requested', // di nonaktifkan dulu auto approved
|
||||
organization_id: $request->organization_id,
|
||||
source: $request->source
|
||||
source: $request->source,
|
||||
specialities_id: $request->specialities_id,
|
||||
dppj: $request->dppj
|
||||
);
|
||||
|
||||
DB::commit();
|
||||
@@ -172,7 +174,9 @@ class RequestLogController extends Controller
|
||||
submissionDate: $request->submission_date,
|
||||
status: 'requested',
|
||||
organization_id: $request->organization_id,
|
||||
source: $request->source
|
||||
source: $request->source,
|
||||
specialities_id: $request->specialities_id,
|
||||
dppj: $request->dppj
|
||||
);
|
||||
|
||||
DB::commit();
|
||||
@@ -237,6 +241,31 @@ class RequestLogController extends Controller
|
||||
return Helper::responseJson(data: $manipulatedIcds);
|
||||
}
|
||||
|
||||
public function codeLog(Request $request)
|
||||
{
|
||||
$codeLogs = RequestLog::with(['member'])
|
||||
->when($request->search, function ($q) use ($request) {
|
||||
$q->where('code', 'LIKE', "%{$request->search}%")
|
||||
->orWhereHas('member', function ($subQuery) use ($request) {
|
||||
$subQuery->where('name', 'LIKE', "%{$request->search}%");
|
||||
});
|
||||
})
|
||||
->whereHas('member', function ($subQuery) {
|
||||
$subQuery->whereNull('deleted_at');
|
||||
})
|
||||
->get();
|
||||
|
||||
$manipulatedIcds = $codeLogs->map(function ($codeLog) {
|
||||
return [
|
||||
'value' => $codeLog->id,
|
||||
'label' => $codeLog->code . ' - ' . ($codeLog->member->name ?? 'Unknown'),
|
||||
];
|
||||
});
|
||||
|
||||
return Helper::responseJson(data: $manipulatedIcds);
|
||||
}
|
||||
|
||||
|
||||
public function hospitals(){
|
||||
$organizations = Organization::query()
|
||||
->where([
|
||||
@@ -490,11 +519,11 @@ class RequestLogController extends Controller
|
||||
if (!empty($request->reason)) {
|
||||
$requestLog->reason_final = $request->reason;
|
||||
}
|
||||
|
||||
|
||||
if (!empty($request->type_of_member)){
|
||||
$requestLog->type_of_member = $request->type_of_member;
|
||||
}
|
||||
|
||||
|
||||
$requestLog->final_log = 1;
|
||||
$requestLog->approved_final_log_by = auth()->user()->id;
|
||||
$requestLog->approved_final_log_at = Carbon::now();
|
||||
|
||||
Reference in New Issue
Block a user