Răsfoiți Sursa

Process notes (wip)

Vijayakrishnan 4 ani în urmă
părinte
comite
d70ee3c9c9

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

@@ -1108,6 +1108,9 @@ ORDER BY claim.created_at ASC
             "picked" => Note::where('is_cancelled', false)
                 ->whereNotNull('current_note_pickup_for_processing_id')
                 ->count(),
+            "bad" => Note::where('is_cancelled', false)
+                ->whereRaw("(detail_json)::json->>'isBad' = 'true'")
+                ->count(),
             "mode-1" => Note::where('is_cancelled', false)
                 ->where('is_signed_by_hcp', false)
                 ->whereRaw("((detail_json)::json->>'isBad' is null OR ((detail_json)::json->>'isBad')::text != 'true')")
@@ -1235,6 +1238,19 @@ ORDER BY claim.created_at ASC
         return  view('app.practice-management.picked-notes', compact('counts', 'notes'));
     }
 
+    public function badNotes(Request  $request) {
+        $counts = [
+            "unpicked" => Note::where('is_cancelled', false)
+                ->whereNull('current_note_pickup_for_processing_id')
+                ->count(),
+        ];
+        $notes = Note::where('is_cancelled', false)
+            ->whereRaw("(detail_json)::json->>'isBad' = 'true'")
+            ->orderBy('effective_dateest', 'ASC')
+            ->paginate();
+        return  view('app.practice-management.bad-notes', compact('counts', 'notes'));
+    }
+
     public function currentMbClaim(Request $request, $claimUid) {
         $claim = Claim::where('uid', $claimUid)->first();
         return json_encode(MBClaim::where('claim_version_id', $claim->currentVersion->id)->first());

+ 32 - 0
resources/views/app/patient/note/dashboard.blade.php

@@ -47,6 +47,38 @@
                 </span>
                 @if($pro->pro_type === 'ADMIN')
                     <a href="#" class="print-note ml-3 btn btn-sm btn-primary text-white font-weight-bold invisible"><i class="fa fa-print"></i> Print</a>
+                    <?php
+                    $isBad = false;
+                    if($note->detail_json) {
+                        $parsed = json_decode($note->detail_json);
+                        $isBad = $parsed && @$parsed->isBad;
+                    }
+                    ?>
+                    @if(!$isBad)
+                        <div moe relative>
+                            <a href="#" start show  class="print-note ml-2 btn btn-sm btn-danger text-white font-weight-bold invisible"><i class="fa fa-exclamation-triangle"></i> Mark as Bad Note</a>
+                            <form url="/api/note/markNoteAsBad" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="{{$note->uid}}">
+                                <p class="min-width-200px">Mark this note as <b>bad</b>?</p>
+                                <div>
+                                    <button submit class="btn btn-sm btn-success mr-1">Yes</button>
+                                    <button cancel class="btn btn-sm btn-default border">No</button>
+                                </div>
+                            </form>
+                        </div>
+                    @else
+                        <div moe relative>
+                            <a href="#" start show class="print-note ml-2 btn btn-sm btn-info text-white font-weight-bold invisible"><i class="fa fa-undo"></i> Undo mark as Bad Note</a>
+                            <form url="/api/note/undoMarkNoteAsBad" class="mcp-theme-1">
+                                <input type="hidden" name="uid" value="{{$note->uid}}">
+                                <p class="min-width-200px">Mark this note as <b>not bad</b>?</p>
+                                <div>
+                                    <button submit class="btn btn-sm btn-success mr-1">Yes</button>
+                                    <button cancel class="btn btn-sm btn-default border">No</button>
+                                </div>
+                            </form>
+                        </div>
+                    @endif
                 @endif
             </div>
             @if($patient->has_mcp_done_onboarding_visit !== 'YES')

+ 67 - 0
resources/views/app/practice-management/bad-notes.blade.php

@@ -0,0 +1,67 @@
+@extends ('layouts/template')
+
+@section('content')
+
+    <div class="p-3 mcp-theme-1">
+
+        <div class="d-flex align-items-baseline pb-3">
+            <h2 class="font-size-16 font-weight-bold m-0">Bad Notes</h2>
+            <a class="ml-auto" href="{{route('practice-management.process-notes')}}">Process Notes ({{$counts['unpicked']}})</a>
+        </div>
+
+        <div class="card">
+
+            <div class="card-body p-0">
+
+                <table class="table table-sm table-condensed table-striped p-0 m-0">
+                    <thead class="bg-light">
+                    <tr>
+                        <th class="border-0">Effective Date</th>
+                        <th class="border-0">Patient</th>
+                        <th class="border-0 w-50">Picked Up By</th>
+                        <th class="border-0"></th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    @foreach ($notes as $note)
+                        <tr class="{{ $note->is_cancelled ? 'cancelled-item always-clickable' : '' }}">
+                            <td class="">
+                                <a href="/patients/view/{{ $note->client->uid }}/notes/view/{{ $note->uid }}" class="font-weight-bold text-nowrap">
+                                    {{ friendly_date_time($note->effective_dateest, false) }}
+                                </a>
+                                <span class="ml-1">{{ $note->is_cancelled ? '[cancelled]' : '' }}</span>
+                            </td>
+                            <td class="">
+                                <a href="/patients/view/{{ $note->client->uid }}" class="text-nowrap">{{ $note->client->displayName() }}</a>
+                            </td>
+                            <td class="text-nowrap">
+                                @if(@$note->currentNotePickupForProcessing->pro)
+                                    <b>{{ $note->currentNotePickupForProcessing->pro->displayName()}}</b>
+                                    <span class="text-sm mx-1">at</span>
+                                    <span class="text-secondary">{{ friendlier_date_time($note->currentNotePickupForProcessing->created_at)}}</span>
+                                @else
+                                -
+                                @endif
+                            </td>
+                            <td class="">
+                                <a native target="_blank"
+                                   open-in-stag-popup
+                                   update-parent
+                                   mc-initer="note-single"
+                                   title="Note Details"
+                                   href="/patients/view/{{ $note->client->uid }}/notes/view/{{ $note->uid }}">
+                                    View
+                                </a>
+                            </td>
+                        </tr>
+                    @endforeach
+                    </tbody>
+                </table>
+            </div>
+        </div>
+        <div class="mt-3">
+            {{$notes->links()}}
+        </div>
+    </div>
+
+@endsection

+ 2 - 0
resources/views/app/practice-management/process-notes.blade.php

@@ -15,6 +15,8 @@
         <div class="d-flex align-items-baseline pb-3 border-bottom mb-3">
             <h2 class="font-size-16 font-weight-bold m-0">Process Notes</h2>
             <a class="ml-auto" href="{{route('practice-management.picked-notes')}}">Picked Notes ({{$counts['picked']}})</a>
+            <span class="mx-2 text-secondary">|</span>
+            <a class="text-danger" href="{{route('practice-management.bad-notes')}}">Bad Notes ({{$counts['bad']}})</a>
         </div>
         <div class="d-flex align-items-center border-bottom mb-3 pb-3">
             <span class="mr-3">Notes: </span>

+ 1 - 0
routes/web.php

@@ -97,6 +97,7 @@ Route::middleware('pro.auth')->group(function () {
         Route::get('process-claims', 'PracticeManagementController@processClaims')->name('process-claims');
         Route::get('process-notes', 'PracticeManagementController@processNotes')->name('process-notes');
         Route::get('picked-notes', 'PracticeManagementController@pickedNotes')->name('picked-notes');
+        Route::get('bad-notes', 'PracticeManagementController@badNotes')->name('bad-notes');
         Route::get('get-next-note/{mode}', 'PracticeManagementController@getNextNote')->name('get-next-note');