瀏覽代碼

Merge branch 'patient-maps' into points

Samson Mutunga 2 年之前
父節點
當前提交
547bbf3943

+ 1 - 1
app/Http/Controllers/AdminController.php

@@ -322,7 +322,7 @@ class AdminController extends Controller
         }
 
         if(@$filters['mapView'] == 1){
-            $patients = $patients->orderByRaw($sortBySQL)->paginate(25);
+            $patients = $patients->orderByRaw($sortBySQL)->paginate(100);
         }else{
           $patients = $patients->orderByRaw($sortBySQL)->paginate(25);
         }

+ 33 - 11
resources/views/app/admin/patients-maps.blade.php

@@ -11,38 +11,60 @@
     top:60px;
     left: 10px;
     width: 300px;
-    height:80%;
+    height:87%;
     overflow-y: scroll;
   }
 </style>
-<div class="bg-white position-relative w-100">
+<div class="bg-white position-relative w-100" id="mapComponent">
   <div id="map-canvas" style="height:700px;width:100%;"></div>
   <div class="pt-content shadow">
-    <div class="p-3">
-      <input type="text" class="form-control" name="search" value="">
-    </div>
     @foreach($patients as $patient)
       @if($patient->home_address_geo_lat && $patient->home_address_geo_long)
-        <div class="p-3 border-bottom">
-          <div class="d-flex justify-content-between align-items-center">
-            <p class="m-0">{{$patient->displayName()}}</p>
+        <div class="px-3 py-2 border-bottom">
+          <div class="d-flex justify-content-between align-items-start mb-1">
+            <div class="d-flex align-items-baseline flex-nowrap">
+              <span>{{$patient->displayName()}}</span>
+              <?php $latestMemo = $patient->latestMemo(); ?>
+              <div class="on-hover-show d-inline-block on-hover-opaque ml-2">
+                <i class="fa fa-info-circle ml-1 {{$latestMemo ? '' : 'opacity-35'}}"></i>
+                <div class="on-hover-content py-2 pl-3 text-nowrap text-dark" style="left:0;right:auto;">
+                  @if($latestMemo)
+                  <p class="mb-1 font-weight-bold text-secondary">Last Memo: {{$latestMemo->category}}</p>
+                  <div class="text-wrap mb-1">{{$latestMemo->content}}</div>
+                  <div class="text-secondary text-sm mb-1">{{friendly_date_time($latestMemo->created_at)}}</div>
+                  @if($latestMemo->createdBy && $latestMemo->createdBy->pro)
+                  <div class="text-secondary text-sm">By {{$latestMemo->createdBy->pro->displayName()}}</div>
+                  @endif
+                  @else
+                  <div class="text-secondary">No client memos.</div>
+                  @endif
+                </div>
+              </div>
+            </div>
             <p class="m-0"># <a native target="_blank" href="{{route('patients.view.dashboard', $patient)}}">{{$patient->chart_number}}</a></p>
           </div>
+            @if($pro->pro_type == 'ADMIN')
+            <p class="mb-1"><b>MCP:</b> {{@$patient->mcp ? $patient->mcp->displayName() : '--'}}</p>
+            @endif
           @include('app.patient.coverage_column_renderer', ['patient'=>$patient])
+          @if($patient->mailing_address_city)
+          <p class="m-0 mt-1"><i class="fas fa-map-marker"></i> {{$patient->mailing_address_city}}, {{$patient->mailing_address_state}}</p>
+          @endif
         </div>
       @endif
     @endforeach
-    <div class="p-3 shadow">
+    <div class="px-3 py-2 border-top bg-light" style="position:sticky; bottom:0;">
       Showing <b>{{ count($patients) }}</b> patients
     </div>
   </div>
 </div>
-
+<div class="px-3 pt-3 d-flex align-items-center">
+    {{$patients->withQueryString()->links()}}
+</div>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/markerclustererplus/2.1.4/markerclusterer.min.js"></script>
 <script>
     var patients = <?= json_encode($patients) ?>;
     (function () {
-
       function init() {
         var mapOptions = {
           center: {

+ 5 - 1
resources/views/app/admin/patients_filters.blade.php

@@ -23,6 +23,9 @@
 	}
 </style>
 <form id="admin-patients-filters" method="GET" action="{{ route('admin.patients') }}" class="filter-container" v-cloak>
+	@if(@$filters['mapView'] == 1)
+		<input name="mapView" class="form-control input-sm" v-model="filters.mapView">
+	@endif
 	<div class="sm-section">
 		<div class="">
 			<label>Name:</label>
@@ -541,7 +544,8 @@ $allFilterKeys = [
 	'has_weight_scale',
 	'has_pulse_ox',
 	'has_temp_fun',
-	'imei'
+	'imei',
+	'mapView'
 ];
 for ($i=0; $i < count($allFilterKeys); $i++) {
 	if (!isset($loadedFilters[$allFilterKeys[$i]]) || !$loadedFilters[$allFilterKeys[$i]]) {