Forráskód Böngészése

Patient > Action Items feature

Vijayakrishnan Krishnan 4 éve
szülő
commit
0d235c79c9

+ 7 - 0
app/Http/Controllers/PatientController.php

@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
 use App\Models\CareMonth;
 use App\Models\Client;
 use App\Models\ClientInfoLine;
+use App\Models\Facility;
 use App\Models\Pro;
 use App\Models\SectionTemplate;
 use Illuminate\Http\Request;
@@ -17,6 +18,12 @@ class PatientController extends Controller
         return view('app.patient.dashboard', compact('patient'));
     }
 
+    public function actionItems(Request $request, Client $patient )
+    {
+        $facilities = Facility::where('is_active', true)->get();
+        return view('app.patient.action-items', compact('patient', 'facilities'));
+    }
+
     public function intake(Request $request, Client $patient )
     {
         return view('app.patient.intake', compact('patient'));

+ 4 - 0
app/Models/ActionItem.php

@@ -8,6 +8,10 @@ class ActionItem extends Model
 {
     protected $table = 'action_item';
 
+    public function facility()
+    {
+        return $this->belongsTo(Facility::class, 'to_facility_id', 'id');
+    }
 
     public function client()
     {

+ 8 - 4
app/Models/Client.php

@@ -14,11 +14,11 @@ class Client extends Model
         return $this->name_last . ', '. $this->name_first;
     }
 
-    public function mcp(){
+    public function mcp() {
         return $this->hasOne(Pro::class, 'id', 'mcp_pro_id');
     }
 
-    public function cm(){
+    public function cm() {
         return $this->hasOne(Pro::class, 'id', 'cm_pro_id');
     }
 
@@ -26,12 +26,16 @@ class Client extends Model
         return Pro::where('in_meeting_with_client_id', $this->id)->get();
     }
 
-    public function notes(){
+    public function notes() {
         return $this->hasMany(Note::class, 'client_id', 'id')->orderBy('created_at', 'desc');
     }
 
-    public function duplicateOf(){
+    public function duplicateOf() {
         return $this->hasOne(Client::class, 'id', 'duplicate_of_client_id');
     }
 
+    public function actionItems () {
+        return $this->hasMany(ActionItem::class, 'client_id', 'id')->orderBy('created_at', 'desc');
+    }
+
 }

+ 3 - 1
app/Models/Facility.php

@@ -6,5 +6,7 @@ namespace App\Models;
 
 class Facility extends Model
 {
-    //
+
+    protected $table = 'facility';
+
 }

+ 178 - 0
resources/views/app/patient/action-items.blade.php

@@ -0,0 +1,178 @@
+@extends ('layouts.patient')
+<?php
+/** @var \App\Models\Client $patient */
+?>
+@section('inner-content')
+    <div class="">
+        <div class="d-flex align-items-center pb-2">
+            <h4 class="font-weight-bold m-0">Action Items</h4>
+            <span class="mx-2 text-secondary">|</span>
+            <div moe>
+                <a start show class="py-0 font-weight-normal">Add</a>
+                <form url="/api/actionItem/create">
+                    <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                    <input type="hidden" name="prescriberProUid" value="{{ $pro->uid }}">
+                    <div class="mb-2">
+                        <label for="" class="control-label text-sm text-secondary mb-1">Facility</label>
+                        <select name="toFacilityUid"
+                                class="form-control form-control-sm">
+                            <option value="">-- Facility --</option>
+                            @foreach ($facilities as $facility)
+                                <option value="{{$facility->uid}}">{{$facility->name}}</option>
+                            @endforeach
+                        </select>
+                    </div>
+                    <div class="mb-2">
+                        <label for="" class="control-label text-sm text-secondary mb-1">Category *</label>
+                        <select name="category"
+                                class="form-control form-control-sm" required>
+                            <option value="">-- Category --</option>
+                            <option value="DRUG">Drug</option>
+                            <option value="DIAGNOSTIC">Diagnostic</option>
+                            <option value="APPOINTMENT">Appointment</option>
+                            <option value="EXERCISE">Exercise</option>
+                            <option value="DIETETITC">Dietetitc</option>
+                            <option value="EQUIPMENT">Equipment</option>
+                            <option value="GO_TO_HOSPITAL">Go to hospital</option>
+                            <option value="OTHER">Other</option>
+                        </select>
+                    </div>
+                    <div class="mb-2">
+                        <input type="text" class="form-control form-control-sm" name="contentText" value="" placeholder="Title *" required>
+                    </div>
+                    <div class="mb-2">
+                        <input type="text" class="form-control form-control-sm" name="contentDetail" value="" placeholder="Details">
+                    </div>
+                    <div class="d-flex align-items-center">
+                        <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+                        <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                    </div>
+                </form>
+            </div>
+        </div>
+        <table class="table table-striped table-sm table-bordered mb-0" style="table-layout: fixed">
+            <thead>
+            <tr>
+                <th class="px-2 text-secondary border-bottom-0">Created</th>
+                <th class="px-2 text-secondary border-bottom-0">Category</th>
+                <th class="px-2 text-secondary border-bottom-0">Facility</th>
+                <th class="px-2 text-secondary border-bottom-0 w-25">Action</th>
+                <th class="px-2 text-secondary border-bottom-0">Status</th>
+                <th class="px-2 text-secondary border-bottom-0">&nbsp;</th>
+            </tr>
+            </thead>
+            <tbody>
+            @foreach($patient->actionItems as $item)
+                <tr>
+                    <td class="px-2">{{friendly_date_time($item->created_at, false)}}</td>
+                    <td class="px-2">{{ucwords(str_replace("_", " ", strtolower($item->action_item_category)))}}</td>
+                    <td class="px-2">
+                        {{$item->facility ? $item->facility->name : ''}}
+                        <span moe>
+                            <a start show class="on-hover-opaque"><i class="fa fa-edit"></i></a>
+                            <form url="/api/actionItem/updateToFacility">
+                                <input type="hidden" name="uid" value="{{ $item->uid }}">
+                                <div class="mb-2">
+                                    <label for="" class="control-label text-sm text-secondary mb-1">Facility *</label>
+                                    <select name="toFacilityUid" class="form-control form-control-sm" required>
+                                        <option value="">-- Facility --</option>
+                                        @foreach ($facilities as $facility)
+                                            <option {{ $item->to_facility_id === $facility->id ? 'selected' : '' }} value="{{$facility->uid}}">{{$facility->name}}</option>
+                                        @endforeach
+                                    </select>
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                    </td>
+                    <td class="px-2">
+                        {{$item->content_text}}
+                        <span moe>
+                            <a start show class="on-hover-opaque"><i class="fa fa-edit"></i></a>
+                            <form url="/api/actionItem/updateContent">
+                                <input type="hidden" name="uid" value="{{ $item->uid }}">
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="contentText" value="{{ $item->content_text }}" placeholder="Title *" required>
+                                </div>
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="contentDetail" value="{{ $item->content_detail }}" placeholder="Details">
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                        <div class="text-sm text-secondary">{{$item->content_detail}}</div>
+                    </td>
+                    <td class="px-2">
+                        {{$item->status_category}}
+                        <span moe>
+                            <a start show class="on-hover-opaque"><i class="fa fa-edit"></i></a>
+                            <form url="/api/actionItem/updateStatus">
+                                <input type="hidden" name="uid" value="{{ $item->uid }}">
+                                <div class="mb-2">
+                                    <label for="" class="control-label text-sm text-secondary mb-1">Status *</label>
+                                    <select name="statusCategory" class="form-control form-control-sm" required>
+                                        <option {{ $item->status_category === 'OPEN' ? 'selected' : '' }} value="OPEN">Open</option>
+                                        <option {{ $item->status_category === 'CLOSED' ? 'selected' : '' }} value="CLOSED">Closed</option>
+                                    </select>
+                                </div>
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="statusMemo" value="" placeholder="Memo">
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                    </td>
+                    <td class="px-2 text-center">
+                        <div class="d-flex align-items-center justify-content-start">
+                        @if($item->is_signed_by_prescriber)
+                            <span class="text-secondary">
+                                <i class="fa fa-check"></i>
+                                Signed
+                            </span>
+                            <span class="mx-2 text-secondary">|</span>
+                        @else
+                            @if($pro->id === $item->prescriber_pro_id)
+                                <span moe relative>
+                                    <a start show>Sign</a>
+                                    <form url="/api/actionItem/signAsPrescriber" right>
+                                        <input type="hidden" name="uid" value="{{ $item->uid }}">
+                                        <p class="small min-width-200px text-left">Sign this action items as the prescriber?</p>
+                                        <div class="d-flex align-items-center">
+                                            <button class="btn btn-sm btn-success mr-2" submit>Yes</button>
+                                            <button class="btn btn-sm btn-default mr-2 border" cancel>No</button>
+                                        </div>
+                                    </form>
+                                </span>
+                                <span class="mx-2 text-secondary">|</span>
+                            @endif
+                        @endif
+                        <span moe relative>
+                            <a start show>eFax</a>
+                            <form url="/api/actionItem/efax" right>
+                                <input type="hidden" name="uid" value="{{ $item->uid }}">
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="toFaxNumber" value="" placeholder="To Number *" required>
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                        </div>
+                    </td>
+                </tr>
+            @endforeach
+            </tbody>
+        </table>
+    </div>
+@endsection

+ 3 - 0
resources/views/layouts/patient.blade.php

@@ -17,6 +17,9 @@
                         <li class="nav-item">
                             <a class="nav-link" href="{{ route('patients.view.notes', ['patient' => $patient]) }}">Notes</a>
                         </li>
+                        <li class="nav-item">
+                            <a class="nav-link" href="{{ route('patients.view.action-items', ['patient' => $patient]) }}">Action Items</a>
+                        </li>
                         <li class="nav-item">
                             <a class="nav-link" href="{{ route('patients.view.allergies', ['patient' => $patient]) }}">Allergies</a>
                         </li>

+ 1 - 0
routes/web.php

@@ -79,6 +79,7 @@ Route::middleware('pro.auth')->group(function () {
         Route::get('history', 'PatientController@history')->name('history');
         Route::get('immunizations', 'PatientController@immunizations')->name('immunizations');
         Route::get('allergies', 'PatientController@allergies')->name('allergies');
+        Route::get('action-items', 'PatientController@actionItems')->name('action-items');
         Route::get('notes', 'PatientController@notes')->name('notes');
         Route::name('notes.view.')->prefix('notes/view/{note}')->group(function () {
             Route::get('', 'NoteController@dashboard')->name('dashboard');