Просмотр исходного кода

Merge branch 'dev' into dev-vj

Vijayakrishnan 3 лет назад
Родитель
Сommit
af6c4a2a69
32 измененных файлов с 1622 добавлено и 612 удалено
  1. 2 0
      app/Http/Controllers/HomeController.php
  2. 12 0
      app/Http/Controllers/PatientController.php
  3. 12 0
      app/Http/Controllers/PracticeManagementController.php
  4. 27 0
      app/Http/Controllers/SupervisingPhysicianController.php
  5. 23 0
      app/Models/ClientReviewRequest.php
  6. 4 0
      app/Models/CompanyPro.php
  7. 15 0
      app/Models/Note.php
  8. 20 2
      app/Models/Pro.php
  9. 4 8
      resources/views/app/admin/patients-table-extended.blade.php
  10. 12 0
      resources/views/app/dashboard-admin.blade.php
  11. 12 0
      resources/views/app/dashboard-mcp.blade.php
  12. 85 0
      resources/views/app/notes-pending-physician-supervisor-stamping.blade.php
  13. 530 500
      resources/views/app/patient/dashboard.blade.php
  14. 23 15
      resources/views/app/patient/handouts-list.blade.php
  15. 5 1
      resources/views/app/patient/note/dashboard.blade.php
  16. 79 0
      resources/views/app/patient/note/partials/flag-note-by-supervisor.blade.php
  17. 74 76
      resources/views/app/patient/partials/rm-setup.blade.php
  18. 78 0
      resources/views/app/patient/review-requests/list.blade.php
  19. 16 0
      resources/views/app/patient/review-requests/partials/activate.blade.php
  20. 28 0
      resources/views/app/patient/review-requests/partials/create.blade.php
  21. 16 0
      resources/views/app/patient/review-requests/partials/deactivate.blade.php
  22. 31 0
      resources/views/app/patient/review-requests/partials/edit.blade.php
  23. 22 0
      resources/views/app/patient/review-requests/partials/physician-update-status.blade.php
  24. 20 0
      resources/views/app/patient/review-requests/partials/update-status.blade.php
  25. 1 1
      resources/views/app/practice-management/all-notes.blade.php
  26. 1 1
      resources/views/app/practice-management/handouts.blade.php
  27. 302 0
      resources/views/app/ps/dashboard.blade.php
  28. 62 0
      resources/views/app/ps/dashboard/client-charts-pending-my-review.blade.php
  29. 74 0
      resources/views/app/ps/review-requests/list.blade.php
  30. 4 1
      resources/views/layouts/patient.blade.php
  31. 15 7
      resources/views/layouts/template.blade.php
  32. 13 0
      routes/web.php

+ 2 - 0
app/Http/Controllers/HomeController.php

@@ -1395,6 +1395,8 @@ WHERE cl.shadow_pro_id IS NULL
             return $this->dashboard_MCP($request);
         }elseif($pro->is_hcp){
             return $this->dashboard_HCP($request); //TODO for HCP
+        }elseif($pro->is_considered_for_supervising_physician){
+            return redirect()->route('ps.dashboard');
         }else{
             return $this->dashboard_DNA($request);
         }

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

@@ -31,6 +31,7 @@ use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\File;
 use App\Models\Measurement;
+use App\Models\ClientReviewRequest;
 
 use Illuminate\Support\Facades\Http;
 use PDF;
@@ -293,6 +294,17 @@ class PatientController extends Controller
         return view('app.patient.outgoing-sms-log', compact('patient'));
     }
 
+    public function reviewRequests(Request $request, Client $patient){
+        $pro = $this->performer->pro;
+
+        $reviewRequests = ClientReviewRequest::where('client_id', $patient->id);
+        if($pro->pro_type !== 'ADMIN'){
+            $reviewRequests = $reviewRequests->where('pro_id', $pro->id);
+        }
+        $reviewRequests = $reviewRequests->orderBy('created_at', 'DESC')->paginate(50);
+        return view('app.patient.review-requests.list', compact('patient', 'reviewRequests'));
+    }
+
     public function smsNumbers(Request $request, Client $patient )
     {
         return view('app.patient.sms-numbers', compact('patient'));

+ 12 - 0
app/Http/Controllers/PracticeManagementController.php

@@ -3687,6 +3687,18 @@ ORDER BY c.name_last, c.name_first
 
     }
 
+    public function notesPendingPhysicianSupervisorStamping(Request $request){
+        $hideTitle = $request->get('hideTitle');
+        $pro = $this->performer->pro;
+        //All companyProIds that I am supervisor
+        $flaggedNotes = Note::where('is_stamped_by_supervising_physician', false)->where('is_flagged_for_supervising_physician_review', true)->whereHas('hcpCompanyPro', function($qry) use($pro){
+            return $qry->whereHas('supervisingPhysicianCompanyPro', function($qr) use($pro){
+                return $qr->where('pro_id', $pro->id);
+            });
+        })->get();
+        return view('app.notes-pending-physician-supervisor-stamping', compact('flaggedNotes', 'hideTitle'));
+    }
+
     public function notesResolutionCenter(Request $request) {
 
         $columns = "(c.name_first || ' ' || c.name_last) as client_name,

+ 27 - 0
app/Http/Controllers/SupervisingPhysicianController.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Http\Controllers;
+
+
+use Illuminate\Http\Request;
+use App\Models\ClientReviewRequest;
+class SupervisingPhysicianController extends Controller
+{
+
+    public function dashboard(Request $request){
+        $performer = $this->performer();
+        $pro = $performer->pro;
+        $performerProID = $performer->pro->id;
+
+        $milliseconds = strtotime(date('Y-m-d')) . '000'; //required by the calendar
+        return view('app.ps.dashboard', compact( 'milliseconds'));
+    }
+
+    public function clientReviewRequests(Request $request){
+        $hideTitle = $request->get('hideTitle');
+        $performer = $this->performer();
+        $pro = $performer->pro;
+        $reviewRequests = ClientReviewRequest::where('pro_id', $pro->id)->where('is_active', true)->orderBy('created_at', 'DESC')->paginate(50);
+        return view('app.ps.review-requests.list', compact('reviewRequests', 'hideTitle'));
+    }
+}

+ 23 - 0
app/Models/ClientReviewRequest.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class ClientReviewRequest extends Model
+{
+    protected $table = 'client_review_request';
+
+    public function pro() {
+        return $this->hasOne(Pro::class, 'id', 'pro_id');
+    }
+
+    public function client() {
+        return $this->hasOne(Client::class, 'id', 'client_id');
+    }
+
+    public function createdBySession() {
+        return $this->hasOne(AppSession::class, 'id', 'created_by_session_id');
+    }
+
+}

+ 4 - 0
app/Models/CompanyPro.php

@@ -33,5 +33,9 @@ class CompanyPro extends Model
     {
         return $this->company->name . ' / ' . $this->pro->displayName();
     }
+    public function supervisingPhysicianCompanyPro()
+    {
+        return $this->hasOne(CompanyPro::class, 'id', 'supervising_physician_company_pro_id');
+    }
 
 }

+ 15 - 0
app/Models/Note.php

@@ -168,6 +168,14 @@ class Note extends Model
         return $this->hasOne(CompanyLocation::class, 'id', 'hcp_company_location_id');
     }
 
+    public function flaggedForSupervisingPhysicianReviewBySession(){
+        return $this->hasOne(AppSession::class, 'id', 'flagged_for_supervising_physician_review_by_session_id');
+    }
+    public function stampedBySupervisingPhysicianBySession(){
+        return $this->hasOne(AppSession::class, 'id', 'stamped_by_by_supervising_physician_by_session_id');
+    }
+    
+
     public function currentNotePickupForProcessing() {
         return $this->hasOne(NotePickupForProcessing::class, 'id', 'current_note_pickup_for_processing_id');
     }
@@ -212,4 +220,11 @@ class Note extends Model
             ->where('status', '!=', 'CANCELLED')
             ->count();
     }
+
+    public function isProPhysicianSupervisor($proID){
+        $companyProIds = CompanyPro::where('pro_id', $proID)->pluck('id')->toArray();
+        $noteCompanyProId = $this->hcpCompanyPro->supervising_physician_company_pro_id;
+        if(!$noteCompanyProId) return false;
+        return in_array($noteCompanyProId, $companyProIds);
+    }
 }

+ 20 - 2
app/Models/Pro.php

@@ -841,7 +841,8 @@ WHERE
                     ->orWhereRaw('id IN (SELECT client_id FROM appointment WHERE status NOT IN (\'CANCELLED\') AND pro_id = ?)', [$proID])
                     ->orWhereRaw('id IN (SELECT mcp_pro_id FROM client_program WHERE client_id = client.id AND is_active = TRUE)')
                     ->orWhereRaw('id IN (SELECT manager_pro_id FROM client_program WHERE client_id = client.id AND is_active = TRUE)')
-                    ->orWhereRaw('id IN (SELECT client_id FROM note WHERE ally_pro_id = ? AND is_cancelled = FALSE)', [$proID]);
+                    ->orWhereRaw('id IN (SELECT client_id FROM note WHERE ally_pro_id = ? AND is_cancelled = FALSE)', [$proID])
+                    ->orWhereRaw('id IN (SELECT client_id FROM client_review_request WHERE pro_id = ? AND access_start_date <= NOW() AND access_end_date >= NOW())', [$proID]);
             })->count();
         return !!$canAccess;
     }
@@ -1348,7 +1349,24 @@ ORDER BY cm.created_at DESC
         return Bill::where('bill_service_type', 'GENERIC')
             ->where('generic_pro_id', $this->id)
             ->orderBy('created_at', 'DESC')->get();
-    }       
+    }   
+    
+    public function myNotesPendingSupervisorPhysicianStamping(){
+        $pro = $this;
+        return Note::where('is_stamped_by_supervising_physician', false)->where('is_flagged_for_supervising_physician_review', true)->whereHas('hcpCompanyPro', function($qry) use($pro){
+            return $qry->whereHas('supervisingPhysicianCompanyPro', function($qr) use($pro){
+                return $qr->where('pro_id', $pro->id);
+            });
+        })->count();
+    }
 
+    public function activeClientReviewRequests()
+    {
+        return $this->hasMany(ClientReviewRequest::class, 'pro_id')->where('is_active', true);
+    }
 
+    public function currentMonthClientReviewRequest($clientID){
+        return $this->activeClientReviewRequests->where('client_id', $clientID)->where('scoped_month_start_date', date('Y-m-01'))->first();
+
+    }
 }

+ 4 - 8
resources/views/app/admin/patients-table-extended.blade.php

@@ -28,6 +28,7 @@
             @endif
             <th class="border-0">Age</th>
             <th class="border-0">@include('app.practice-management._sort_header', ['route' => route("admin.patients"), 'label' => 'Last Visit', 'key' => 'most_recent_completed_mcp_note_date'])</th>
+            <th class="border-0"></th>
             <th class="border-0">Notes</th>
             <th class="border-0">Next Appt.</th>
             <th class="border-0">@include('app.practice-management._sort_header', ['route' => route("admin.patients"), 'label' => 'BP/Pulse Timestamp', 'key' => 'most_recent_cellular_bp_measurement_at'])</th>
@@ -82,13 +83,7 @@
                 <td>{{$patient->mailing_address_state}}</td>
                 <td class="{{ $patient->mpb_remaining === 0 ? 'deductible-zero' : '' }}">
                     @include('app.patient.coverage_column_renderer', ['patient'=>$patient])
-                    @if(false && $performer->pro->pro_type == 'ADMIN')
-                        @if(@$patient->mpb_remaining)
-                        <small class="d-block text-sm text-muted ml-3">
-                            Deductible: <span class="font-weight-bold">{{ format_number(@$patient->mpb_remaining)}}</span>
-                        </small>
-                        @endif
-                    @endif 
+                   
                 </td>
 		@if($performer->pro->pro_type == 'ADMIN')
 		<td>
@@ -100,8 +95,9 @@
 		@endif
                 <td>
                     {{ friendly_date($patient->most_recent_completed_mcp_note_date) }}
+		</td>
+		<td>
                     @if($patient->lastMcpAppointment)
-                        <br />
                         <small class="text-muted">{{ $patient->lastMcpAppointment->pro->displayName() }}</small>
                     @endif
                 </td>

+ 12 - 0
resources/views/app/dashboard-admin.blade.php

@@ -106,6 +106,18 @@
                                         </a>
                                     </th>
                                 </tr>
+                                <tr>
+                                    <th class="px-2 text-center">{{ $pro->myNotesPendingSupervisorPhysicianStamping() }}</th>
+                                    <th class="pl-2">
+                                        <a href="{{ route('practice-management.notes-pending-physician-supervisor-stamping', ['hideTitle' => true]) }}"
+                                           native target="_blank"
+                                           open-in-stag-popup
+                                           popup-style="tall stag-popup-md"
+                                           title="Notes Pending Physician Supervisor Stamping">
+                                            Notes Pending Physician Supervisor Stamping
+                                        </a>
+                                    </th>
+                                </tr>
 
                                 </tbody>
                             </table>

+ 12 - 0
resources/views/app/dashboard-mcp.blade.php

@@ -267,6 +267,18 @@
                                         </th>
                                     </tr>
                                 @endif
+                                <tr>
+                                    <th class="px-2 text-center">{{ $pro->myNotesPendingSupervisorPhysicianStamping() }}</th>
+                                    <th class="pl-2">
+                                        <a href="{{ route('practice-management.notes-pending-physician-supervisor-stamping', ['hideTitle' => true]) }}"
+                                           native target="_blank"
+                                           open-in-stag-popup
+                                           popup-style="tall stag-popup-md"
+                                           title="Notes Pending Physician Supervisor Stamping">
+                                            Notes Pending Physician Supervisor Stamping
+                                        </a>
+                                    </th>
+                                </tr>
                                 </tbody>
                             </table>
                         </div>

+ 85 - 0
resources/views/app/notes-pending-physician-supervisor-stamping.blade.php

@@ -0,0 +1,85 @@
+@extends ('layouts/template')
+
+@section('content')
+<div class="mcp-theme-1">
+    <div class="card-body">
+
+        <div class="mcp-theme-1">
+
+            <div class="card">
+                @if(!$hideTitle)
+                <div class="card-header px-3 py-2 d-flex align-items-center">
+                    <strong class="text-nowrap">
+                        <i class="fas fa-clipboard"></i>
+                        My Notes Flagged By Supervisor
+                    </strong>
+                </div>
+                @endif
+                <div class="card-body p-0">
+
+                    <table class="table table-sm table-striped p-0 m-0">
+                        <thead class="bg-light">
+                            <tr>
+                                <th class="border-0">Created At</th>
+                                <th class="border-0">Effective Date</th>
+                                <th class="border-0">Patient</th>
+                                <th class="border-0">Ally Pro</th>
+                                <th class="border-0">&nbsp;</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            @foreach($flaggedNotes as $note)
+                            <tr>
+                                <td>{{ friendly_date_time($note->created_at, true) }}</td>
+                                <td>
+                                    <a native href="/patients/view/{{ $note->client->uid }}/notes/view/{{ $note->uid }}">
+                                        {{ friendly_date_time($note->effective_dateest, false) }}
+                                    </a>
+                                </td>
+                                <td>{{ $note->hcpPro ? $note->hcpPro->displayName() : '-' }}</td>
+                                <td>{{ $note->allyPro ? $note->allyPro->displayName() : '-' }}</td>
+                                <td>
+                                    @if($note->isProPhysicianSupervisor($performer->pro->id))
+                                        @if($note->is_stamped_by_supervising_physician)
+                                        <div moe class="ml-2">
+                                            <a href="#" start show class="text-danger"><i class="fas fa-stamp"></i> Undo Stamp</a>
+                                            <form url="/api/note/undoStampAsSupervisingPhysician">
+                                                <input type="hidden" name="uid" value="{{ $note->uid }}">
+                                                <div class="mb-2">
+                                                    <label>Are you sure?</label>
+                                                </div>
+                                                <div class="mt-3">
+                                                    <button submit class="btn btn-sm btn-danger mr-2">Undo Stamp</button>
+                                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                                </div>
+                                            </form>
+                                        </div>
+                                        @else
+                                        <div moe class="">
+                                            <a href="#" start show class="text-success"><i class="fas fa-stamp"></i> Stamp Note</a>
+                                            <form url="/api/note/stampAsSupervisingPhysician">
+                                                <input type="hidden" name="uid" value="{{ $note->uid }}">
+                                                <div class="mb-2">
+                                                    <label>Are you sure?</label>
+                                                    <textarea name="memo" class="form-control"></textarea>
+                                                </div>
+                                                <div class="mt-3">
+                                                    <button submit class="btn btn-sm btn-success mr-2">Stamp Note</button>
+                                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                                </div>
+                                            </form>
+                                        </div>
+                                        @endif
+                                    @endif
+                                </td>
+                            </tr>
+                            @endforeach
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>
+@endsection

+ 530 - 500
resources/views/app/patient/dashboard.blade.php

@@ -1,361 +1,393 @@
 @extends ('layouts.patient')
 
 @section('inner-content')
-    <?php
-    $shortCutsObject = [];
-    foreach ($pro->allShortcuts() as $shortcut) {
-
-        // %replaceables%
-        $shortcut->text = str_replace("%AGE%", $patient->age_in_years, $shortcut->text);
-        $shortcut->text = str_replace("%GENDER%", $patient->sex, $shortcut->text);
-        $shortcut->text = str_replace("%NAME%", $patient->displayName(), $shortcut->text);
-
-        $shortCutsObject[] = [
-            "name" => $shortcut->shortcut,
-            "value" => $shortcut->text
-        ];
-    }
-    ?>
-    <script>window.userShortcuts = <?= json_encode($shortCutsObject); ?>;</script>
-    <link href="/select2/select2.min.css" rel="stylesheet" />
-    <script src="/select2/select2.min.js"></script>
-    <div>
-
-        {{-- CARE PLAN START --}}
-        <?php $infoLines = json_decode($patient->info_lines);?>
-        <?php $infoLines = !$infoLines ? [] : $infoLines; ?>
-        <?php $vitalLabels = ['Ht. (in.)','Wt. (lbs.)','Temp. (F)','Pulse','Resp.','Pulse Ox.','SBP','DBP','Smoking Status', 'BMI']; ?>
-        <?php $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_create($patient->created_at))->invert === 1); ?>
-
-        <?php $nonCoreVisitNotes = $patient->nonCoreVisitNotes; ?>
-        <?php $disallowPointEdits = $nonCoreVisitNotes && count($nonCoreVisitNotes); ?>
-
-	    <div class="row client-single-dashboard">
-            <div class="col-6">
-
-                {{-- rpm summary for current caremonth --}}
-                @if($patient->is_enrolled_in_rm === 'YES')
-                    @if($patient->currentCareMonth())
-                        @include('app/patient/partials/caremonth-summary', ['careMonth' => $patient->currentCareMonth()])
-                    @else
-                        <div class="alert alert-info">No caremonth for this month.</div>
-                    @endif
+<?php
+$shortCutsObject = [];
+foreach ($pro->allShortcuts() as $shortcut) {
+
+    // %replaceables%
+    $shortcut->text = str_replace("%AGE%", $patient->age_in_years, $shortcut->text);
+    $shortcut->text = str_replace("%GENDER%", $patient->sex, $shortcut->text);
+    $shortcut->text = str_replace("%NAME%", $patient->displayName(), $shortcut->text);
+
+    $shortCutsObject[] = [
+        "name" => $shortcut->shortcut,
+        "value" => $shortcut->text
+    ];
+}
+?>
+<script>
+    window.userShortcuts = <?= json_encode($shortCutsObject); ?>;
+</script>
+<link href="/select2/select2.min.css" rel="stylesheet" />
+<script src="/select2/select2.min.js"></script>
+<div>
+
+    {{-- CARE PLAN START --}}
+    <?php $infoLines = json_decode($patient->info_lines); ?>
+    <?php $infoLines = !$infoLines ? [] : $infoLines; ?>
+    <?php $vitalLabels = ['Ht. (in.)', 'Wt. (lbs.)', 'Temp. (F)', 'Pulse', 'Resp.', 'Pulse Ox.', 'SBP', 'DBP', 'Smoking Status', 'BMI']; ?>
+    <?php $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_create($patient->created_at))->invert === 1); ?>
+
+    <?php $nonCoreVisitNotes = $patient->nonCoreVisitNotes; ?>
+    <?php $disallowPointEdits = $nonCoreVisitNotes && count($nonCoreVisitNotes); ?>
+
+    <div class="row client-single-dashboard">
+        <div class="col-6">
+            <?php
+            $myCurrentClientReviewRequest = $performer->pro->currentMonthClientReviewRequest($patient->id);
+            ?>
+            @if($myCurrentClientReviewRequest)
+            <div class="pt-2 mt-2">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Client Review Request - {{ friendly_date(date('Y-m-01')) }}</h6>
+                </div>
+                @if($myCurrentClientReviewRequest->status === 'PENDING')
+                <div class="alert alert-danger">
+                    <div class="d-flex align-items-center justify-content-between">
+                        <p class="mb-0">Please review this chart</p>
+                        <div>
+                            @include('app.patient.review-requests.partials.physician-update-status', ['record' =>$myCurrentClientReviewRequest ])
+                        </div>
+                    </div>
+                </div>
                 @endif
+                @if($myCurrentClientReviewRequest->status === 'DONE')
+                <div class="alert alert-success">
+                    <div class="d-flex align-items-center justify-content-between">
+                        <div>
+                            <p class="mb-1">You have already reviewed this chart.</p>
+                            @if($myCurrentClientReviewRequest->status_memo)
+                            <div class="d-flex align-items-start">
+                                <span class="mr-3"><i class="fas fa-calendar"></i> {{ friendly_date_time($myCurrentClientReviewRequest->status_updated_at) }}</span>
+                                <small class="text-muted">{{ $myCurrentClientReviewRequest->status_memo }}</small>
+                            </div>
 
-                {{-- appointments --}}
-                @include('app/patient/partials/appointments')
-
-                <?php $hasAllergiesInCanvas = $patient->hasDataInCanvas('allergies'); ?>
-
-                {{-- canvas based allergies --}}
-                @if($isOldClient && $hasAllergiesInCanvas)
-                <div class="pt-2 mt-2 border-top">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Allergies</h6>
-                        <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @include('app.patient.canvas-sections.allergies.summary')
+                            @endif
+                        </div>
+                        <div>
+                            @include('app.patient.review-requests.partials.physician-update-status', ['record' =>$myCurrentClientReviewRequest, 'updateMemo' => true ])
+                        </div>
                     </div>
                 </div>
                 @endif
+            </div>
+            @endif
+            {{-- rpm summary for current caremonth --}}
+            @if($patient->is_enrolled_in_rm === 'YES')
+            @if($patient->currentCareMonth())
+            @include('app/patient/partials/caremonth-summary', ['careMonth' => $patient->currentCareMonth()])
+            @else
+            <div class="alert alert-info">No caremonth for this month.</div>
+            @endif
+            @endif
+
+            {{-- appointments --}}
+            @include('app/patient/partials/appointments')
+
+            <?php $hasAllergiesInCanvas = $patient->hasDataInCanvas('allergies'); ?>
+
+            {{-- canvas based allergies --}}
+            @if($isOldClient && $hasAllergiesInCanvas)
+            <div class="pt-2 mt-2 border-top">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Allergies</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
+                </div>
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.allergies.summary')
+                </div>
+            </div>
+            @endif
 
-                <!-- allergies - point -->
-                @include('app.patient.point-based-partials.allergies')
+            <!-- allergies - point -->
+            @include('app.patient.point-based-partials.allergies')
 
-                <?php $hasRxInCanvas = $patient->hasDataInCanvas('rx'); ?>
+            <?php $hasRxInCanvas = $patient->hasDataInCanvas('rx'); ?>
 
-                {{-- canvas based rx --}}
-                @if($isOldClient && $hasRxInCanvas)
-                <div class="pt-2 mt-2 border-top">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Current Medications</h6>
-                        <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @include('app.patient.canvas-sections.rx.summary')
-                    </div>
+            {{-- canvas based rx --}}
+            @if($isOldClient && $hasRxInCanvas)
+            <div class="pt-2 mt-2 border-top">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Current Medications</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
                 </div>
-                @endif
-
-                <!-- meds - point -->
-                @include('app.patient.point-based-partials.rx')
-
-                {{-- devices --}}
-                <?php
-                $availableDevices = count($devices);
-                $patientDeviceIDs = \App\Models\ClientBDTDevice::select('id')->where('client_id', $patient->id)->where('is_active', true)->get()->toArray();
-                $patientDeviceIDs = array_map(function($_x) {
-                    return $_x["id"];
-                }, $patientDeviceIDs);
-                ?>
-                <div class="mt-2 pb-1" id="patient-dashboard-devices">
-                    <div class="d-flex align-items-center mb-2 py-2 border-top border-bottom">
-                        <h6 class="my-0 font-weight-bold">Devices</h6>
-                        @if($availableDevices > 0 && $pro->pro_type === 'ADMIN')
-                        <span class="mx-2 text-secondary">|</span>
-                        <span moe>
-                            <a start show>Add</a>
-                            <form url="/api/clientBdtDevice/create" class="mcp-theme-1">
-                                <input type="hidden" name="clientUid" value="{{$patient->uid}}">
-                                <div class="mb-2">
-                                    <label class="text-secondary text-sm">Device</label>
-                                    <select name="deviceUid" class="form-control form-control-sm">
-                                        <option value=""> --select-- </option>
-                                        @foreach($devices as $device)
-                                            @if(!in_array($device->id, $patientDeviceIDs))
-                                            <option value="{{$device->uid}}">
-                                                {{$device->imei}} ({{$device->category}})
-                                            </option>
-                                            @endif
-                                        @endforeach
-                                    </select>
-                                </div>
-                                <div class="mb-2">
-                                    <label class="text-secondary text-sm">Instructions</label>
-                                    <input type="text" name="instructions" class="form-control form-control-sm">
-                                </div>
-                                <div class="mb-2">
-                                    <label class="text-secondary text-sm">Internal Memo</label>
-                                    <input type="text" name="internalMemo" class="form-control form-control-sm">
-                                </div>
-                                <div class="mb-2">
-                                    <label class="text-secondary text-sm">Status</label>
-                                    <input type="text" name="status" class="form-control form-control-sm">
-                                </div>
-                                <div class="mb-2">
-                                    <label class="text-secondary text-sm">Status Memo</label>
-                                    <input type="text" name="statusMemo" class="form-control form-control-sm">
-                                </div>
-                                <div>
-                                    <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
-                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                                </div>
-                            </form>
-                        </span>
-                        @endif
-                    </div>
-                    <table class="table table-sm border-0 my-0 mx-2">
-                        <tbody>
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.rx.summary')
+                </div>
+            </div>
+            @endif
+
+            <!-- meds - point -->
+            @include('app.patient.point-based-partials.rx')
+
+            {{-- devices --}}
+            <?php
+            $availableDevices = count($devices);
+            $patientDeviceIDs = \App\Models\ClientBDTDevice::select('id')->where('client_id', $patient->id)->where('is_active', true)->get()->toArray();
+            $patientDeviceIDs = array_map(function ($_x) {
+                return $_x["id"];
+            }, $patientDeviceIDs);
+            ?>
+            <div class="mt-2 pb-1" id="patient-dashboard-devices">
+                <div class="d-flex align-items-center mb-2 py-2 border-top border-bottom">
+                    <h6 class="my-0 font-weight-bold">Devices</h6>
+                    @if($availableDevices > 0 && $pro->pro_type === 'ADMIN')
+                    <span class="mx-2 text-secondary">|</span>
+                    <span moe>
+                        <a start show>Add</a>
+                        <form url="/api/clientBdtDevice/create" class="mcp-theme-1">
+                            <input type="hidden" name="clientUid" value="{{$patient->uid}}">
+                            <div class="mb-2">
+                                <label class="text-secondary text-sm">Device</label>
+                                <select name="deviceUid" class="form-control form-control-sm">
+                                    <option value=""> --select-- </option>
+                                    @foreach($devices as $device)
+                                    @if(!in_array($device->id, $patientDeviceIDs))
+                                    <option value="{{$device->uid}}">
+                                        {{$device->imei}} ({{$device->category}})
+                                    </option>
+                                    @endif
+                                    @endforeach
+                                </select>
+                            </div>
+                            <div class="mb-2">
+                                <label class="text-secondary text-sm">Instructions</label>
+                                <input type="text" name="instructions" class="form-control form-control-sm">
+                            </div>
+                            <div class="mb-2">
+                                <label class="text-secondary text-sm">Internal Memo</label>
+                                <input type="text" name="internalMemo" class="form-control form-control-sm">
+                            </div>
+                            <div class="mb-2">
+                                <label class="text-secondary text-sm">Status</label>
+                                <input type="text" name="status" class="form-control form-control-sm">
+                            </div>
+                            <div class="mb-2">
+                                <label class="text-secondary text-sm">Status Memo</label>
+                                <input type="text" name="statusMemo" class="form-control form-control-sm">
+                            </div>
+                            <div>
+                                <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                            </div>
+                        </form>
+                    </span>
+                    @endif
+                </div>
+                <table class="table table-sm border-0 my-0 mx-2">
+                    <tbody>
                         @foreach($patient->devices as $device)
-                            <tr>
-                                <td class="text-black p-0 border-0">
-                                    <div class="pb-0">
-                                        <span relative moe>
-                                            <a class="on-hover-opaque" start show title="Update">
-                                                <i class="font-size-11 fa fa-edit text-primary"></i>
-                                            </a>
-                                            <form url="/api/clientBdtDevice/update">
-                                                <input type="hidden" name="uid" value="{{ $device->uid }}">
-                                                <div class="mb-2">
-                                                    <label class="text-secondary text-sm">Instructions</label>
-                                                    <input type="text" name="instructions"
-                                                           value="{{$device->instructions}}"
-                                                           class="form-control form-control-sm">
-                                                </div>
-                                                <div class="mb-2">
-                                                    <label class="text-secondary text-sm">Internal Memo</label>
-                                                    <input type="text" name="internalMemo"
-                                                           value="{{$device->internal_memo}}"
-                                                           class="form-control form-control-sm">
-                                                </div>
-                                                <div class="mb-2">
-                                                    <label class="text-secondary text-sm">Status</label>
-                                                    <input type="text" name="status"
-                                                           value="{{$device->status}}"
-                                                           class="form-control form-control-sm">
-                                                </div>
-                                                <div class="mb-2">
-                                                    <label class="text-secondary text-sm">Status Memo</label>
-                                                    <input type="text" name="statusMemo"
-                                                           value="{{$device->status_memo}}"
-                                                           class="form-control form-control-sm">
-                                                </div>
-                                                <div>
-                                                    <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
-                                                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
-                                                </div>
-                                            </form>
-                                        </span>
-                                        <b>{{$device->device->category}}</b>&nbsp;/&nbsp;IMEI: {{$device->device->imei}}
-                                    </div>
-                                </td>
-                            </tr>
+                        <tr>
+                            <td class="text-black p-0 border-0">
+                                <div class="pb-0">
+                                    <span relative moe>
+                                        <a class="on-hover-opaque" start show title="Update">
+                                            <i class="font-size-11 fa fa-edit text-primary"></i>
+                                        </a>
+                                        <form url="/api/clientBdtDevice/update">
+                                            <input type="hidden" name="uid" value="{{ $device->uid }}">
+                                            <div class="mb-2">
+                                                <label class="text-secondary text-sm">Instructions</label>
+                                                <input type="text" name="instructions" value="{{$device->instructions}}" class="form-control form-control-sm">
+                                            </div>
+                                            <div class="mb-2">
+                                                <label class="text-secondary text-sm">Internal Memo</label>
+                                                <input type="text" name="internalMemo" value="{{$device->internal_memo}}" class="form-control form-control-sm">
+                                            </div>
+                                            <div class="mb-2">
+                                                <label class="text-secondary text-sm">Status</label>
+                                                <input type="text" name="status" value="{{$device->status}}" class="form-control form-control-sm">
+                                            </div>
+                                            <div class="mb-2">
+                                                <label class="text-secondary text-sm">Status Memo</label>
+                                                <input type="text" name="statusMemo" value="{{$device->status_memo}}" class="form-control form-control-sm">
+                                            </div>
+                                            <div>
+                                                <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                                <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                            </div>
+                                        </form>
+                                    </span>
+                                    <b>{{$device->device->category}}</b>&nbsp;/&nbsp;IMEI: {{$device->device->imei}}
+                                </div>
+                            </td>
+                        </tr>
                         @endforeach
                         @if(!$patient->devices || count($patient->devices) === 0)
-                            <tr>
-                                <td class="text-secondary p-0 border-0">
-                                    No devices
-                                </td>
-                            </tr>
+                        <tr>
+                            <td class="text-secondary p-0 border-0">
+                                No devices
+                            </td>
+                        </tr>
                         @endif
-                        </tbody>
-                    </table>
-                </div>
+                    </tbody>
+                </table>
+            </div>
 
-                {{-- device measurements --}}
-                {{-- @include('app/patient/partials/device-measurements') --}}
+            {{-- device measurements --}}
+            {{-- @include('app/patient/partials/device-measurements') --}}
 
-                {{-- measurements --}}
-                @include('app/patient/partials/measurements')
+            {{-- measurements --}}
+            @include('app/patient/partials/measurements')
 
-                {{-- vitals --}}
-                {{--@include('app/patient/partials/vitals')--}}
+            {{-- vitals --}}
+            {{--@include('app/patient/partials/vitals')--}}
 
-                <?php $hasVitalsInCanvas = $patient->hasDataInCanvas('vitals'); ?>
+            <?php $hasVitalsInCanvas = $patient->hasDataInCanvas('vitals'); ?>
 
-                {{-- canvas based vitals --}}
-                @if($isOldClient && $hasVitalsInCanvas)
-                <div class="pt-2 border-top">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Vitals</h6>
-                        <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @include('app.patient.canvas-sections.vitals.summary')
-                    </div>
+            {{-- canvas based vitals --}}
+            @if($isOldClient && $hasVitalsInCanvas)
+            <div class="pt-2 border-top">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Vitals</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
                 </div>
-                @endif
-
-                <!-- vitals - point -->
-                <?php $latestVitals = \App\Models\Point::where('client_id', $patient->id)->where('category', 'VITALS')->orderBy('id', 'DESC')->first(); ?>
-                <div class="pt-2 mt-2">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Vitals
-                            @if(!!$latestVitals && $latestVitals->note && $latestVitals->note->effective_dateest)
-                                <span class="text-secondary font-weight-normal pl-1">(as on
-                                    <a href="{{route('patients.view.notes.view.dashboard', ['patient' => $patient, 'note' => $latestVitals->note])}}">{{friendlier_date($latestVitals->note->effective_dateest)}}</a>)
-                                </span>
-                            @endif
-                        </h6>
-                        @if($isOldClient && $hasVitalsInCanvas)
-                        <div class="px-2 font-weight-bold alert alert-info text-sm my-0 ml-2 py-1">New</div>
-                        @endif
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @if(!!$latestVitals)
-                            @include('app.patient.partials.latest-vitals', ['patient' => $patient, 'point' => $latestVitals])
-                        @else
-                            <div class="text-secondary">Nothing here yet</div>
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.vitals.summary')
+                </div>
+            </div>
+            @endif
+
+            <!-- vitals - point -->
+            <?php $latestVitals = \App\Models\Point::where('client_id', $patient->id)->where('category', 'VITALS')->orderBy('id', 'DESC')->first(); ?>
+            <div class="pt-2 mt-2">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Vitals
+                        @if(!!$latestVitals && $latestVitals->note && $latestVitals->note->effective_dateest)
+                        <span class="text-secondary font-weight-normal pl-1">(as on
+                            <a href="{{route('patients.view.notes.view.dashboard', ['patient' => $patient, 'note' => $latestVitals->note])}}">{{friendlier_date($latestVitals->note->effective_dateest)}}</a>)
+                        </span>
                         @endif
-                    </div>
+                    </h6>
+                    @if($isOldClient && $hasVitalsInCanvas)
+                    <div class="px-2 font-weight-bold alert alert-info text-sm my-0 ml-2 py-1">New</div>
+                    @endif
+                </div>
+                <div class="bg-light border p-2 mb-3">
+                    @if(!!$latestVitals)
+                    @include('app.patient.partials.latest-vitals', ['patient' => $patient, 'point' => $latestVitals])
+                    @else
+                    <div class="text-secondary">Nothing here yet</div>
+                    @endif
                 </div>
-
             </div>
-            <div class="col-6">
 
-                <?php $hasDxInCanvas = $patient->hasDataInCanvas('dx'); ?>
+        </div>
+        <div class="col-6">
 
-                {{-- canvas based dx --}}
-                @if($isOldClient)
-                    <div class="pt-2 mb-2 border-top">
-                        <div class="d-flex align-items-center pb-2">
-                            <h6 class="my-0 font-weight-bold">Current Problems / Focus Areas</h6>
-                            <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                        </div>
-                        <div class="bg-light border p-2 mb-3">
-                            @include('app.patient.canvas-sections.dx.summary')
-                        </div>
-                    </div>
-                @endif
+            <?php $hasDxInCanvas = $patient->hasDataInCanvas('dx'); ?>
 
-                <!-- probs - point -->
-                @include('app.patient.point-based-partials.dx')
+            {{-- canvas based dx --}}
+            @if($isOldClient)
+            <div class="pt-2 mb-2 border-top">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Current Problems / Focus Areas</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
+                </div>
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.dx.summary')
+                </div>
+            </div>
+            @endif
 
-                <?php $hasCareTeamInCanvas = $patient->hasDataInCanvas('care-team'); ?>
+            <!-- probs - point -->
+            @include('app.patient.point-based-partials.dx')
 
-                {{-- canvas based careteam --}}
-                @if($isOldClient && $hasCareTeamInCanvas)
-                    <div class="pt-2 mt-2 border-top">
-                        <div class="d-flex align-items-center pb-2">
-                            <h6 class="my-0 font-weight-bold">Care Team</h6>
-                            <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                        </div>
-                        <div class="bg-light border p-2 mb-3">
-                            @include('app.patient.canvas-sections.care-team.summary')
-                        </div>
-                    </div>
-                @endif
+            <?php $hasCareTeamInCanvas = $patient->hasDataInCanvas('care-team'); ?>
 
-                <!-- careteam - point -->
-                @include('app.patient.point-based-partials.care-team')
+            {{-- canvas based careteam --}}
+            @if($isOldClient && $hasCareTeamInCanvas)
+            <div class="pt-2 mt-2 border-top">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Care Team</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
+                </div>
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.care-team.summary')
+                </div>
+            </div>
+            @endif
 
-                <?php $hasPmhxInCanvas = $patient->hasDataInCanvas('pmhx'); ?>
+            <!-- careteam - point -->
+            @include('app.patient.point-based-partials.care-team')
 
-                {{-- history_medical --}}
-                @if($isOldClient && $hasPmhxInCanvas)
-                <div class="pt-2 mt-2 border-top">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Medical History</h6>
-                        <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @include('app.patient.canvas-sections.pmhx.summary')
-                    </div>
+            <?php $hasPmhxInCanvas = $patient->hasDataInCanvas('pmhx'); ?>
+
+            {{-- history_medical --}}
+            @if($isOldClient && $hasPmhxInCanvas)
+            <div class="pt-2 mt-2 border-top">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Medical History</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
                 </div>
-                @endif
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.pmhx.summary')
+                </div>
+            </div>
+            @endif
 
-                <!-- pmhx - point -->
-                @include('app.patient.point-based-partials.pmhx')
+            <!-- pmhx - point -->
+            @include('app.patient.point-based-partials.pmhx')
 
-                <?php $hasPshxInCanvas = $patient->hasDataInCanvas('pshx'); ?>
+            <?php $hasPshxInCanvas = $patient->hasDataInCanvas('pshx'); ?>
 
-                {{-- history_surgical --}}
-                @if($isOldClient && $hasPshxInCanvas)
-                <div class="mt-2 border-top pt-2">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Surgical History</h6>
-                        <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @include('app.patient.canvas-sections.pshx.summary')
-                    </div>
+            {{-- history_surgical --}}
+            @if($isOldClient && $hasPshxInCanvas)
+            <div class="mt-2 border-top pt-2">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Surgical History</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
                 </div>
-                @endif
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.pshx.summary')
+                </div>
+            </div>
+            @endif
 
-                <!-- pshx - point -->
-                @include('app.patient.point-based-partials.shx')
+            <!-- pshx - point -->
+            @include('app.patient.point-based-partials.shx')
 
-                <?php $hasFhxInCanvas = $patient->hasDataInCanvas('fhx'); ?>
+            <?php $hasFhxInCanvas = $patient->hasDataInCanvas('fhx'); ?>
 
-                {{-- history_family --}}
-                @if($isOldClient && $hasFhxInCanvas)
-                <div class="mt-2 border-top pt-2">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Family History</h6>
-                        <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @include('app.patient.canvas-sections.fhx.summary')
-                    </div>
+            {{-- history_family --}}
+            @if($isOldClient && $hasFhxInCanvas)
+            <div class="mt-2 border-top pt-2">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Family History</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
                 </div>
-                @endif
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.fhx.summary')
+                </div>
+            </div>
+            @endif
 
-                <!-- fhx - point -->
-                @include('app.patient.point-based-partials.fhx')
+            <!-- fhx - point -->
+            @include('app.patient.point-based-partials.fhx')
 
-                <?php $hasSochxInCanvas = $patient->hasDataInCanvas('sochx'); ?>
+            <?php $hasSochxInCanvas = $patient->hasDataInCanvas('sochx'); ?>
 
-                {{-- history_social --}}
-                @if($isOldClient && $hasSochxInCanvas)
-                <div class="mt-2 border-top pt-2">
-                    <div class="d-flex align-items-center pb-2">
-                        <h6 class="my-0 font-weight-bold">Social History</h6>
-                        <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
-                    </div>
-                    <div class="bg-light border p-2 mb-3">
-                        @include('app.patient.canvas-sections.sochx.summary')
-                    </div>
+            {{-- history_social --}}
+            @if($isOldClient && $hasSochxInCanvas)
+            <div class="mt-2 border-top pt-2">
+                <div class="d-flex align-items-center pb-2">
+                    <h6 class="my-0 font-weight-bold">Social History</h6>
+                    <div class="px-2 font-weight-bold alert alert-warning text-sm my-0 ml-2 py-1">Deprecated</div>
                 </div>
-                @endif
+                <div class="bg-light border p-2 mb-3">
+                    @include('app.patient.canvas-sections.sochx.summary')
+                </div>
+            </div>
+            @endif
 
-                <!-- sochx - point -->
-                @include('app.patient.point-based-partials.sochx')
+            <!-- sochx - point -->
+            @include('app.patient.point-based-partials.sochx')
 
 
-            </div>
         </div>
-        <?php /* <div class="row my-3">
+    </div>
+    <?php /* <div class="row my-3">
             <div class="col-12">
                 {{-- erx --}}
                 <div  class="mb-2 pt-3 pb-2 border-top">
@@ -526,211 +558,209 @@
             </div>
         </div> */ ?>
 
-        <div class="row my-3">
-            <div class="col-md-9">
-                {{-- memos --}}
-                <div  class="mb-2 pt-3 pb-2 border-top">
-                    <div class="">
-                        <div class="d-flex align-items-start pb-2">
-                            <h6 class="my-0 font-weight-bold">Client Memos</h6>
-                        </div>
-                        <div moe class="w-100 p-2 border mb-3">
-                            <form url="/api/clientMemo/create" show>
-                                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
-                                <label class="text-secondary font-weight-bold">+ New Memo</label>
-                                <div class="mb-2">
-                                    <select class="form-control form-control-sm" name="category" required>
-                                        <option value="">-- select --</option>
-                                        <option value="Incoming Call">Incoming Call</option>
-                                        <option value="Outgoing Call">Outgoing Call</option>
-                                        <option value="Call Unspecified">Call Unspecified</option>
-                                        <option value="Other">Other</option>
-                                    </select>
-                                </div>
-                                <div class="mb-2">
-                                    <textarea class="form-control form-control-sm" rows="5" name="content" placeholder="Content"></textarea>
-                                </div>
+    <div class="row my-3">
+        <div class="col-md-9">
+            {{-- memos --}}
+            <div class="mb-2 pt-3 pb-2 border-top">
+                <div class="">
+                    <div class="d-flex align-items-start pb-2">
+                        <h6 class="my-0 font-weight-bold">Client Memos</h6>
+                    </div>
+                    <div moe class="w-100 p-2 border mb-3">
+                        <form url="/api/clientMemo/create" show>
+                            <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                            <label class="text-secondary font-weight-bold">+ New Memo</label>
+                            <div class="mb-2">
+                                <select class="form-control form-control-sm" name="category" required>
+                                    <option value="">-- select --</option>
+                                    <option value="Incoming Call">Incoming Call</option>
+                                    <option value="Outgoing Call">Outgoing Call</option>
+                                    <option value="Call Unspecified">Call Unspecified</option>
+                                    <option value="Other">Other</option>
+                                </select>
+                            </div>
+                            <div class="mb-2">
+                                <textarea class="form-control form-control-sm" rows="5" name="content" placeholder="Content"></textarea>
+                            </div>
+                            @if($performer->pro->pro_type === 'ADMIN')
+                            <div class="mb-2">
+                                <label for="" class="checkbox">
+                                    <input type="checkbox" name="isAdminOnly">
+                                    Admins only
+                                </label>
+                            </div>
+                            @endif
+                            <div class="d-flex align-items-center">
+                                <button class="btn btn-sm btn-primary mr-2" type="button" submit>Save</button>
+                            </div>
+                        </form>
+                    </div>
+                    <table class="table table-striped table-sm table-bordered mb-0">
+                        @if($patient->memos && count($patient->memos))
+                        <thead class="bg-light">
+                            <tr class="text-nowrap">
+                                <th class="border-0 text-secondary">Category</th>
+                                <th class="border-0 text-secondary w-50">Summary</th>
+                                <th class="border-0 text-secondary">Created</th>
                                 @if($performer->pro->pro_type === 'ADMIN')
-                                <div class="mb-2">
-                                    <label for="" class="checkbox">
-                                        <input type="checkbox" name="isAdminOnly">
-                                        Admins only
-                                    </label>
-                                </div>
+                                <th class="border-0 text-secondary">Admins Only</th>
                                 @endif
-                                <div class="d-flex align-items-center">
-                                    <button class="btn btn-sm btn-primary mr-2" type="button" submit>Save</button>
-                                </div>
-                            </form>
-                        </div>
-                        <table class="table table-striped table-sm table-bordered mb-0">
-                            @if($patient->memos && count($patient->memos))
-                                <thead class="bg-light">
-                                <tr class="text-nowrap">
-                                    <th class="border-0 text-secondary">Category</th>
-                                    <th class="border-0 text-secondary w-50">Summary</th>
-                                    <th class="border-0 text-secondary">Created</th>
-                                    @if($performer->pro->pro_type === 'ADMIN')
-                                    <th class="border-0 text-secondary">Admins Only</th>
+                                <th class="border-0 text-secondary">Ack. by MCP</th>
+                                <th class="border-0 text-secondary delete-column">&nbsp;</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            @foreach($patient->memos as $memo)
+                            @if(!$memo->is_admin_only || ($memo->is_admin_only && $performer->pro->pro_type === 'ADMIN') )
+                            <tr>
+                                <td class="text-nowrap">{{ $memo->category }}</td>
+                                <td class="px-2">
+                                    <pre class="m-0 break-spaces">{{ $memo->content }}</pre>
+                                </td>
+                                <td class="text-nowrap">
+                                    @if($performer->pro->pro_type == 'ADMIN')
+                                    <strong>{{$memo->createdBy->proname_first}} {{$memo->createdBy->pro->name_last}}</strong><br />
                                     @endif
-                                    <th class="border-0 text-secondary">Ack. by MCP</th>
-                                    <th class="border-0 text-secondary delete-column">&nbsp;</th>
-                                </tr>
-                                </thead>
-                                <tbody>
-                                @foreach($patient->memos as $memo)
-                                    @if(!$memo->is_admin_only || ($memo->is_admin_only && $performer->pro->pro_type === 'ADMIN') )
-                                    <tr>
-                                        <td class="text-nowrap">{{ $memo->category }}</td>
-                                        <td class="px-2">
-                                            <pre class="m-0 break-spaces">{{ $memo->content }}</pre>
-                                        </td>
-                                        <td class="text-nowrap">
-                                            @if($performer->pro->pro_type == 'ADMIN')
-                                            <strong>{{$memo->createdBy->proname_first}} {{$memo->createdBy->pro->name_last}}</strong><br/>
-                                            @endif
-                                            {{ friendly_date_time($memo->created_at) }}
-                                        </td>
-                                        @if($performer->pro->pro_type === 'ADMIN' )
-                                        <td class="text-secondary">
-                                            @if($memo->is_admin_only)
-                                                <span class="text-success"><i class="fas fa-lock"></i> YES</span>
-                                            @else
-                                                <span><i class="fas fa-unlock"></i> NO</span>
-                                            @endif
-                                        </td>
-                                        @endif
-                                        <td>
-                                            @if($memo->mcp_stamp_id)
-                                            <span class="text-success">YES <i class="fas fa-info-circle c-pointer" data-toggle="tooltip" data-placement="bottom" title="{{ friendly_date_time($memo->stamp->created_at) }}"></i></span>
-                                            @else
-                                            <span class="text-secondary">NO</span>
-                                            @endif
-                                        </td>
-                                        <td class="text-center delete-column">
-                                            @if($performer->pro->pro_type == 'ADMIN')
-                                                <div moe relative bottom class="mr-2">
-                                                    <a start show><i class="fa fa-history"></i></a>
-                                                    <div action="" url right bottom>
-                                                        <table class="table table-condensed table-striped table-sm">
-                                                            <thead>
-                                                            <th>Category</th>
-                                                            <th>Summary</th>
-                                                            <th>Created</th>
-
-                                                            </thead>
-                                                            <tbody>
-                                                            @foreach($memo->updates as $update)
-                                                                <tr>
-                                                                    <td>{{$update->category}}</td>
-                                                                    <td>{{$update->content}}</td>
-                                                                    <td><strong>{{$update->createdBy->proname_first}} {{$update->createdBy->pro->name_last}}</strong><br/>{{ friendly_date_time($update->created_at) }}</td>
-
-                                                                </tr>
-                                                            @endforeach
-                                                            </tbody>
-                                                        </table>
-                                                    </div>
-                                                </div>
-                                            @endif
-                                            <div moe wide relative class="mr-2">
-                                                <a class="on-hover-opaque" start show title="Edit">
-                                                    <i class="font-size-11 fa fa-edit"></i>
-                                                </a>
-                                                <form url="/api/clientMemo/update" right>
-                                                    <input type="hidden" name="uid" value="{{ $memo->uid }}">
-                                                    <div class="mb-2">
-                                                        <select class="form-control form-control-sm" name="category" required>
-                                                            <option value="">-- select --</option>
-                                                            <option {{ $memo->category === "Incoming Call" ? "selected" : "" }} value="Incoming Call">Incoming Call</option>
-                                                            <option {{ $memo->category === "Outgoing Call" ? "selected" : "" }} value="Outgoing Call">Outgoing Call</option>
-                                                            <option {{ $memo->category === "Call Unspecified" ? "selected" : "" }} value="Call Unspecified">Call Unspecified</option>
-                                                            <option {{ $memo->category === "Other" ? "selected" : "" }} value="Other">Other</option>
-                                                        </select>
-                                                    </div>
-                                                    <div class="mb-2">
-                                                        <textarea class="form-control form-control-sm" name="content" rows="5"
-                                                            placeholder="Content"><?= $memo->content ?></textarea>
-                                                    </div>
-                                                    <div class="d-flex align-items-center">
-                                                        <button class="btn btn-sm btn-primary mr-2" type="button" submit>Save</button>
-                                                        <button class="btn btn-sm btn-default mr-2 border" type="button"
-                                                                cancel>Cancel</button>
-                                                    </div>
-                                                </form>
+                                    {{ friendly_date_time($memo->created_at) }}
+                                </td>
+                                @if($performer->pro->pro_type === 'ADMIN' )
+                                <td class="text-secondary">
+                                    @if($memo->is_admin_only)
+                                    <span class="text-success"><i class="fas fa-lock"></i> YES</span>
+                                    @else
+                                    <span><i class="fas fa-unlock"></i> NO</span>
+                                    @endif
+                                </td>
+                                @endif
+                                <td>
+                                    @if($memo->mcp_stamp_id)
+                                    <span class="text-success">YES <i class="fas fa-info-circle c-pointer" data-toggle="tooltip" data-placement="bottom" title="{{ friendly_date_time($memo->stamp->created_at) }}"></i></span>
+                                    @else
+                                    <span class="text-secondary">NO</span>
+                                    @endif
+                                </td>
+                                <td class="text-center delete-column">
+                                    @if($performer->pro->pro_type == 'ADMIN')
+                                    <div moe relative bottom class="mr-2">
+                                        <a start show><i class="fa fa-history"></i></a>
+                                        <div action="" url right bottom>
+                                            <table class="table table-condensed table-striped table-sm">
+                                                <thead>
+                                                    <th>Category</th>
+                                                    <th>Summary</th>
+                                                    <th>Created</th>
+
+                                                </thead>
+                                                <tbody>
+                                                    @foreach($memo->updates as $update)
+                                                    <tr>
+                                                        <td>{{$update->category}}</td>
+                                                        <td>{{$update->content}}</td>
+                                                        <td><strong>{{$update->createdBy->proname_first}} {{$update->createdBy->pro->name_last}}</strong><br />{{ friendly_date_time($update->created_at) }}</td>
+
+                                                    </tr>
+                                                    @endforeach
+                                                </tbody>
+                                            </table>
+                                        </div>
+                                    </div>
+                                    @endif
+                                    <div moe wide relative class="mr-2">
+                                        <a class="on-hover-opaque" start show title="Edit">
+                                            <i class="font-size-11 fa fa-edit"></i>
+                                        </a>
+                                        <form url="/api/clientMemo/update" right>
+                                            <input type="hidden" name="uid" value="{{ $memo->uid }}">
+                                            <div class="mb-2">
+                                                <select class="form-control form-control-sm" name="category" required>
+                                                    <option value="">-- select --</option>
+                                                    <option {{ $memo->category === "Incoming Call" ? "selected" : "" }} value="Incoming Call">Incoming Call</option>
+                                                    <option {{ $memo->category === "Outgoing Call" ? "selected" : "" }} value="Outgoing Call">Outgoing Call</option>
+                                                    <option {{ $memo->category === "Call Unspecified" ? "selected" : "" }} value="Call Unspecified">Call Unspecified</option>
+                                                    <option {{ $memo->category === "Other" ? "selected" : "" }} value="Other">Other</option>
+                                                </select>
                                             </div>
-                                            <div moe relative>
-                                                <a start show class="on-hover-opaque"><i class="fa fa-trash-alt text-danger"></i></a>
-                                                <form url="/api/clientMemo/cancel" right>
-                                                    <input type="hidden" name="uid" value="{{ $memo->uid }}">
-                                                    <p class="small">Are you sure you want to cancel this memo?</p>
-                                                    <div class="d-flex align-items-center">
-                                                        <button class="btn btn-sm btn-danger mr-2" submit>Delete</button>
-                                                        <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
-                                                    </div>
-                                                </form>
+                                            <div class="mb-2">
+                                                <textarea class="form-control form-control-sm" name="content" rows="5" placeholder="Content"><?= $memo->content ?></textarea>
                                             </div>
-                                        </td>
-                                    </tr>
-                                    @endif
-                                @endforeach
-                                </tbody>
-                            @else
-                                <tbody>
-                                <tr>
-                                    <td class="text-secondary p-3">No memos have been created for this patient</td>
-                                </tr>
-                                </tbody>
+                                            <div class="d-flex align-items-center">
+                                                <button class="btn btn-sm btn-primary mr-2" type="button" submit>Save</button>
+                                                <button class="btn btn-sm btn-default mr-2 border" type="button" cancel>Cancel</button>
+                                            </div>
+                                        </form>
+                                    </div>
+                                    <div moe relative>
+                                        <a start show class="on-hover-opaque"><i class="fa fa-trash-alt text-danger"></i></a>
+                                        <form url="/api/clientMemo/cancel" right>
+                                            <input type="hidden" name="uid" value="{{ $memo->uid }}">
+                                            <p class="small">Are you sure you want to cancel this memo?</p>
+                                            <div class="d-flex align-items-center">
+                                                <button class="btn btn-sm btn-danger mr-2" submit>Delete</button>
+                                                <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                            </div>
+                                        </form>
+                                    </div>
+                                </td>
+                            </tr>
                             @endif
-                        </table>
-                    </div>
+                            @endforeach
+                        </tbody>
+                        @else
+                        <tbody>
+                            <tr>
+                                <td class="text-secondary p-3">No memos have been created for this patient</td>
+                            </tr>
+                        </tbody>
+                        @endif
+                    </table>
                 </div>
             </div>
-            <div class="col-md-3">
-            <div  class="mb-2 pt-3 pb-2 border-top">
-                        @include('app.patient.intake-data.intake-data')
-            </div>    
+        </div>
+        <div class="col-md-3">
+            <div class="mb-2 pt-3 pb-2 border-top">
+                @include('app.patient.intake-data.intake-data')
             </div>
         </div>
-
     </div>
-    <script>
-        (function() {
-            function init() {
-                $('select[name="deviceUid"]').select2({
-                    width: '100%'
-                });
 
-                // refresh once ticket popup is closed
-                $('body').off('stag-popup-closed')
-                /*$('body').on('stag-popup-closed', function() {
-                    if($('#client-rx-container').length) {
-                        fastReload();
-                    }
-                });*/
-                // ticket-popup
-                $(document)
-                    .off('click', '.ticket-popup-trigger')
-                    .on('click', '.ticket-popup-trigger', function() {
-                        showMask();
-                        window.noMc = true;
-                        $.get(this.href, (_data) => {
-                            $('.ticket-popup').html(_data);
-                            showStagPopup('ticket-popup', true);
-                            // $('.ticket-popup .stag-popup.stag-slide').attr('close-all-with-self', 1);
-                            runMCInitializer('patient-tickets'); // run specific mc initer
-                            hideMask();
-                        });
-                        return false;
+</div>
+<script>
+    (function() {
+        function init() {
+            $('select[name="deviceUid"]').select2({
+                width: '100%'
+            });
+
+            // refresh once ticket popup is closed
+            $('body').off('stag-popup-closed')
+            /*$('body').on('stag-popup-closed', function() {
+                if($('#client-rx-container').length) {
+                    fastReload();
+                }
+            });*/
+            // ticket-popup
+            $(document)
+                .off('click', '.ticket-popup-trigger')
+                .on('click', '.ticket-popup-trigger', function() {
+                    showMask();
+                    window.noMc = true;
+                    $.get(this.href, (_data) => {
+                        $('.ticket-popup').html(_data);
+                        showStagPopup('ticket-popup', true);
+                        // $('.ticket-popup .stag-popup.stag-slide').attr('close-all-with-self', 1);
+                        runMCInitializer('patient-tickets'); // run specific mc initer
+                        hideMask();
                     });
-
-                addMCHook('onHxPopupClosure', function() {
-                    closeStagPopup();
+                    return false;
                 });
 
-            }
-            addMCInitializer('patient-dashboard-devices', init, '#patient-dashboard-devices');
+            addMCHook('onHxPopupClosure', function() {
+                closeStagPopup();
+            });
+
+        }
+        addMCInitializer('patient-dashboard-devices', init, '#patient-dashboard-devices');
 
-        }).call(window);
-    </script>
-@endsection
+    }).call(window);
+</script>
+@endsection

+ 23 - 15
resources/views/app/patient/handouts-list.blade.php

@@ -13,25 +13,22 @@
         <span class="mx-2 text-secondary">|</span>
         <div moe>
             <a start show class="">Add</a>
-            <form url="/api/handoutClient/create" style="width: 500px;">
+            <form url="/api/handoutClient/create" id="handoutForm" style="width: 500px;">
                 <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
                 @if(@$note)
                 <input type="hidden" name="noteUid" value="{{ $note->uid }}">
                 @endif
-                <div id="handoutSelectComponent" class="mb-2" v-cloak>
+                <div id="handoutSelectComponent" v-cloak class="mb-2">
                     <input type="hidden" name="handoutUid" :value="selectedHandoutUid" />
-                    <input type="search" class="form-control" placeholder="Search Handout" @keyup="filterHandouts" />
+                    <input type="search" v-model="search" class="form-control" placeholder="Search Handout" @keyup="filterHandouts" />
                     <div class="mt-3" style="max-height: 430px;overflow-y: auto;overflow-x:hidden;">
-                        <div class="row">
+                        <div class="row" style="max-height:300px;">
                             <div v-for="handout in handoutsList" class="col-md-4 mb-2 handout" :class="selectedHandoutUid == handout.uid ? 'selected':''" @click="selectedHandoutUid = handout.uid">
-                                <div class="d-flex flex-column h-100 border rounded p-2 handout-detail">
+                                <a class="d-flex flex-column h-100 border rounded p-2 handout-detail c-pointer pdf-viewer-trigger" native target="_blank" :href="'/api/handout/download/'+handout.uid" title="View">
                                     <i v-if="selectedHandoutUid == handout.uid" class="fas fa-check-circle"></i>
                                     <img :src="'/api/handout/download-thumbnail/'+handout.uid" :alt="handout.display_name" onerror="if (this.src != '/img/pdf.png') this.src = '/img/pdf.png';">
-                                    <h6 class="mt-2 mb-0 text-center">@{{ handout.display_name }}</h6>
-
-                                    <a class="c-pointer preview pdf-viewer-trigger" native target="_blank" :href="'/api/handout/download/'+handout.uid" title="View">Preview PDF</a>
-
-                                </div>
+                                    <h6 class="mt-auto pt-1 mb-0 text-center">@{{ handout.display_name }}</h6>
+                                </a>
                             </div>
                         </div>
                     </div>
@@ -39,7 +36,7 @@
                 </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>
+                    <button class="btn btn-sm btn-default mr-2 border" on-handout-close cancel>Cancel</button>
                 </div>
             </form>
         </div>
@@ -103,14 +100,14 @@
             handoutsList: [],
             selectedHandoutUid: null,
             search: null,
-            preview: null,
+            preview: null
         },
         methods: {
             togglePreview: function(handoutUid) {
                 this.preview = handoutUid;
                 if (!handoutUid) {
-                    
-                }                
+
+                }
             },
             filterHandouts: function(evt) {
                 var self = this;
@@ -136,12 +133,23 @@
                 self.handoutsList = data;
 
             },
+            onClose: function() {
+              var self = this;
+              $('[on-handout-close]').click(function(){
+                self.selectedHandoutUid = null;
+                self.search = null;
+                self.handoutsList = self.handouts;
+                $('[stag-popup-key="pdf-viewer"]').removeClass('show');
+              });
+            },
             init: function() {
                 this.handoutsList = this.handouts;
+                this.onClose();
             }
         },
         mounted: function() {
             this.init();
+
         }
     });
-</script>
+</script>

+ 5 - 1
resources/views/app/patient/note/dashboard.blade.php

@@ -519,7 +519,11 @@ use App\Models\Handout;
 
             <div class="ml-auto d-flex align-items-start">
                 <div class="">
-                    <div>
+                    <div class="d-flex">
+                        <div class="d-flex">
+                            @include('app.patient.note.partials.flag-note-by-supervisor')
+                        </div>
+                        
 
                         @if($note->is_signed_by_hcp )
                             <div class="d-flex align-items-baseline">

+ 79 - 0
resources/views/app/patient/note/partials/flag-note-by-supervisor.blade.php

@@ -0,0 +1,79 @@
+
+<div class="d-flex align-items-center mr-2">
+    @if($note->is_stamped_by_supervising_physician)
+        <div class="d-flex align-items-center">
+            <span class="text-success mr-2"><i class="fas fa-badge-check"></i> Stamped</span>
+            <span class="mr-1">by {{ $note->stampedBySupervisingPhysicianBySession->pro->displayName() }}</span>
+            <span class="mr-1">at {{ friendlier_date($note->stamped_by_supervising_physician_at) }} <i class="fas fa-info-circle" title="{{ $note->stamping_note_by_supervising_physician }}"></i></span>
+            @if($note->isProPhysicianSupervisor($pro->id))
+            <div moe class="ml-2">
+                <a href="#" start show class="text-danger"><i class="fas fa-stamp"></i> Undo Stamp</a>
+                <form url="/api/note/undoStampAsSupervisingPhysician">
+                    <input type="hidden" name="uid" value="{{ $note->uid }}">
+                    <div class="mb-2">
+                        <label>Are you sure?</label>
+                    </div>
+                    <div class="mt-3">
+                        <button submit class="btn btn-sm btn-danger mr-2">Undo Stamp</button>
+                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                    </div>
+                </form>
+            </div>
+            @endif
+        </div>        
+    @else
+        @if($note->is_flagged_for_supervising_physician_review)
+            @if($performer->pro->pro_type === 'ADMIN')
+                <div class="d-flex align-items-center">
+                    <span class="text-danger mr-2"><i class="fas fa-flag text-danger"></i> Flagged for Review</span>
+                    <span class="mr-2">by <b>{{ $note->flaggedForSupervisingPhysicianReviewBySession->pro->displayName() }}</b> at {{ friendlier_date($note->flagged_for_supervising_physician_review_at) }}</span>            
+                    <div moe class="">
+                        <a href="#" start show title="Undo flag"><i class="fas fa-undo"></i> Undo</a>
+                        <form url="/api/note/undoMarkAsFlaggedForSupervisingPhysicianReview">
+                            <input type="hidden" name="uid" value="{{ $note->uid }}">
+                            <div class="mb-2">
+                                <label>Are you sure?</label>
+                            </div>
+                            <div class="mt-3">
+                                <button submit class="btn btn-sm btn-primary mr-2">Undo Flag</button>
+                                <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+            @endif
+            @if($note->isProPhysicianSupervisor($performer->pro->id)) 
+                <div moe class="ml-2">
+                    <a href="#" start show class="text-success"><i class="fas fa-stamp"></i> Stamp Note</a>
+                    <form url="/api/note/stampAsSupervisingPhysician">
+                        <input type="hidden" name="uid" value="{{ $note->uid }}">
+                        <div class="mb-2">
+                            <label>Are you sure?</label>
+                            <textarea name="memo" class="form-control"></textarea>
+                        </div>
+                        <div class="mt-3">
+                            <button submit class="btn btn-sm btn-success mr-2">Stamp Note</button>
+                            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                        </div>
+                    </form>
+                </div>
+            @endif
+        @else
+            @if($performer->pro->pro_type === 'ADMIN')
+            <div moe class="mr-2">
+                <a href="#" start show><i class="fas fa-flag text-danger"></i> Flag Note for Review</a>
+                <form url="/api/note/markAsFlaggedForSupervisingPhysicianReview">
+                    <input type="hidden" name="uid" value="{{ $note->uid }}">
+                    <div class="mb-2">
+                        <label>Are you sure?</label>
+                    </div>
+                    <div class="mt-3">
+                        <button submit class="btn btn-sm btn-danger mr-2">Flag Note</button>
+                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                    </div>
+                </form>
+            </div>
+            @endif
+        @endif
+    @endif
+</div>

+ 74 - 76
resources/views/app/patient/partials/rm-setup.blade.php

@@ -1,5 +1,5 @@
 <div class="row">
-    <div class="col-6">
+    <div class="col-5">
         <div class="d-flex mb-2">
           @if($pro->pro_type === 'ADMIN')
               <div class="d-flex align-items-center">
@@ -255,7 +255,7 @@
             @include('app.patient.partials.client_bp_weight_phone_number_status')
         </div>
     </div>
-    <div class="col-6 border-left">
+    <div class="col-5 border-left">
         <?php
         $bpDevice = null;
         $weightScale = null;
@@ -304,106 +304,104 @@
         ?>
 
         @if($bpDevice)
-            <div class="mb-3">
-                <div class="d-flex align-items-baseline mb-2">
-                    <span class="width-200px font-weight-bold">Cellular BP Device</span>
-                    <b class="ml-3">Yes</b>
-                    <span class="ml-3 text-secondary">IMEI: {{$bpDevice->device->imei}}</span>
-                </div>
-                <div class="">
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">Arrived:</span>
-                        <span class="ml-3">Yes</span>
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">First Measurement:</span>
+            <div class="mb-2">
+                <table class="table table-sm table-bordered mb-0">
+                    <tr class="bg-light">
+                        <td class="text-secondary" style="width: 125px;">Cellular BP Device</td>
+                        <td colspan="2">Yes <i>({{$bpDevice->device->imei}})</i></td>
+                    </tr>
+                    <tr>
+                        <td class="text-secondary">Arrived</td>
+                        <td colspan="2">Yes</td>
+                    </tr>
+                    <tr>
+                        <td class="text-secondary">First Meas.</td>
                         @if($bpMeasurements["first"])
-                            <span class="ml-3">{{ $bpMeasurements["first"]->sbp_mm_hg . '/' . $bpMeasurements["first"]->dbp_mm_hg . ' mmHg' }}</span>
-                            <span class="ml-3 text-secondary">{{date("Y-m-d", $bpMeasurements["first"]->ts/1000)}}</span>
-                            <span class="ml-3">{{date_diff(date_create(date("Y-m-d", $bpMeasurements["first"]->ts/1000)), date_create('now'))->days}} days ago</span>
+                        <td class="">{{ $bpMeasurements["first"]->sbp_mm_hg . '/' . $bpMeasurements["first"]->dbp_mm_hg . '' }}</td>
+                        <td class="">{{friendly_date_short(date("Y-m-d", $bpMeasurements["first"]->ts/1000))}} <i class="text-muted">- {{date_diff(date_create(date("Y-m-d", $bpMeasurements["first"]->ts/1000)), date_create('now'))->days}} <small class="text-sm">days ago</small></i></td>
                         @else
-                            -
+                            <td colspan="3">-</td>
                         @endif
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">Last Measurement:</span>
+                    </tr>
+                    <tr>
+                        <td class="text-secondary">Last Meas.</td>
                         @if($bpMeasurements["last"])
-                            <span class="ml-3">{{ $bpMeasurements["last"]->sbp_mm_hg . '/' . $bpMeasurements["last"]->dbp_mm_hg . ' mmHg' }}</span>
-                            <span class="ml-3 text-secondary">{{date("Y-m-d", $bpMeasurements["last"]->ts/1000)}}</span>
-                            <span class="ml-3">{{date_diff(date_create(date("Y-m-d", $bpMeasurements["last"]->ts/1000)), date_create('now'))->days}} days ago</span>
+                            <td>{{ $bpMeasurements["last"]->sbp_mm_hg . '/' . $bpMeasurements["last"]->dbp_mm_hg . '' }}</td>
+                            <td>{{friendly_date_short(date("Y-m-d", $bpMeasurements["last"]->ts/1000))}} <i class="text-muted">- {{date_diff(date_create(date("Y-m-d", $bpMeasurements["last"]->ts/1000)), date_create('now'))->days}} <small class="text-sm">days ago</small></i></td>
                         @else
-                            -
+                           <td colspan="3">-</td>
                         @endif
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">How often to measure:</span>
-                        <span class="ml-3"> -- </span>
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">SMS reminders:</span>
-                        <span class="ml-3"> -- </span>
-                    </div>
-                </div>
+                    </tr>
+                    {{--
+                    <tr>
+                        <td class="text-secondary">How often to measure</td>
+                        <td colspan="2">-</td>
+                    </tr>
+                    <tr>
+                        <td class="text-secondary">SMS reminders</td>
+                        <td colspan="2">-</td>
+                    </tr>
+                    --}}
+                </table>
             </div>
         @else
             <div class="d-flex align-items-baseline mb-3">
-                <span>Cellular BP Device</span>
+                <span class="min-width-200px">Cellular BP Device</span>
                 <b class="ml-3">No</b>
             </div>
         @endif
 
         @if($weightScale)
-            <div class="mb-3">
-                <div class="d-flex align-items-baseline mb-2">
-                    <span class="width-200px font-weight-bold">Cellular Weight Scale</span>
-                    <b class="ml-3">Yes</b>
-                    <span class="ml-3 text-secondary">IMEI: {{$weightScale->device->imei}}</span>
-                </div>
-                <div class="">
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">Arrived:</span>
-                        <span class="ml-3">Yes</span>
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">First Measurement:</span>
-                        @if($weightMeasurements["first"])
-                            <span class="ml-3">{{ round($weightMeasurements["first"]->value, 2) . ' lbs' }}</span>
-                            <span class="ml-3 text-secondary">{{date("Y-m-d", $weightMeasurements["first"]->ts/1000)}}</span>
-                            <span class="ml-3">{{date_diff(date_create(date("Y-m-d", $weightMeasurements["first"]->ts/1000)), date_create('now'))->days}} days ago</span>
-                        @else
-                            -
-                        @endif
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">Last Measurement:</span>
+            <div class="mb-2">
+            <table class="table table-sm table-bordered mb-0">
+                <tr class="bg-light">
+                    <td class="text-secondary">Cellular Wt. Scale</td>
+                    <td colspan="3">Yes <i>({{$weightScale->device->imei}})</i></td>
+                </tr>
+                <tr>
+                    <td class="text-secondary">Arrived</td>
+                    <td colspan="3">Yes</td>
+                </tr>
+                <tr>
+                    <td class="text-secondary">First Meas.</td>
+                    @if($weightMeasurements["first"])
+                        <td>{{ round($weightMeasurements["first"]->value, 2) . ' lbs' }}</td>
+                        <td colspan="2">{{ friendly_date_short(date("Y-m-d", $weightMeasurements["first"]->ts/1000)) }} <i class="text-muted">- {{date_diff(date_create(date("Y-m-d", $weightMeasurements["first"]->ts/1000)), date_create('now'))->days}} <small class="text-asm">days ago</small></i></td>
+                    @else
+                        <td colspan="4"></td>
+                    @endif
+                </tr>
+                <tr>
+                        <td class="text-secondary">Last Meas.</td>
                         @if($weightMeasurements["last"])
-                            <span class="ml-3">{{ round($weightMeasurements["last"]->value, 2) . ' lbs' }}</span>
-                            <span class="ml-3 text-secondary">{{date("Y-m-d", $weightMeasurements["last"]->ts/1000)}}</span>
-                            <span class="ml-3">{{date_diff(date_create(date("Y-m-d", $weightMeasurements["last"]->ts/1000)), date_create('now'))->days}} days ago</span>
+                            <td>{{ round($weightMeasurements["last"]->value, 2) . ' lbs' }}</td>
+                            <td>{{ friendly_date_short(date("Y-m-d", $weightMeasurements["last"]->ts/1000)) }} <i class="text-muted">- {{date_diff(date_create(date("Y-m-d", $weightMeasurements["last"]->ts/1000)), date_create('now'))->days}} <small class="text-sm">days ago</small></i></td>
                         @else
-                            -
+                            <td colspan="4">-</td>
                         @endif
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">How often to measure:</span>
-                        <span class="ml-3"> -- </span>
-                    </div>
-                    <div class="d-flex align-items-baseline mb-1">
-                        <span class="width-200px pl-3">SMS reminders:</span>
-                        <span class="ml-3"> -- </span>
-                    </div>
-                </div>
+                    </tr>
+                    {{--
+                    <tr>
+                        <td class="text-secondary">How often to measure</td>
+                        <td colspan="3">-</td>
+                    </tr>
+                    <tr>
+                        <td class="text-secondary">SMS reminders:</td>
+                        <td colspan="3">-</td>
+                    </tr>
+                    --}}
+            </table>
             </div>
         @else
             <div class="d-flex align-items-baseline mb-3">
-                <span>Cellular Weight Scale</span>
+                <span class="min-width-200px">Cellular Weight Scale</span>
                 <b class="ml-3">No</b>
             </div>
         @endif
 
         @if($careMonth && ($bpDevice || $weightScale))
             <div class="d-flex align-items-baseline mb-1">
-                <span>Measurement days this month:</span>
+                <span class="min-width-200px">Measurement days this month:</span>
                 <div class="ml-3">
                     <b>{{$careMonth->number_of_days_with_remote_measurements}} days</b>
                 </div>

+ 78 - 0
resources/views/app/patient/review-requests/list.blade.php

@@ -0,0 +1,78 @@
+@extends ('layouts.patient')
+@section('inner-content')
+<div class="">
+    <div class="d-flex align-items-center pb-2">
+        <h4 class="font-weight-bold mb-0 mr-3">Review Requests</h4>
+        @if($performer->pro->pro_type === 'ADMIN')
+            @include('app.patient.review-requests.partials.create')
+        @endif
+    </div>
+    <table class="table table-striped table-sm table-bordered">
+        <thead class="bg-light">
+            <tr>
+                <th class="border-0 text-secondary text-nowrap">Created At</th>
+                <th class="border-0 text-secondary">Scoped Month Start Date</th>
+                <th class="border-0 text-secondary">Access Start Date</th>
+                <th class="border-0 text-secondary">Access End Date</th>
+                <th class="border-0 text-secondary">Pro</th>
+                <th class="border-0 text-secondary">Created By</th>
+                <th  class="border-0 text-secondary">Is Active</th>
+                <th  class="border-0 text-secondary">Status</th>
+                <th  class="border-0 text-secondary"></th>
+            </tr>
+        </thead>
+        <tbody>
+            @foreach($reviewRequests as $rr)
+            <tr>
+                <td class="text-nowrap">{{ friendly_date_time($rr->created_at) }}</td>
+                <td>{{ friendly_date($rr->scoped_month_start_date) }}</td>
+                <td>{{ friendly_date($rr->access_start_date) }}</td>
+                <td>{{ friendly_date($rr->access_end_date) }}</td>
+                <td>{{ $rr->pro->displayName() }}</td>
+                <td>{{ $rr->createdBySession->pro->displayName() }}</td>
+                <td>
+                    @if($rr->is_active)
+                        <span class="text-success mr-2">YES 
+                            @if($rr->reactivation_memo)
+                                <i class="fas fa-info-circle text-muted" title="{{ $rr->reactivation_memo }}"></i>
+                            @endif
+                        </span>
+                        @if($performer->pro->pro_type === 'ADMIN')
+                            @include('app.patient.review-requests.partials.deactivate')
+                        @endif
+                    @else
+                        <span class="text-secondary mr-2">NO
+                        @if($rr->deactivation_memo)
+                                <i class="fas fa-info-circle text-muted" title="{{ $rr->deactivation_memo }}"></i>
+                            @endif
+                        </span>
+                        @if($performer->pro->pro_type === 'ADMIN')
+                            @include('app.patient.review-requests.partials.activate')
+                        @endif
+                    @endif
+                </td>
+                <td>
+                    <span class="mr-2">{{ $rr->status ?? '--' }} 
+                        @if($rr->status_memo )
+                            <i class="fas fa-info-circle text-muted" title="{{ $rr->status_memo }}"></i>
+                        @endif
+                    </span>
+                    @if($performer->pro->pro_type === 'ADMIN')
+                        @include('app.patient.review-requests.partials.update-status')
+                    @endif
+                </td>
+                <td>
+                    @if($performer->pro->pro_type === 'ADMIN')
+                        @include('app.patient.review-requests.partials.edit')
+                    @endif
+                </td>
+            </tr>
+            @endforeach
+        </tbody>
+    </table>
+    <div class="p-3">
+        {{$reviewRequests->withQueryString()->links()}}
+    </div>
+</div>
+
+@endsection

+ 16 - 0
resources/views/app/patient/review-requests/partials/activate.blade.php

@@ -0,0 +1,16 @@
+<div moe relative>
+    <a start show class="text-success">Activate</a>
+    <form url="/api/clientReviewRequest/reactivate" class="mcp-theme-1" right>
+        <input type="hidden" name="uid" value="{{ $rr->uid }}">
+
+        <div class="mb-2">
+            <label class="mb-1">Are you sure?</label>
+            <textarea name="memo" class="form-control"></textarea>
+        </div>
+
+        <div>
+            <button submit class="btn btn-sm btn-success mr-1">Activate</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 28 - 0
resources/views/app/patient/review-requests/partials/create.blade.php

@@ -0,0 +1,28 @@
+<div moe wide>
+    <a start show class="btn btn-primary text-white btn-sm mr-2"><i class="fas fa-plus"></i> Review Request</a>
+    <form url="/api/clientReviewRequest/create" class="mcp-theme-1">
+        <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+        
+        <div class="mb-2">
+            <label class="font-weight-bold mb-1">Pro</label>
+            <select provider-search name="proUid" class="form-control input-sm"></select>
+        </div>
+        <div class="mb-2">
+            <label class="font-weight-bold mb-1">Scoped Month Start Date</label>
+            <input type="date" class="form-control" name="scopedMonthStartDate" value="{{ date('Y-m-01') }}" />
+        </div>
+        <div class="mb-2">
+            <label class="font-weight-bold mb-1">Access Start Date</label>
+            <input type="date" class="form-control" name="accessStartDate" value="" />
+        </div>
+        <div class="mb-2">
+            <label class="font-weight-bold mb-1">Access End Date</label>
+            <input type="date" class="form-control" name="accessEndDate" value="" />
+        </div>
+
+        <div>
+            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 16 - 0
resources/views/app/patient/review-requests/partials/deactivate.blade.php

@@ -0,0 +1,16 @@
+<div moe relative>
+    <a start show class="text-danger">Deactivate</a>
+    <form url="/api/clientReviewRequest/deactivate" class="mcp-theme-1" right>
+        <input type="hidden" name="uid" value="{{ $rr->uid }}">
+
+        <div class="mb-2">
+            <label class="mb-1">Are you sure?</label>
+            <textarea name="memo" class="form-control"></textarea>
+        </div>
+
+        <div>
+            <button submit class="btn btn-sm btn-danger mr-1">Deactivate</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 31 - 0
resources/views/app/patient/review-requests/partials/edit.blade.php

@@ -0,0 +1,31 @@
+<div moe wide relative>
+	<a start show class="ml-2">Edit</a>
+	<form url="/api/clientReviewRequest/update" class="mcp-theme-1" right>
+		<input type="hidden" name="uid" value="{{ $rr->uid }}">
+        <div class="mb-2">Scoped Month Start Date
+            <label class="font-weight-bold mb-1">Pro</label>
+            <select provider-search name="proUid" class="form-control input-sm">
+                @if($rr->pro)
+                    <option value="{{ $rr->pro->uid }}" selected>{{ $rr->pro->displayName() }}</option>
+                @endif
+            </select>
+        </div>
+        <div class="mb-2">
+            <label class="font-weight-bold mb-1">Scoped Month Start Date</label>
+            <input type="date" class="form-control" name="scopedMonthStartDate" value="{{ $rr->scoped_month_start_date }}" />
+        </div>
+        <div class="mb-2">
+            <label class="font-weight-bold mb-1">Access Start Date</label>
+            <input type="date" class="form-control" name="accessStartDate" value="{{ $rr->access_start_date }}" />
+        </div>
+        <div class="mb-2">
+            <label class="font-weight-bold mb-1">Access End Date</label>
+            <input type="date" class="form-control" name="accessEndDate" value="{{ $rr->access_end_date }}" />
+        </div>
+
+		<div>
+			<button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+			<button cancel class="btn btn-sm btn-default border">Cancel</button>
+		</div>
+	</form>
+</div>

+ 22 - 0
resources/views/app/patient/review-requests/partials/physician-update-status.blade.php

@@ -0,0 +1,22 @@
+<div moe relative>
+    <a start show class="btn btn-primary btn-sm text-white">
+        @if(@$updateMemo)
+            Update Memo
+        @else
+            Mark as Reviewed
+        @endif
+    </a>
+    <form url="/api/clientReviewRequest/update-status" class="mcp-theme-1" right>
+        <input type="hidden" name="uid" value="{{ $record->uid }}">
+        <input type="hidden" name="status" value="DONE" />
+        <div class="mb-2">
+            <label class="mb-1">Memo</label>
+            <textarea name="memo" class="form-control">{{ @$updateMemo ? $record->status_memo : '' }}</textarea>
+        </div>
+
+        <div>
+            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 20 - 0
resources/views/app/patient/review-requests/partials/update-status.blade.php

@@ -0,0 +1,20 @@
+<div moe relative>
+    <a start show class="text-primary"><i class="fas fa-edit"></i></a>
+    <form url="/api/clientReviewRequest/update-status" class="mcp-theme-1" right>
+        <input type="hidden" name="uid" value="{{ $rr->uid }}">
+
+        <div class="mb-2">
+            <label class="mb-1">Status</label>
+            <input type="text" name="status" class="form-control" value="{{ $rr->status }}" />
+        </div>
+        <div class="mb-2">
+            <label class="mb-1">Memo</label>
+            <textarea name="memo" class="form-control">{{ $rr->status_memo }}</textarea>
+        </div>
+
+        <div>
+            <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 1 - 1
resources/views/app/practice-management/all-notes.blade.php

@@ -25,7 +25,7 @@
                         <th class="border-0">Effective Date</th>
                         <th class="border-0">Patient</th>
                         <th class="border-0">MCP</th>
-                        <th class="border-0">All Pro</th>
+                        <th class="border-0">Ally Pro</th>
                         <th class="border-0 w-50">Content</th>
                     </tr>
                 </thead>

+ 1 - 1
resources/views/app/practice-management/handouts.blade.php

@@ -31,7 +31,7 @@
                     </div>
                     <div class="mb-2">
                         <label class="mb-1 text-secondary text-sm">PDF</label>
-                        <input type="file" class="form-control form-control-sm"
+                        <input type="file" accept="application/pdf" class="form-control form-control-sm"
                                name="pdfFile">
                     </div>
                     <div class="form-group m-0">

+ 302 - 0
resources/views/app/ps/dashboard.blade.php

@@ -0,0 +1,302 @@
+@extends ('layouts.template')
+
+@section('content')
+
+    <style>
+        #dashboard-mcp tr.thin th,
+        #dashboard-mcp tr.thin td,
+        #dashboard-mcp .dashboard-stats-table tr td,
+        #dashboard-mcp .dashboard-stats-table tr th {
+            padding: 0.25em;
+            font-weight: normal;
+        }
+
+        #dashboard-dna table.appointments tr td {
+            vertical-align: middle;
+        }
+    </style>
+
+    <div id="dashboard-dna">
+    <div class="p-3">
+        <div class="">
+            <div class="row mcp-theme-1" id="pro-dashboard-container">
+                <div class="col-md-3 mcp-theme-1">
+                    <div class="mb-4">
+                        <div class="pro-dashboard-inline-calendar"></div>
+                    </div>
+                    <div class="card mb-4" stag-collapsible-card="dna-key-numbers">
+                        <div class="card-header pl-2">
+                            <strong>
+                                Key Numbers
+                            </strong>
+                        </div>
+                        <div class="card-body p-0">
+                            <table class="table table-sm mb-0">
+                                <tbody>
+                                    <tr>
+                                        <th class="px-2 text-center">{{$pro->activeClientReviewRequests->count()}}<th>  
+                                        <th class="pl-2">
+                                            <a class="font-weight-normal" href="{{route('ps.client-review-requests', ['hideTitle' => true])}}" native target="_blank" open-in-stag-popup popup-style="tall" title="Charts Pending My Review">Charts Pending My Review </a>
+                                        </th>
+                                    </tr>
+                                    
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                    
+                    <div class="card mb-4" stag-collapsible-card="dna-practice-management" collapsed>
+                        <div class="card-header pl-2">
+                            <strong>
+                                Practice Management
+                            </strong>
+                        </div>
+                        <div class="card-body p-0">
+                            <table class="table table-sm mb-0">
+                                <tbody>
+                                <tr class="thin">
+                                    <th colspan="2" class="font-weight-normal px-2 pl-2">Billing & Reimbursement</th>
+                                </tr>
+                                <tr class="thin">
+                                    <th class="font-weight-normal px-2 pl-4">{{friendly_date_time($performer->pro->getNextPaymentDateAsDna(), false)}}</th>
+                                    <th class="font-weight-normal pl-2">Next Payment Date</th>
+                                </tr>
+                                <tr class="thin">
+                                    <th class="font-weight-normal px-2 pl-4">
+                                        ${{friendly_money($performer->pro->balance)}}</th>
+                                    <th class="font-weight-normal pl-2 w-100"><a
+                                            href="/practice-management/financial-transactions">Current balance</a></th>
+                                </tr>
+                                <tr class="thin">
+                                    <th class="font-weight-normal px-2 pl-4">
+                                        ${{friendly_money($performer->pro->getProcessingAmountAsDna())}}</th>
+                                    <th class="font-weight-normal pl-2"><a
+                                            href="/practice-management/bills-under-processing">Processing</a></th>
+                                </tr>
+
+                               
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-md-9">
+                    <div class="row mcp-theme-1">
+                        <div class="col-md-6 mcp-theme-1">
+                          
+
+                            <!-- ENCOUNTERS PENDING MY REVIEW -->
+                            <div class="card mb-4">
+                                <div class="card-header pl-2">
+                                    <strong>
+                                        Charts Pending My Review
+                                    </strong>
+                                </div>
+                                <div class="card-body p-0">
+                                    @include('app.ps.dashboard.client-charts-pending-my-review')
+                                </div>
+                            </div>
+
+                          
+
+                        </div>
+                        <div class="col-md-6 mcp-theme-1">
+                            <div class="card mb-4">
+                                <div class="card-header pl-2">
+                                    <strong>
+                                        Messages
+                                    </strong>
+                                </div>
+                                <div class="card-body p-0">
+                                    @include('app.dna.dashboard.messages')
+                                </div>
+                            </div>
+                            
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    </div>
+
+    <div class="stag-popup stag-popup-md ticket-popup mcp-theme-1" stag-popup-key="ticket-popup"></div>
+
+    <script>
+        (function () {
+
+            let datesWithEvents = [],
+                selectedDate = '{{ date('Y-m-d') }}',
+                calendarElem = null,
+                currentMonth = null,
+                currentYear = null,
+                appointmentsLoaded = false;
+
+            function formatDate(date) {
+                let d = new Date(date),
+                    month = '' + (d.getMonth() + 1),
+                    day = '' + d.getDate(),
+                    year = d.getFullYear();
+
+                if (month.length < 2)
+                    month = '0' + month;
+                if (day.length < 2)
+                    day = '0' + day;
+
+                return [year, month, day].join('-');
+            }
+
+            function onDateChange(_newDate) {
+                // ajax load appts list as markup directly from server
+                selectedDate = _newDate;
+                $.get('/pro-dashboard-events-display/' + selectedDate + '/' + selectedDate, function (_data) {
+                    let apptscontainer = $('#dna-dashboard-appointments');
+                    apptscontainer.html(_data);
+                    initFastLoad(apptscontainer);
+                    initMoes();
+                });
+            }
+
+            function loadEventDates(_refDate = false) {
+                let today = new Date(_refDate ? _refDate : '{{date('Y-m-d')}}'),
+                    firstOfMonth = new Date(today.getFullYear(), today.getMonth(), 1),
+                    lastOfMonth = new Date(today.getFullYear(), today.getMonth() + 1, 0);
+                selectedDate = null;
+                $('td.day.active').removeClass('active');
+                $.get('/pro-dashboard-event-dates/' +
+                    formatDate(firstOfMonth) + '/' +
+                    formatDate(lastOfMonth), (_data) => {
+                    datesWithEvents = _data;
+                    calendarElem.datepicker('refresh');
+                    currentMonth = firstOfMonth.getMonth();
+                    currentYear = firstOfMonth.getFullYear();
+                    if (!_refDate && $('td.day[data-date="{{$milliseconds}}"]:visible').length) {
+                        $('td.day[data-date="{{$milliseconds}}"]:visible').first().click();
+                    }
+                    appointmentsLoaded = true;
+                }, 'json');
+            }
+
+            function getFormattedCurrentDate() {
+                let date = new Date();
+                let day = date.getDate();
+                day = day < 10 ? '0' + day : day;
+                return date.getFullYear() + '-' + parseInt(date.getMonth() + 1) + '-' + day;
+            }
+
+            function init(_target = null) {
+
+                if(_target && _target !== '.stag-content') return;
+
+                calendarElem = $('.pro-dashboard-inline-calendar');
+                calendarElem.datepicker({
+                    dateFormat: 'yy-mm-dd',
+                    onSelect: function (_date) {
+                        onDateChange(_date);
+                    },
+                    onChangeMonthYear: function (_year, _month) {
+                        let date = _year + '-' + (_month < 10 ? '0' : '') + _month + '-05';
+                        loadEventDates(date);
+                    },
+                    beforeShowDay: function (d) {
+                        if (datesWithEvents && datesWithEvents.indexOf(formatDate(d)) !== -1) {
+                            return [true, 'has-events'];
+                        }
+                        return [true, 'no-events'];
+                    },
+                    defaultDate: 0
+                });
+
+                let date = new Date();
+                let day = date.getDate();
+                day = day < 10 ? '0' + day : day;
+                let mon = parseInt(date.getMonth() + 1);
+                mon = mon < 10 ? '0' + mon : mon;
+                let dateStr = date.getFullYear() + '-' + mon + '-' + day;
+                loadEventDates(dateStr);
+
+                onDateChange(getFormattedCurrentDate());
+                selectedDate = getFormattedCurrentDate();
+
+                $(document)
+                    .off('click', '.ack-client-pro-change')
+                    .on('click', '.ack-client-pro-change', function () {
+                        let trigger = $(this).text('…');
+                        $.post('/api/clientProChange/accept', {
+                            uid: $(this).attr('data-uid')
+                        }, _data => {
+                            if (!hasResponseError(_data)) {
+                                trigger.hide();
+                                let doneElem = $('<i class="text-success fa fa-check"></i>');
+                                doneElem.insertAfter(trigger);
+                                setTimeout(() => {
+                                    let ackContainer = trigger.closest('.ack-container');
+                                    trigger.closest('div').slideUp('fast', function () {
+                                        $(this).remove();
+                                        if (!ackContainer.find('>div').length) {
+                                            ackContainer.remove();
+                                        }
+                                    });
+                                }, 500);
+                            }
+                        }, 'json');
+                        return false;
+                    });
+
+                $(document)
+                    .off('click', '.ack-client-memo')
+                    .on('click', '.ack-client-memo', function () {
+                        let trigger = $(this).text('…');
+                        $.post('/api/clientMemo/stamp', {
+                            uid: $(this).attr('data-uid')
+                        }, _data => {
+                            if (!hasResponseError(_data)) {
+                                trigger.hide();
+                                let doneElem = $('<i class="text-success fa fa-check"></i>');
+                                doneElem.insertAfter(trigger);
+                                setTimeout(() => {
+                                    let tbody = trigger.closest('tbody');
+                                    trigger.closest('tr').remove();
+                                    if (!tbody.find('>tr').length) {
+                                        tbody.closest('.ack-container').remove();
+                                    }
+                                }, 500);
+                            }
+                        }, 'json');
+                        return false;
+                    });
+
+                $(document)
+                    .off('click', '.ack-pro-appt-update')
+                    .on('click', '.ack-pro-appt-update', function () {
+                        let trigger = $(this).text('…');
+                        $.post('/api/appointmentConfirmationDecision/acknowledgeAsAppointmentPro', {
+                            uid: $(this).attr('data-uid')
+                        }, _data => {
+                            if (!hasResponseError(_data)) {
+                                trigger.hide();
+                                let doneElem = $('<i class="text-success fa fa-check"></i>');
+                                doneElem.insertAfter(trigger);
+                                setTimeout(() => {
+                                    let ackContainer = trigger.closest('tbody');
+                                    trigger.closest('tr').slideUp('fast', function () {
+                                        $(this).remove();
+                                        if (!ackContainer.find('>tr').length) {
+                                            ackContainer.remove();
+                                        }
+                                    });
+                                }, 500);
+                            }
+                        }, 'json');
+                        return false;
+                    });
+
+                addMCHook('refreshDashboardAppointments', function() {
+                    onDateChange(selectedDate);
+                });
+            }
+
+            addMCInitializer('pro-dashboard', init, '#pro-dashboard-container');
+        })();
+    </script>
+@endsection

+ 62 - 0
resources/views/app/ps/dashboard/client-charts-pending-my-review.blade.php

@@ -0,0 +1,62 @@
+
+<?php 
+    $reviewRequests = $performer->pro->activeClientReviewRequests;
+?>
+@if(!count($reviewRequests))
+    <div class="mt-3 pl-2">
+        <p>No client review requests found.</p>
+    </div>
+@else
+<div class="table-responsive">
+    <table class="table table-striped table-sm table-bordered">
+        <thead class="bg-light">
+            <tr>
+                <th class="border-0 text-secondary text-nowrap">Created</th>
+                <th class="border-0 text-secondary">Patient</th>
+                <th class="border-0 text-secondary">Scoped Month Start</th>
+                <th class="border-0 text-secondary">Access Start</th>
+                <th class="border-0 text-secondary">Access End</th>                
+                <th class="border-0 text-secondary">Is Active</th>
+                <th class="border-0 text-secondary">Status</th>
+            </tr>
+        </thead>
+        <tbody>
+            @foreach($reviewRequests as $rr)
+            <tr>
+                <td class="text-nowrap">{{ friendlier_date($rr->created_at) }}</td>
+                <td>
+                <a native target="_blank" href="{{route('patients.view.dashboard', $rr->client)}}">
+						{{$rr->client->displayName()}}
+					</a>
+                </td>
+                <td>{{ friendlier_date($rr->scoped_month_start_date) }}</td>
+                <td>{{ friendlier_date($rr->access_start_date) }}</td>
+                <td>{{ friendlier_date($rr->access_end_date) }}</td>                
+                <td>
+                    @if($rr->is_active)
+                    <span class="text-success mr-2">YES
+                        @if($rr->reactivation_memo)
+                        <i class="fas fa-info-circle text-muted" title="{{ $rr->reactivation_memo }}"></i>
+                        @endif
+                    </span>
+                    @else
+                    <span class="text-secondary mr-2">NO
+                        @if($rr->deactivation_memo)
+                        <i class="fas fa-info-circle text-muted" title="{{ $rr->deactivation_memo }}"></i>
+                        @endif
+                    </span>
+                    @endif
+                </td>
+                <td>
+                    <span class="mr-2">{{ $rr->status ?? '--' }}
+                        @if($rr->status_memo )
+                        <i class="fas fa-info-circle text-muted" title="{{ $rr->status_memo }}"></i>
+                        @endif
+                    </span>
+                </td>
+            </tr>
+            @endforeach
+        </tbody>
+    </table>
+</div>
+@endif

+ 74 - 0
resources/views/app/ps/review-requests/list.blade.php

@@ -0,0 +1,74 @@
+@extends ('layouts.template')
+@section('content')
+<div class="p-3 mcp-theme-1">
+    <div class="">
+        @if(!$hideTitle)
+        <div class="d-flex align-items-center pb-2">
+            <h4 class="font-weight-bold mb-0 mr-3">Review Requests</h4>
+        </div>
+        @endif
+        <table class="table table-striped table-sm table-bordered">
+            <thead class="bg-light">
+                <tr>
+                    <th class="border-0 text-secondary text-nowrap">Created At</th>
+                    <th class="border-0 text-secondary text-nowrap">Chart #</th>
+                    <th class="border-0 text-secondary text-nowrap">Patient</th>
+                    <th class="border-0 text-secondary">Scoped Month Start Date</th>
+                    <th class="border-0 text-secondary">Access Start Date</th>
+                    <th class="border-0 text-secondary">Access End Date</th>
+                    <th class="border-0 text-secondary">Pro</th>
+                    <th class="border-0 text-secondary">Created By</th>
+                    <th class="border-0 text-secondary">Is Active</th>
+                    <th class="border-0 text-secondary">Status</th>
+                </tr>
+            </thead>
+            <tbody>
+                @foreach($reviewRequests as $rr)
+                <tr>
+                    <td class="text-nowrap">{{ friendly_date_time($rr->created_at) }}</td>
+                    <td>
+                    <a native target="_blank" href="{{route('patients.view.dashboard', $rr->client)}}">
+						{{$rr->client->chart_number}}
+					</a>
+                    </td>
+                    <a native target="_blank" href="{{route('patients.view.dashboard', $rr->client)}}">
+						{{$rr->client->displayName()}}
+					</a>
+                    </td>
+                    <td>{{ friendly_date($rr->scoped_month_start_date) }}</td>
+                    <td>{{ friendly_date($rr->access_start_date) }}</td>
+                    <td>{{ friendly_date($rr->access_end_date) }}</td>
+                    <td>{{ $rr->pro->displayName() }}</td>
+                    <td>{{ $rr->createdBySession->pro->displayName() }}</td>
+                    <td>
+                        @if($rr->is_active)
+                        <span class="text-success mr-2">YES
+                            @if($rr->reactivation_memo)
+                            <i class="fas fa-info-circle text-muted" title="{{ $rr->reactivation_memo }}"></i>
+                            @endif
+                        </span>
+                        @else
+                        <span class="text-secondary mr-2">NO
+                            @if($rr->deactivation_memo)
+                            <i class="fas fa-info-circle text-muted" title="{{ $rr->deactivation_memo }}"></i>
+                            @endif
+                        </span>
+                        @endif
+                    </td>
+                    <td>
+                        <span class="mr-2">{{ $rr->status ?? '--' }}
+                            @if($rr->status_memo )
+                            <i class="fas fa-info-circle text-muted" title="{{ $rr->status_memo }}"></i>
+                            @endif
+                        </span>
+                    </td>
+                </tr>
+                @endforeach
+            </tbody>
+        </table>
+        <div class="p-3">
+            {{$reviewRequests->withQueryString()->links()}}
+        </div>
+    </div>
+</div>
+@endsection

+ 4 - 1
resources/views/layouts/patient.blade.php

@@ -250,6 +250,9 @@ $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_creat
 					<li class="nav-item">
 						<a class="nav-link {{ strpos($routeName, 'patients.view.accounts') === 0 ? 'active' : '' }}" href="{{ route('patients.view.accounts', $patient) }}">Linked Accounts</a>
 					</li>
+					<li class="nav-item">
+						<a class="nav-link {{ $routeName === 'patients.view.review-requests' ? 'active' : '' }}" href="{{ route('patients.view.review-requests', ['patient' => $patient]) }}">Review Requests</a>
+					</li>
 				</ul>
 				<div class="mt-3 mcp-theme-1">
 					@yield('left-nav-content')
@@ -357,7 +360,7 @@ $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_creat
 					</div>
 					</div>
 
-					<div>
+					<div class="d-flex">
 						<span class="mr-2"><b>Best Time to Call:</b> {{ $patient->best_time_to_call ?? '-' }}</span>
 						@include('app.patient.partials.update-best-time-to-call')
 					</div>

+ 15 - 7
resources/views/layouts/template.blade.php

@@ -113,9 +113,11 @@
                             <i class="mr-1 fas fa-calendar-alt"></i> Appointments
                         </a>
                     </li>
-                @else
+                @elseif($pro->is_considered_for_dna)
                     <li class="nav-item"><a class="nav-link" href="{{ route('dna.dashboard') }}"><i class="mr-1 fas fa-home"></i> Home</a> </li>
                     <li class="nav-item"><a class="nav-link" href="{{ route('dna.patients') }}"><i class="mr-1 fas fa-user"></i> Patients</a> </li>
+                @else 
+                    <li class="nav-item"><a class="nav-link" href="{{ route('ps.dashboard') }}"><i class="mr-1 fas fa-home"></i> Home</a> </li>
                 @endif
 
 
@@ -137,11 +139,18 @@
                         @if($pro->is_considered_for_rme)
                         <a class="dropdown-item" href="{{ route('practice-management.rpm-matrix-rme') }}">RPM (RME)</a>
                         @endif
-                        <a class="dropdown-item" href="{{ route('practice-management.client-ccm-rm-status') }}">Client RM Status</a>
-
-                        <a class="dropdown-item" href="{{ route('practice-management.myTickets') }}">My Tickets</a>
-                        <a class="dropdown-item" href="{{ route('practice-management.myTextShortcuts') }}">My Text Shortcuts</a>
-                        <a class="dropdown-item" href="{{ route('practice-management.myFavorites') }}">My Favorites</a>
+                        @if( $pro->pro_type== 'ADMIN' || $pro->is_enrolled_as_mcp || $pro->is_considered_for_rmm || $pro->is_considered_for_rme || $pro->is_considered_for_dna)
+                            <a class="dropdown-item" href="{{ route('practice-management.client-ccm-rm-status') }}">Client RM Status</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.myTickets') }}">My Tickets</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.myTextShortcuts') }}">My Text Shortcuts</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.myFavorites') }}">My Favorites</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.my-flyers') }}">My Flyers</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.notes-pending-physician-supervisor-stamping') }}">Notes Pending Physician Supervisor Stamping</a>
+                        @else 
+                            <a class="dropdown-item" href="{{ route('ps.client-review-requests') }}">My Patient Chart Review Requests</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.myTickets') }}">My Bills</a>
+                            <a class="dropdown-item" href="{{ route('practice-management.financialTransactions') }}">Financial Transactions</a>
+                        @endif
 
                         @if($pro->is_enrolled_as_mcp && $pro->is_considered_for_mcp_assignment)
 
@@ -174,7 +183,6 @@
                             <a class="dropdown-item" href="{{ route('dna.myBills') }}">My Bills</a>
                             <a class="dropdown-item" href="{{ route('dna.myClinicalTeams') }}">My Clinical Teams</a>
                         @endif
-                        <a class="dropdown-item" href="{{ route('practice-management.my-flyers') }}">My Flyers</a>
                     </div>
                 </li>
 

+ 13 - 0
routes/web.php

@@ -1,6 +1,7 @@
 <?php
 
 use Illuminate\Support\Facades\Route;
+use App\Http\Controllers\SupervisingPhysicianController;
 
 /*
 |--------------------------------------------------------------------------
@@ -201,6 +202,16 @@ Route::middleware('pro.auth')->group(function () {
         });
     });
 
+
+    Route::name('ps.')->prefix('ps')->group(function () {
+        Route::get('dashboard', [SupervisingPhysicianController::class, 'dashboard'])->name('dashboard');
+        Route::get('client-review-requests', [SupervisingPhysicianController::class, 'clientReviewRequests'])->name('client-review-requests');
+        
+
+    });
+    
+
+
     //Route::get('test-gsheet', 'GsheetController@testGsheet');
 
     Route::name('admin.')->prefix('a')->middleware('pro.auth.admin')->group(function () {
@@ -242,6 +253,7 @@ Route::middleware('pro.auth')->group(function () {
 
 
         Route::get('my-flyers', 'PracticeManagementController@myFlyers')->name('my-flyers');
+        Route::get('notes-pending-physician-supervisor-stamping', 'PracticeManagementController@notesPendingPhysicianSupervisorStamping')->name('notes-pending-physician-supervisor-stamping');
 
         Route::get('rpm-matrix', 'PracticeManagementController@rpmMatrix')->name('rpmMatrix');
 
@@ -503,6 +515,7 @@ Route::middleware('pro.auth')->group(function () {
             Route::get('memos', 'PatientController@memos')->name('memos');
             Route::get('sms', 'PatientController@sms')->name('sms');
             Route::get('outgoing-sms-log', 'PatientController@outgoingSmsLog')->name('outgoing-sms-log');
+            Route::get('review-requests', 'PatientController@reviewRequests')->name('review-requests');
             Route::get('sms-numbers', 'PatientController@smsNumbers')->name('sms-numbers');
             Route::get('immunizations', 'PatientController@immunizations')->name('immunizations');
             Route::get('allergies', 'PatientController@allergies')->name('allergies');