deploy commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Requests\V1\DoctorUpdateSubmissionRequest;
|
||||
use App\Http\Resources\V1\DoctorHistorySubmissionResource;
|
||||
use App\Http\Resources\V1\SubmissionResource;
|
||||
use App\Models\Submission;
|
||||
use App\Http\Resources\V1\SubmissionListResource;
|
||||
use App\Http\Resources\V1\SubmissionDetailResource;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DoctorSubmissionController extends Controller
|
||||
{
|
||||
public function update(DoctorUpdateSubmissionRequest $request, Submission $submission)
|
||||
{
|
||||
$this->authorize('update', $submission);
|
||||
|
||||
$valid = $request->validated();
|
||||
|
||||
$data = [
|
||||
'diagnosis' => $valid['diagnosis'],
|
||||
'doctor_note' => $valid['doctorNote'],
|
||||
'doctor_id' => $request->user()->id,
|
||||
'status' => 'verified',
|
||||
'verified_at' => now(),
|
||||
];
|
||||
|
||||
|
||||
$submission->update($data);
|
||||
|
||||
return new SubmissionDetailResource(
|
||||
$submission->fresh()->load('patient')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public function pending(Request $request)
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
$request->merge(['only_percentage' => true]);
|
||||
|
||||
$subs = Submission::pending()
|
||||
->where('doctor_id', $user->id)
|
||||
->whereHas('patient', function ($q) use ($request) {
|
||||
if ($search = $request->query('search')) {
|
||||
$q->where('name', 'like', "%{$search}%");
|
||||
}
|
||||
})
|
||||
->with('patient:id,name')
|
||||
->orderBy('submitted_at','desc')
|
||||
->get();
|
||||
|
||||
return SubmissionListResource::collection($subs);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function history(Request $request)
|
||||
{
|
||||
$this->authorize('viewAny', Submission::class);
|
||||
|
||||
$doctorId = $request->user()->id;
|
||||
$limit = (int) $request->query('limit', 0);
|
||||
|
||||
$query = Submission::where('status', 'verified')
|
||||
->where('doctor_id', $doctorId)
|
||||
->whereHas('patient', function ($q) use ($request) {
|
||||
if ($search = $request->query('search')) {
|
||||
$q->where('name', 'like', "%{$search}%");
|
||||
}
|
||||
})
|
||||
->with('patient:id,name')
|
||||
->orderBy('verified_at', 'desc');
|
||||
|
||||
if ($limit > 0) {
|
||||
$subs = $query->limit($limit)->get();
|
||||
} else {
|
||||
$subs = $query->get();
|
||||
}
|
||||
|
||||
return DoctorHistorySubmissionResource::collection($subs);
|
||||
}
|
||||
|
||||
public function detail($id)
|
||||
{
|
||||
$sub = Submission::with('patient')
|
||||
->findOrFail($id);
|
||||
|
||||
return new SubmissionDetailResource($sub);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user