Переглянути джерело

Client dashboard UI update

Vijayakrishnan 4 роки тому
батько
коміт
336a7bb02e

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

@@ -21,7 +21,11 @@ class PatientController extends Controller
         $mcpPros = Pro::where('is_enrolled_as_mcp', true)->get();
         $facilities = Facility::where('is_active', true)->get();
         $devices = BDTDevice::where('is_active', true)->get();
-        return view('app.patient.dashboard', compact('patient', 'facilities', 'devices'));
+        $dxInfoLines = ClientInfoLine::where('client_id', $patient->id)
+            ->where('category', 'dx')
+            ->where('is_removed', false)
+            ->get();
+        return view('app.patient.dashboard', compact('patient', 'facilities', 'devices', 'dxInfoLines'));
     }
 
     public function actionItems(Request $request, Client $patient )
@@ -57,11 +61,11 @@ class PatientController extends Controller
 
     public function dxAndFocusAreas(Request $request, Client $patient )
     {
-        $infoLines = ClientInfoLine::where('client_id', $patient->id)
+        $dxInfoLines = ClientInfoLine::where('client_id', $patient->id)
             ->where('category', 'dx')
             ->where('is_removed', false)
             ->get();
-        return view('app.patient.dx-and-focus-areas', compact('patient', 'infoLines'));
+        return view('app.patient.dx-and-focus-areas', compact('patient', 'dxInfoLines'));
     }
 
     public function careTeam(Request $request, Client $patient )

+ 16 - 8
resources/views/app/patient/dashboard.blade.php

@@ -8,11 +8,25 @@
         <?php $infoLines = !$infoLines ? [] : $infoLines; ?>
         <?php $vitalLabels = ['Ht. (in.)','Wt. (lbs.)','Temp. (F)','Pulse','Resp.','Pulse Ox.','SBP','DBP','Smoking Status', 'BMI']; ?>
 
+        <div class="row mb-2">
+            <div class="col-12">
+                {{-- appointments --}}
+                @include('app/patient/partials/appointments')
+            </div>
+        </div>
+
+        <div class="row mb-3">
+            <div class="col-12">
+                {{-- dx --}}
+                @include('app/patient/partials/dx-table')
+            </div>
+        </div>
+
 	    <div class="row">
             <div class="col-6">
 
-                {{-- appointments --}}
-                @include('app/patient/partials/appointments')
+                {{-- rx --}}
+                @include('app/patient/partials/rx')
 
                 {{-- devices --}}
                 <?php $availableDevices = 0; ?>
@@ -284,15 +298,9 @@
                 {{-- allergies --}}
                 @include('app/patient/partials/allergies')
 
-                {{-- rx --}}
-                @include('app/patient/partials/rx')
-
             </div>
             <div class="col-6">
 
-                {{-- dx --}}
-                @include('app/patient/partials/dx')
-
                 <div class="mt-2">
                     <div class="d-flex align-items-center mb-2 py-2 border-top border-bottom">
                         <h6 class="my-0 font-weight-bold text-secondary">History</h6>

+ 21 - 62
resources/views/app/patient/dx-and-focus-areas.blade.php

@@ -19,6 +19,12 @@
                             <option value="Acute">Acute</option>
                         </select>
                     </div>
+                    <div class="mb-2">
+                        <label class="m-0 text-left d-flex align-items-center">
+                            <input type="checkbox" name="IsCurrent" value="">
+                            <span class="ml-1">Is Current?</span>
+                        </label>
+                    </div>
                     <div class="mb-2"><input type="text" class="form-control form-control-sm" name="Prognosis" value="" placeholder="Prognosis"></div>
                     <div class="mb-2"><textarea type="text" class="form-control form-control-sm" name="Treatment Goal" value="" placeholder="Treatment Goal"></textarea></div>
                     <div class="mb-2"><textarea type="text" class="form-control form-control-sm" name="Treatment Plan" value="" placeholder="Treatment Plan"></textarea></div>
@@ -32,10 +38,10 @@
         <table class="table table-striped table-sm table-bordered mb-0">
             <thead>
             <tr>
-                {{--<th class="px-2 text-secondary">Category</th>--}}
                 <th class="px-2 text-secondary">Title</th>
                 <th class="px-2 text-secondary">ICD</th>
                 <th class="px-2 text-secondary">Chronic or Acute</th>
+                <th class="px-2 text-secondary">Current?</th>
                 <th class="px-2 text-secondary">Prognosis</th>
                 <th class="px-2 text-secondary">Treatment Goal</th>
                 <th class="px-2 text-secondary">Treatment Plan</th>
@@ -45,67 +51,20 @@
             </tr>
             </thead>
             <tbody>
-            @foreach($infoLines as $line)
-                <tr>
-                    <td class="px-2">{{$line->content_text}}</td>
-                    <td class="px-2">{{ @$line->contentDetail()->{"ICD"} }}</td>
-                    <td class="px-2">{{ @$line->contentDetail()->{"Chronic or Acute"} }}</td>
-                    <td class="px-2">{{ @$line->contentDetail()->{"Prognosis"} }}</td>
-                    <td class="px-2">{{ @$line->contentDetail()->{"Treatment Goal"} }}</td>
-                    <td class="px-2">{{ @$line->contentDetail()->{"Treatment Plan"} }}</td>
-                    <td class="px-2">{{ $line->createdBySession && $line->createdBySession->pro ? $line->createdBySession->pro->displayName() : '-'}}</td>
-                    <td class="px-2">{{ friendly_date_time($line->created_at) }}</td>
-                    <td class="px-2 text-center delete-column">
-                        <span moe 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/clientInfoLine/updateContent" right>
-                                <input type="hidden" name="uid" value="{{ $line->uid }}">
-                                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
-                                <input type="hidden" name="category" value="dx">
-                                <div class="mb-2">
-                                    <input type="text" class="form-control form-control-sm" name="ICD" value="{{ @$line->contentDetail()->{"ICD"} }}" placeholder="ICD">
-                                </div>
-                                <div class="mb-2">
-                                    <input type="text" class="form-control form-control-sm" name="contentText" value="{{$line->content_text}}" placeholder="Title">
-                                </div>
-                                <div class="mb-2">
-                                    <select name="Chronic or Acute" class="form-control form-control-sm pl-1">
-                                        <option value="">Chronic or Acute (select one)</option>
-                                        <option {{ @$line->contentDetail()->{"Chronic or Acute"} === 'Chronic' ? 'selected' : '' }} value="Chronic">Chronic</option>
-                                        <option {{ @$line->contentDetail()->{"Chronic or Acute"} === 'Acute' ? 'selected' : '' }} value="Acute">Acute</option>
-                                    </select>
-                                </div>
-                                <div class="mb-2">
-                                    <input type="text" class="form-control form-control-sm" name="Prognosis" value="{{ @$line->contentDetail()->{"Prognosis"} }}" placeholder="Prognosis">
-                                </div>
-                                <div class="mb-2">
-                                    <textarea type="text" class="form-control form-control-sm" name="Treatment Goal" placeholder="Treatment Goal">{{ @$line->contentDetail()->{"Treatment Goal"} }}</textarea>
-                                </div>
-                                <div class="mb-2">
-                                    <textarea type="text" class="form-control form-control-sm" name="Treatment Plan" placeholder="Treatment Plan">{{ @$line->contentDetail()->{"Treatment Plan"} }}</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>
-                        </span>
-                        <span moe relative>
-                            <a start show class="on-hover-opaque"><i class="fa fa-trash-alt text-danger"></i></a>
-                            <form url="/api/clientInfoLine/remove" right>
-                                <input type="hidden" name="uid" value="{{ $line->uid }}">
-                                <p class="small">Are you sure you want to delete this entry?</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>
-                        </span>
-                    </td>
-                </tr>
-            @endforeach
+            <?php
+            $currentDxs = new \Illuminate\Support\Collection();
+            $previousDxs = new \Illuminate\Support\Collection();
+            foreach($dxInfoLines as $line) {
+                if(@$line->contentDetail()->{"IsCurrent"}) {
+                    $currentDxs->add($line);
+                }
+                else {
+                    $previousDxs->add($line);
+                }
+            }
+            ?>
+            @include('app.patient.partials.dx-table-row', ['dxRows' => $currentDxs, 'showCreated' => true])
+            @include('app.patient.partials.dx-table-row', ['dxRows' => $previousDxs, 'showCreated' => true])
             </tbody>
         </table>
     </div>

+ 4 - 4
resources/views/app/patient/partials/appointments.blade.php

@@ -1,5 +1,5 @@
-<div class="mt-2 pb-1">
-    <div class="d-flex align-items-center mb-2 py-2 border-top border-bottom">
+<div class="mt-0 pb-1">
+    <div class="d-flex align-items-center mb-2 pb-2 border-bottom">
         <h6 class="my-0 font-weight-bold text-secondary">Appointments</h6>
         {{--<span class="mx-2 text-secondary">|</span>
         <div moe center>
@@ -9,11 +9,11 @@
         <span class="mx-2 text-secondary">|</span>
         <a href="/patients/view/{{$patient->uid}}/manage-appointment">Add</a>
     </div>
-    <table class="table table-sm border-0 my-0 mx-2">
+    <table class="table table-sm border-0 m-0">
         <tbody>
         @foreach($patient->appointments as $appointment)
             <tr>
-                <td class="text-black p-0 border-0">
+                <td class="text-black p-0 border-0 pb-1">
                     <div class="pb-0">
                         {{--<div relative moe center>
                             <a class="on-hover-opaque" start show title="Update">

+ 78 - 0
resources/views/app/patient/partials/dx-table-row.blade.php

@@ -0,0 +1,78 @@
+@foreach($dxRows as $line)
+    <tr>
+        <td class="px-2">{{$line->content_text}}</td>
+        <td class="px-2">{{ @$line->contentDetail()->{"ICD"} }}</td>
+        <td class="px-2">{{ @$line->contentDetail()->{"Chronic or Acute"} }}</td>
+        <td class="px-2">{!! @$line->contentDetail()->{"IsCurrent"} ? '<b>Yes</b>' : 'No' !!}</td>
+        <td class="px-2">{{ @$line->contentDetail()->{"Prognosis"} }}</td>
+        <td class="px-2">{{ @$line->contentDetail()->{"Treatment Goal"} }}</td>
+        <td class="px-2">{{ @$line->contentDetail()->{"Treatment Plan"} }}</td>
+        @if(@$showCreated)
+        <td class="px-2">{{ $line->createdBySession && $line->createdBySession->pro ? $line->createdBySession->pro->displayName() : '-'}}</td>
+        <td class="px-2">{{ friendly_date_time($line->created_at) }}</td>
+        @endif
+        <td class="px-2 text-center delete-column">
+                        <span moe 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/clientInfoLine/updateContent" right>
+                                <input type="hidden" name="uid" value="{{ $line->uid }}">
+                                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                                <input type="hidden" name="category" value="dx">
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="ICD"
+                                           value="{{ @$line->contentDetail()->{"ICD"} }}" placeholder="ICD">
+                                </div>
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="contentText"
+                                           value="{{$line->content_text}}" placeholder="Title">
+                                </div>
+                                <div class="mb-2">
+                                    <select name="Chronic or Acute" class="form-control form-control-sm pl-1">
+                                        <option value="">Chronic or Acute (select one)</option>
+                                        <option
+                                            {{ @$line->contentDetail()->{"Chronic or Acute"} === 'Chronic' ? 'selected' : '' }} value="Chronic">Chronic</option>
+                                        <option
+                                            {{ @$line->contentDetail()->{"Chronic or Acute"} === 'Acute' ? 'selected' : '' }} value="Acute">Acute</option>
+                                    </select>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="m-0 text-left d-flex align-items-center">
+                                        <input type="checkbox" name="IsCurrent" {{ @$line->contentDetail()->{"IsCurrent"} ? 'checked' : '' }}>
+                                        <span class="ml-1">Is Current?</span>
+                                    </label>
+                                </div>
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="Prognosis"
+                                           value="{{ @$line->contentDetail()->{"Prognosis"} }}" placeholder="Prognosis">
+                                </div>
+                                <div class="mb-2">
+                                    <textarea type="text" class="form-control form-control-sm" name="Treatment Goal"
+                                              placeholder="Treatment Goal">{{ @$line->contentDetail()->{"Treatment Goal"} }}</textarea>
+                                </div>
+                                <div class="mb-2">
+                                    <textarea type="text" class="form-control form-control-sm" name="Treatment Plan"
+                                              placeholder="Treatment Plan">{{ @$line->contentDetail()->{"Treatment Plan"} }}</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>
+                        </span>
+            <span moe relative>
+                            <a start show class="on-hover-opaque"><i class="fa fa-trash-alt text-danger"></i></a>
+                            <form url="/api/clientInfoLine/remove" right>
+                                <input type="hidden" name="uid" value="{{ $line->uid }}">
+                                <p class="small">Are you sure you want to delete this entry?</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>
+                        </span>
+        </td>
+    </tr>
+@endforeach

+ 90 - 0
resources/views/app/patient/partials/dx-table.blade.php

@@ -0,0 +1,90 @@
+<div class="border-top pt-2">
+    <div class="d-flex align-items-center pb-2">
+        <h4 class="font-weight-bold m-0">Dx and Focus Areas</h4>
+        <span class="mx-2 text-secondary">|</span>
+        <div moe>
+            <a start show class="">Add</a>
+            <form url="/api/clientInfoLine/create">
+                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                <input type="hidden" name="category" value="dx">
+                <div class="mb-2"><input type="text" class="form-control form-control-sm" name="ICD" value="" placeholder="ICD"></div>
+                <div class="mb-2"><input type="text" class="form-control form-control-sm" name="contentText" value="" placeholder="Title"></div>
+                <div class="mb-2">
+                    <select name="Chronic or Acute" class="form-control form-control-sm pl-1">
+                        <option value="">Chronic or Acute (select one)</option>
+                        <option value="Chronic">Chronic</option>
+                        <option value="Acute">Acute</option>
+                    </select>
+                </div>
+                <div class="mb-2">
+                    <label class="m-0 text-left d-flex align-items-center">
+                        <input type="checkbox" name="IsCurrent" value="">
+                        <span class="ml-1">Is Current?</span>
+                    </label>
+                </div>
+                <div class="mb-2"><input type="text" class="form-control form-control-sm" name="Prognosis" value="" placeholder="Prognosis"></div>
+                <div class="mb-2"><textarea type="text" class="form-control form-control-sm" name="Treatment Goal" value="" placeholder="Treatment Goal"></textarea></div>
+                <div class="mb-2"><textarea type="text" class="form-control form-control-sm" name="Treatment Plan" value="" placeholder="Treatment Plan"></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>
+        </div>
+    </div>
+    <table class="table table-striped table-sm table-bordered mb-0">
+        <thead>
+        <tr>
+            <th class="px-2 text-secondary">Title</th>
+            <th class="px-2 text-secondary">ICD</th>
+            <th class="px-2 text-secondary">Chronic or Acute</th>
+            <th class="px-2 text-secondary">Current?</th>
+            <th class="px-2 text-secondary">Prognosis</th>
+            <th class="px-2 text-secondary">Treatment Goal</th>
+            <th class="px-2 text-secondary">Treatment Plan</th>
+            <th class="px-2 text-secondary delete-column">&nbsp;</th>
+        </tr>
+        </thead>
+        <tbody>
+        <?php
+            $currentDxs = new \Illuminate\Support\Collection();
+            $previousDxs = new \Illuminate\Support\Collection();
+            foreach($dxInfoLines as $line) {
+                if(@$line->contentDetail()->{"IsCurrent"}) {
+                    $currentDxs->add($line);
+                }
+                else {
+                    $previousDxs->add($line);
+                }
+            }
+        ?>
+        @include('app.patient.partials.dx-table-row', ['dxRows' => $currentDxs])
+        @include('app.patient.partials.dx-table-row', ['dxRows' => $previousDxs])
+        </tbody>
+    </table>
+</div>
+<script>
+    (function() {
+        function init() {
+            $('input[type="text"][name="ICD"]').each(function() {
+                var elem = this, dynID = 'icd-' + Math.ceil(Math.random() * 1000000);
+                $(elem).attr('id', dynID);
+                new window.Def.Autocompleter.Search(dynID,
+                    'https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search?sf=code,name&ef=name',
+                    {
+                        tableFormat: true,
+                        valueCols: [0],
+                        colHeaders: ['Code', 'Name'],
+                    }
+                );
+                window.Def.Autocompleter.Event.observeListSelections(dynID, function() {
+                    var autocomp = elem.autocomp;
+                    var name = autocomp.getSelectedItemData()[0].data['name'];
+                    $(elem).closest('form').find('[name="contentText"]').val(name);
+                    return false;
+                });
+            });
+        }
+        addMCInitializer('patient-dx-list', init);
+    })();
+</script>

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

@@ -43,7 +43,7 @@
                         </li>
                         <li class="nav-item">
                             <a class="nav-link {{ strpos($routeName, 'patients.view.dx-and-focus-areas') === 0 ? 'active' : '' }}"
-                               href="{{ route('patients.view.dx-and-focus-areas', ['patient' => $patient]) }}">Current Focus Areas</a>
+                               href="{{ route('patients.view.dx-and-focus-areas', ['patient' => $patient]) }}">Dx and Focus Areas</a>
                         </li>
                         <li class="nav-item">
                             <a class="nav-link {{ strpos($routeName, 'patients.view.care-team') === 0 ? 'active' : '' }}"