Selaa lähdekoodia

CM measurements matrix (open-in-popup + ADMIN updates)

Vijayakrishnan 3 vuotta sitten
vanhempi
commit
cd58c3fc20

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

@@ -455,4 +455,11 @@ class PatientController extends Controller
     public function accounts(Request $request, Client $patient) {
         return view('app.patient.accounts', compact('patient'));
     }
+
+    public function careMonthMatrix(Request $request, CareMonth $careMonth) {
+        return view('app.patient.care-month.matrix', [
+            'patient' => $careMonth->patient,
+            'careMonth' => $careMonth,
+        ]);
+    }
 }

+ 109 - 84
resources/views/app/patient/care-month/_matrix.blade.php

@@ -2,18 +2,26 @@
 $days = $patient->cmMeasurementsMatrix($careMonth);
 
 $performerRole = false;
-if ($careMonth->mcp_pro_id === $pro->id) {
+if ($pro->pro_type === 'ADMIN') {
+    $performerRole = 'ADMIN';
+}
+else if ($careMonth->mcp_pro_id === $pro->id) {
     $performerRole = 'MCP';
 } else if ($careMonth->rme_pro_id === $pro->id || $careMonth->rmm_pro_id === $pro->id) {
     $performerRole = 'NON-HCP';
 }
 
-$unstamped = [];
+$unstampedMCP = [];
+$unstampedNonHCP = [];
 foreach ($days as $k => $day) {
-    $unstamped[$k] = [];
+    $unstampedMCP[$k] = [];
+    $unstampedNonHCP[$k] = [];
     foreach ($days[$k] as $mIndex => $m) {
-        if(($performerRole === 'MCP' && !$m->has_been_stamped_by_mcp) || ($performerRole === 'NON-MCP' && !$m->has_been_stamped_by_non_hcp)) {
-            $unstamped[$k][] = $m->measurement_uid;
+        if(!$m->has_been_stamped_by_mcp) {
+            $unstampedMCP[$k][] = $m->measurement_uid;
+        }
+        if(!$m->has_been_stamped_by_non_hcp) {
+            $unstampedNonHCP[$k][] = $m->measurement_uid;
         }
     }
 }
@@ -25,7 +33,7 @@ foreach ($days as $k => $day) {
     <tr>
         <th class="px-2 text-secondary align-bottom" rowspan="2">Date</th>
         <th class="px-2 text-secondary border-bottom-0" colspan="4">Measurements</th>
-        <th class="px-2 text-secondary align-bottom" rowspan="2">Stamp + Entry</th>
+        <th class="px-2 text-secondary align-bottom" rowspan="2">{{$performerRole === 'ADMIN' ? 'Stamp Status' : 'Stamp + Entry'}}</th>
         <th class="px-2 text-secondary" rowspan="2">Entries</th>
     </tr>
     <tr>
@@ -128,46 +136,61 @@ foreach ($days as $k => $day) {
             </td>
             @if($mIndex === 0)
                 <td rowspan="{{count($days[$k])}}">
-                    @if(count($unstamped[$k]))
-                        <div moe relative class="btn-stamp-all">
-                            <a href="#" start show class="">
-                                Stamp All &amp; Create Entry
-                            </a>
-                            <form url="/api/measurement/bulkStampAsMcp">
-                                <input type="hidden" name="measurementUids" value="{{implode('|', $unstamped[$k])}}">
-                                <p class="mb-1">Stamp all measurements?</p>
-                                <div class="mb-2 border border-info p-2 mt-2 bg-light width-300px">
-                                    <span>I have had interactive communication with <b>{{$patient->displayName()}}</b> during this care month.</span>
-                                    <div class="d-flex border-top mt-2">
-                                        <label class="mt-2 mb-0 d-inline-flex align-items-center mr-3">
-                                            <input type="radio" class="mr-2" name="communicatedToPatient" value="true" required>
-                                            <span>Yes</span>
-                                        </label>
-                                        <label class="mt-2 mb-0 d-inline-flex align-items-center">
-                                            <input type="radio" class="mr-2" name="communicatedToPatient" value="false" checked required>
-                                            <span>No</span>
-                                        </label>
-                                    </div>
-                                </div>
-                                <div class="mb-2">
-                                    <label class="mb-1 text-secondary text-sm">Memo</label>
-                                    <textarea class="form-control form-control-sm" name="memo"></textarea>
-                                </div>
-                                <div class="mb-2">
-                                    <label class="mb-1 text-secondary text-sm">Minutes</label>
-                                    <input type="number" min="1" max="15" class="form-control form-control-sm w-100" name="entryMinutes"
-                                           value="2" placeholder="Time (mins.)" required>
-                                </div>
-                                <div class="form-group m-0">
-                                    <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
-                                    <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
-                                </div>
-                            </form>
+                    @if($performerRole === 'ADMIN')
+                        <div class="my-1">
+                            <span class="text-secondary">MCP Unstamped:</span>
+                            <b class="{{count($unstampedMCP[$k]) ? '' : 'text-secondary font-weight-normal'}}">{{count($unstampedMCP[$k])}}</b>
                         </div>
+                        <div class="">
+                            <span class="text-secondary">Non-HCP Unstamped:</span>
+                            <b class="{{count($unstampedNonHCP[$k]) ? '' : 'text-secondary font-weight-normal'}}">{{count($unstampedNonHCP[$k])}}</b>
+                        </div>
+                    @elseif($performerRole === 'MCP')
+                        @if(count($unstampedMCP[$k]))
+                            <div moe relative class="btn-stamp-all">
+                                <a href="#" start show class="">
+                                    Stamp All &amp; Create Entry
+                                </a>
+                                <form url="/api/measurement/bulkStampAsMcp">
+                                    <input type="hidden" name="measurementUids" value="{{implode('|', $unstampedMCP[$k])}}">
+                                    <p class="mb-1">Stamp all measurements?</p>
+                                    <div class="mb-2 border border-info p-2 mt-2 bg-light width-300px">
+                                        <span>I have had interactive communication with <b>{{$patient->displayName()}}</b> during this care month.</span>
+                                        <div class="d-flex border-top mt-2">
+                                            <label class="mt-2 mb-0 d-inline-flex align-items-center mr-3">
+                                                <input type="radio" class="mr-2" name="communicatedToPatient" value="true" required>
+                                                <span>Yes</span>
+                                            </label>
+                                            <label class="mt-2 mb-0 d-inline-flex align-items-center">
+                                                <input type="radio" class="mr-2" name="communicatedToPatient" value="false" checked required>
+                                                <span>No</span>
+                                            </label>
+                                        </div>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="mb-1 text-secondary text-sm">Memo</label>
+                                        <textarea class="form-control form-control-sm" name="memo"></textarea>
+                                    </div>
+                                    <div class="mb-2">
+                                        <label class="mb-1 text-secondary text-sm">Minutes</label>
+                                        <input type="number" min="1" max="15" class="form-control form-control-sm w-100" name="entryMinutes"
+                                               value="2" placeholder="Time (mins.)" required>
+                                    </div>
+                                    <div class="form-group m-0">
+                                        <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
+                                        <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
+                                    </div>
+                                </form>
+                            </div>
+                        @else
+                            <span class="text-secondary text-sm d-flex align-items-center">
+                                <i class="fa fa-check mr-2"></i>
+                                <span>All Stamped</span>
+                            </span>
+                        @endif
+                    @elseif($performerRole === 'NON-MCP')
                     @endif
                 </td>
-            @endif
-            @if($mIndex === 0)
                 <td rowspan="{{count($days[$k])}}">
                     @foreach($m->entries as $entry)
                         <div class="my-1 d-flex align-items-start flex-nowrap">
@@ -176,51 +199,53 @@ foreach ($days as $k => $day) {
                             <span class="text-secondary inline-html-container flex-grow-1">{!! $entry->content_text !!}</span>
                         </div>
                     @endforeach
-                    <div moe large>
-                        <a start show class="py-0 mb-3 text-sm">+ Add</a>
-                        <form url="/api/careMonthEntry/createForRm">
-                            <input type="hidden" name="careMonthUid" value="{{ $careMonth->uid }}">
-                            <div class="mb-2">
-                                <div class="row">
-                                    <div class="col-4 pr-0">
-                                        <select class="form-control form-control-sm w-100" name="proUid" provider-search data-pro-uid="{{ @$pro->uid }}"
-                                                required>
-                                            <option value="">-- Select Pro --</option>
-                                        </select>
-                                    </div>
-                                    <div class="col-4 pr-0">
-                                        <?php
-                                        $sD = strtotime($careMonth->start_date);
-                                        $y = date('Y', $sD);
-                                        $m0 = date('m', $sD);
-                                        $d = date('t', $sD);
-                                        $yCurrent = date('Y');
-                                        $mCurrent = date('m');
-                                        ?>
-                                        <input autofocus type="date" min="{{ date($y . '-' . $m0 . '-01') }}" max="{{ date($y . '-' . $m0 . '-' . $d) }}"
-                                               value="{{$m->dateYMD}}"
-                                               class="form-control form-control-sm w-100" name="effectiveDate"
-                                               placeholder="Effective Date" required>
-                                    </div>
-                                    <div class="col-4">
-                                        <input type="number" min="0" max="15" class="form-control form-control-sm w-100 cm-time-value" name="timeInMinutes"
-                                               value="2" placeholder="Time (mins.)" required>
+                    @if($performerRole === 'MCP' || $performerRole === 'NON-HCP')
+                        <div moe large>
+                            <a start show class="py-0 mb-3 text-sm">+ Add</a>
+                            <form url="/api/careMonthEntry/createForRm">
+                                <input type="hidden" name="careMonthUid" value="{{ $careMonth->uid }}">
+                                <div class="mb-2">
+                                    <div class="row">
+                                        <div class="col-4 pr-0">
+                                            <select class="form-control form-control-sm w-100" name="proUid" provider-search data-pro-uid="{{ @$pro->uid }}"
+                                                    required>
+                                                <option value="">-- Select Pro --</option>
+                                            </select>
+                                        </div>
+                                        <div class="col-4 pr-0">
+                                            <?php
+                                            $sD = strtotime($careMonth->start_date);
+                                            $y = date('Y', $sD);
+                                            $m0 = date('m', $sD);
+                                            $d = date('t', $sD);
+                                            $yCurrent = date('Y');
+                                            $mCurrent = date('m');
+                                            ?>
+                                            <input autofocus type="date" min="{{ date($y . '-' . $m0 . '-01') }}" max="{{ date($y . '-' . $m0 . '-' . $d) }}"
+                                                   value="{{$m->dateYMD}}"
+                                                   class="form-control form-control-sm w-100" name="effectiveDate"
+                                                   placeholder="Effective Date" required>
+                                        </div>
+                                        <div class="col-4">
+                                            <input type="number" min="0" max="15" class="form-control form-control-sm w-100 cm-time-value" name="timeInMinutes"
+                                                   value="2" placeholder="Time (mins.)" required>
+                                        </div>
                                     </div>
                                 </div>
-                            </div>
-                            <div class="mb-2">
-                                <div class="row">
-                                    <div class="col-12">
-                                        <div cm-rte data-content="Reviewed/managed patient measurements" data-name="contentText"></div>
+                                <div class="mb-2">
+                                    <div class="row">
+                                        <div class="col-12">
+                                            <div cm-rte data-content="Reviewed/managed patient measurements" data-name="contentText"></div>
+                                        </div>
                                     </div>
                                 </div>
-                            </div>
-                            <div class="d-flex align-items-center">
-                                <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
-                                <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
-                            </div>
-                        </form>
-                    </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </div>
+                    @endif
                 </td>
             @endif
         </tr>

+ 5 - 0
resources/views/app/patient/care-month/matrix.blade.php

@@ -0,0 +1,5 @@
+@extends ('layouts.patient')
+
+@section('inner-content')
+    @include('app.patient.care-month._matrix')
+@endsection

+ 9 - 0
resources/views/app/patient/care-months.blade.php

@@ -112,6 +112,7 @@
                 <th class="px-2 text-secondary border-bottom-0">MCP</th>
                 <th class="px-2 text-secondary border-bottom-0">RMM</th>
                 <th class="px-2 text-secondary border-bottom-0">RME</th>
+                <th class="px-2 text-secondary border-bottom-0">Matrix</th>
             </tr>
             </thead>
             <tbody>
@@ -133,6 +134,14 @@
                     <td class="px-2">{{$careMonth->mcp ? $careMonth->mcp->name_display : '-'}}</td>
                     <td class="px-2">{{$careMonth->rmmPro ? $careMonth->rmmPro->name_display : '-'}}</td>
                     <td class="px-2">{{$careMonth->rmePro ? $careMonth->rmePro->name_display : '-'}}</td>
+                    <td class="px-2">
+                        <a native target="_blank"
+                           open-in-stag-popup
+                           title="Care Month Matrix: {{date('M Y', strtotime($careMonth->start_date))}}"
+                           href="/patient-care-month-matrix/{{$careMonth->uid}}">
+                            View
+                        </a>
+                    </td>
                 </tr>
             @endforeach
             </tbody>

+ 2 - 0
routes/web.php

@@ -369,6 +369,8 @@ Route::middleware('pro.auth')->group(function () {
 
     Route::get('/remote-monitoring-measurements/{careMonth}', 'PracticeManagementController@remoteMonitoringMeasurements')->name('remote-monitoring-measurements');
 
+    Route::get('/patient-care-month-matrix/{careMonth}', 'PatientController@careMonthMatrix')->name('patient-care-month-matrix');
+
     // fdb playground
     Route::get('/fdb-pg-rx', 'FDBPGController@rx')->name('fdb-pg-rx');
     Route::get('/fdb-med-suggest', 'FDBPGController@medSuggest');