瀏覽代碼

Merge branch 'master' into dev-vj

Vijayakrishnan 4 年之前
父節點
當前提交
49f4a7ba83

+ 8 - 4
app/Http/Controllers/HomeController.php

@@ -12,6 +12,7 @@ use DateTime;
 
 use App\Models\Client;
 use App\Models\Bill;
+use App\Models\Measurement;
 use App\Models\Note;
 use App\Models\Pro;
 use App\Models\ProTransaction;
@@ -243,7 +244,7 @@ class HomeController extends Controller
             ->count();
 
         // num measurements that need stamping
-        $keyNumbers['measurementsToBeStamped'] = count($this->performer()->pro->getMeasurements(true));
+        $keyNumbers['measurementsToBeStamped'] = ($this->performer()->pro->pro_type === 'ADMIN' ? '-' : count($this->performer()->pro->getMeasurements(true)));
 
         $reimbursement = [];
         $reimbursement["currentBalance"] =  $performer->pro->balance;
@@ -286,7 +287,9 @@ class HomeController extends Controller
 
         $milliseconds = strtotime(date('Y-m-d')) . '000';
 
-        return view('app/dashboard', compact('keyNumbers', 'reimbursement', 'milliseconds'));
+        $measurements = $performer->pro->getMeasurements();
+
+        return view('app/dashboard', compact('keyNumbers', 'reimbursement', 'milliseconds', 'measurements'));
     }
 
     public function dashboardAppointments(Request $request, $from, $to) {
@@ -309,7 +312,8 @@ class HomeController extends Controller
             $date = explode(" ", $appointment->start_time)[0];
             $appointment->milliseconds = strtotime($date) . '000';
             $appointment->newStatus = $appointment->status;
-            $appointment->dateYMD = date('Y-m-d', strtotime($appointment->start_time));
+
+            $appointment->dateYMD = date('Y-m-d', strtotime($appointment->raw_date));
             $appointment->clientName = $appointment->client->displayName();
             $appointment->clientInitials = substr($appointment->client->name_first, 0, 1) . substr($appointment->client->name_last, 0, 1);
             $appointment->proInitials = substr($appointment->pro->name_first, 0, 1) . substr($appointment->pro->name_last, 0, 1);
@@ -526,7 +530,7 @@ class HomeController extends Controller
             $data = json_decode($apiResponse->getContents());
 
             if (!property_exists($data, 'success') || !$data->success) {
-                return redirect('/mc');
+                return redirect()->to(route('logout'));
             }
 
 

+ 10 - 4
app/Models/Pro.php

@@ -322,7 +322,7 @@ class Pro extends Model
         return $allowed ? $clientPrograms : FALSE;
     }
 
-    public function getMeasurements($_onlyUnstamped = false)
+    public function getMeasurements($_onlyUnstamped = true)
     {
         $measurementsQuery = Measurement::where('is_removed', false);
         if ($this->pro_type != 'ADMIN') {
@@ -340,7 +340,8 @@ class Pro extends Model
                         });
                 });
         }
-        $measurements = $measurementsQuery->orderBy('id', 'desc')->get();
+	$x = [];
+        $measurements = $measurementsQuery->orderBy('id', 'desc')->paginate(50);
 
         // eager load stuff needed in JS
         foreach ($measurements as $measurement) {
@@ -356,10 +357,15 @@ class Pro extends Model
             $measurement->patient = $client;
 
             $measurement->careMonth = $measurement->client->currentCareMonth();
+            $measurement->timestamp = friendly_date_time($measurement->created_at);
 
             unset($measurement->client); // we do not need this travelling to the frontend
-        }
-
+            // if($measurement->label == 'SBP' || $measurement->label = 'DBP'){
+            //     continue;
+	        // }
+	        $x[] = $measurement;
+	    }
+	
         return $measurements;
     }
 }

+ 5 - 2
app/Providers/AppServiceProvider.php

@@ -2,6 +2,7 @@
 
 namespace App\Providers;
 
+use Illuminate\Routing\UrlGenerator;
 use Illuminate\Support\ServiceProvider;
 
 class AppServiceProvider extends ServiceProvider
@@ -21,8 +22,10 @@ class AppServiceProvider extends ServiceProvider
      *
      * @return void
      */
-    public function boot()
+    public function boot(UrlGenerator $url) 
     {
-        //
+        if (env('APP_ENV') !== 'local') {
+            $url->forceScheme('https');
+        }
     }
 }

+ 2 - 135
resources/views/app/dashboard.blade.php

@@ -161,140 +161,7 @@
                     </div>
                     </div>
                     <div v-show="tab==='measurements'">
-                        <div class="d-flex align-items-end mb-3">
-                            <b class="large">Measurements in {{friendly_month(date('Y-m-d'))}}</b>
-                            <div class="ml-auto d-inline-flex align-items-center">
-                                <label class="text-secondary mr-2 my-0 text-nowrap">Filter by status:</label>
-                                <select v-model="measurementFilterStatus"
-                                        class="form-control form-control-sm"
-                                        v-on:change="updateMeasurements()">
-                                    <option value="ALL">All</option>
-                                    <option value="NEED_ACK">Needs Stamping</option>
-                                </select>
-                            </div>
-                        </div>
-                        <table class="table table-striped table-sm table-bordered mb-0">
-                            <thead>
-                            <tr>
-                                <th class="border-0 px-2 text-secondary">Patient</th>
-                                <th class="border-0 px-2 text-secondary">Category</th>
-                                <th class="border-0 px-2 text-secondary">Value</th>
-                                <th class="border-0 px-2 text-secondary">Mins this month</th>
-                                <th class="border-0 px-2 text-secondary text-center">Stamp</th>
-                                <th class="border-0 px-2 text-secondary text-center">Entry</th>
-                            </tr>
-                            </thead>
-                            <tbody>
-                            <tr v-for="measurement in measurements">
-                                <td class="px-2">
-                                    <a native
-                                       target="_top" :href="'/mc/patients/view/' + measurement.patient.uid"
-                                       class="font-weight-bold">
-                                        @{{ measurement.patient.name }}
-                                    </a>
-                                </td>
-                                <td class="px-2">@{{ measurement.label }}</td>
-                                <td class="px-2">
-                                    <div v-if="!measurement.client_bdt_measurement_id"><b>@{{ measurement.value }}</b></div>
-                                    <div v-else>
-                                        <div v-if="measurement.label === 'BP'">
-                                            <b>@{{ measurement.bdtMeasurement.systolic_bp_in_mm_hg }}</b>/<b>@{{ measurement.bdtMeasurement.diastolic_bp_in_mm_hg }}</b> mmHg
-                                        </div>
-                                        <div v-if="measurement.label === 'SBP'">
-                                            <b>@{{ measurement.bdtMeasurement.systolic_bp_in_mm_hg }}</b> mmHg
-                                        </div>
-                                        <div v-if="measurement.label === 'DBP'">
-                                            <b>@{{ measurement.bdtMeasurement.diastolic_bp_in_mm_hg }}</b> mmHg
-                                        </div>
-                                        <div v-if="measurement.label === 'Wt. (lbs.)'">
-                                            <b>@{{ parseFloat(measurement.bdtMeasurement.weight_in_pounds).toFixed(1) }}</b> lbs
-                                        </div>
-                                    </div>
-                                </td>
-                                <td class="px-2">
-                                    @{{Math.floor(measurement.careMonth.rm_total_time_in_seconds/60).toFixed(0)}}
-                                </td>
-                                <td colspan="px-2">
-                                    <div v-if="measurement.client_bdt_measurement_id" class="d-flex align-items-center justify-content-center">
-                                        <button class="btn btn-sm py-0 px-1 width-22px" v-on:click.prevent="setMeasurementStatus(measurement.uid, 'ACK')"
-                                                :class="measurement.status === 'ACK' ? 'bg-success text-white' : 'text-success'">
-                                            <i class="fa fa-check"></i>
-                                        </button>
-                                        <button class="btn btn-sm py-0 px-1 width-22px ml-0" v-on:click.prevent="setMeasurementStatus(measurement.uid, 'INVALID_ACK')"
-                                                :class="measurement.status === 'INVALID_ACK' ? 'bg-danger text-white' : 'text-danger'">
-                                            <i class="fa fa-times"></i>
-                                        </button>
-                                    </div>
-                                    <div v-else class="text-center">-</div>
-                                </td>
-                                <td colspan="px-2">
-                                    <div v-if="measurement.client_bdt_measurement_id" class="text-center">
-                                        <span moe large relative>
-                                            <a start show class="py-0 mb-3 font-weight-bold">Add</a>
-                                            <form url="/api/careMonthEntry/createForRm" right>
-                                                <p class="mb-2 d-block text-left"><b>Add RM Entry</b></p>
-                                                <input type="hidden" name="careMonthUid" :value="measurement.careMonth.uid">
-                                                <input type="hidden" name="proUid" value="{{$pro->uid}}">
-                                                <input type="hidden" name="effectiveDate" value="{{date('Y-m-d')}}">
-                                                <div class="bg-light border rounded p-2 mb-2">
-                                                    <div class="mb-1 d-flex align-items-center">
-                                                        <span class="width-50px text-left text-secondary">Type</span>
-                                                        <div><b>@{{ measurement.label }}</b></div>
-                                                    </div>
-                                                    <div class="d-flex align-items-center">
-                                                        <span class="width-50px text-left text-secondary">Value</span>
-                                                        <div v-if="!measurement.client_bdt_measurement_id"><b>@{{ measurement.value }}</b></div>
-                                                        <div v-else>
-                                                            <div v-if="measurement.label === 'BP'">
-                                                                <b>@{{ measurement.bdtMeasurement.systolic_bp_in_mm_hg }}</b>/<b>@{{ measurement.bdtMeasurement.diastolic_bp_in_mm_hg }}</b> mmHg
-                                                            </div>
-                                                            <div v-if="measurement.label === 'SBP'">
-                                                                <b>@{{ measurement.bdtMeasurement.systolic_bp_in_mm_hg }}</b> mmHg
-                                                            </div>
-                                                            <div v-if="measurement.label === 'DBP'">
-                                                                <b>@{{ measurement.bdtMeasurement.diastolic_bp_in_mm_hg }}</b> mmHg
-                                                            </div>
-                                                            <div v-if="measurement.label === 'Wt. (lbs.)'">
-                                                                <b>@{{ parseFloat(measurement.bdtMeasurement.weight_in_pounds).toFixed(1) }}</b> lbs
-                                                            </div>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                                <div class="mb-2">
-                                                    <div class="row">
-                                                        <div class="col-6 d-flex align-items-center">
-                                                            <label class="text-secondary text-sm my-0 mr-3 text-nowrap">Time (mins)</label>
-                                                            <input type="number" min="0" max="5400"
-                                                                   class="form-control form-control-sm w-100 cm-time-value"
-                                                                   name="timeInMinutes" value="" placeholder="Time (mins.)" required>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                                <div class="mb-2">
-                                                    <div class="row">
-                                                        <div class="col-12 text-left">
-                                                            <label class="text-secondary text-sm mb-1">Details</label>
-                                                            <textarea class="form-control form-control-sm" rows="4"
-                                                                      name="contentText">@{{ 'Reviewed ' + measurement.label + ' measurement' }}</textarea>
-                                                        </div>
-                                                    </div>
-                                                </div>
-                                                <div class="d-flex align-items-center">
-                                                    <button class="btn btn-sm btn-success mr-2" submit>Submit</button>
-                                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
-                                                </div>
-                                            </form>
-                                        </span>
-                                    </div>
-                                </td>
-                            </tr>
-                            <tr v-if="!measurements || !measurements.length">
-                                <td class="text-secondary p-0 border-0 p-3" colspan="6">
-                                    No items to show
-                                </td>
-                            </tr>
-                            </tbody>
-                        </table>
+                        @include('app.dashboard.measurements')
                     </div>
                 </div>
             </div>
@@ -319,7 +186,7 @@
                     currentMonth: null,
                     currentYear: null,
                     measurementFilterStatus: 'ALL',
-                    measurements: {!! json_encode($pro->getMeasurements()) !!}
+                    measurements: {!! $pro->pro_type === 'ADMIN' ? '[]' : json_encode($pro->getMeasurements()) !!}
                 },
                 methods: {
                     formatDate: function (date) {

+ 143 - 0
resources/views/app/dashboard/measurements.blade.php

@@ -0,0 +1,143 @@
+<div class="d-flex align-items-end mb-3">
+    <b class="large">Measurements in {{friendly_month(date('Y-m-d'))}}</b>
+</div>
+<table class="table table-striped table-sm table-bordered mb-0">
+    <thead>
+        <tr>
+            <th class="border-0 px-2 text-secondary">Patient</th>
+            <th class="border-0 px-2 text-secondary">Category</th>
+            <th class="border-0 px-2 text-secondary">Value</th>
+            <th class="border-0 px-2 text-secondary">Timestamp</th>
+            <th class="border-0 px-2 text-secondary">Mins this month</th>
+            <th class="border-0 px-2 text-secondary text-center">Stamp</th>
+            <th class="border-0 px-2 text-secondary text-center">Entry</th>
+        </tr>
+    </thead>
+    <tbody>
+        @if(count($measurements))
+            <?php foreach($measurements as $measurement): ?> 
+                <?php if(in_array($measurement->label, ['SBP', 'DBP']) ) continue; ?>
+                <tr>
+                    <td class="px-2">
+                        <a native target="_top" href="/mc/patients/view/{{$measurement->client->uid}}" class="font-weight-bold">
+                            {{ $measurement->client->name_first }} {{ $measurement->client->name_last }}
+                        </a>
+                    </td>
+                    <td class="px-2">{{ $measurement->label }}</td>
+                    <td class="px-2">
+                        @if(!$measurement->clientBDTMeasurement)
+                         <div><b>{{ $measurement->value }}</b></div>
+                        @else 
+                        <div>
+                            @if($measurement->label == 'BP')
+                            <div>
+                                <b>{{ $measurement->clientBdtMeasurement->measurement->systolic_bp_in_mm_hg }}</b>/<b>{{ $measurement->clientBdtMeasurement->measurement->diastolic_bp_in_mm_hg }}</b> mmHg
+                            </div>
+                            @endif
+                            @if($measurement->label == 'Wt. (lbs.)')
+                            <div>
+                                <b>{{ floor($measurement->clientBdtMeasurement->measurement->weight_in_pounds)}}</b> lbs
+                            </div>
+                            @endif
+                        </div>
+                        @endif
+                    </td>
+                    <td>
+                        {{$measurement->timestamp}}
+                    </td>
+                    <td class="px-2">
+                        @if($measurement->careMonth)
+                        {{ floor($measurement->careMonth->rm_total_time_in_seconds/60) }}
+                        @endif
+                    </td>
+                    <td colspan="px-2">
+                        @if($measurement->clientBdtMeasurement) 
+                        <span moe large relative>
+                            <a start show class="py-0 mb-3 font-weight-bold">Update status</a>
+                            <form url="/api/measurement/updateStatus" right>   
+                                <input type="hidden" name="uid" value="{{$measurement->uid}}">
+                                <select name="status" id="" class="form-control input-sm">
+                                    <option value="">--select--</option>
+                                    <option value="ACK">Ok</option> 
+                                    <option value="INVALID_ACK">Invalid</option>
+                                </select>
+                                <div class="d-flex align-items-center mt-2">
+                                    <button class="btn btn-sm btn-success mr-2" submit>Submit</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                        <div v-else class="text-center">-</div>
+                        @endif
+                    </td>
+                    <td colspan="px-2">
+                        @if($measurement->clientBdtMeasurement)
+                        <div class="text-center">
+                            <span moe large relative>
+                                <a start show class="py-0 mb-3 font-weight-bold">Add</a>
+                                <form url="/api/careMonthEntry/createForRm" right>
+                                    <p class="mb-2 d-block text-left"><b>Add RM Entry</b></p>
+                                    <input type="hidden" name="careMonthUid" value="{{$measurement->careMonth->uid}}">
+                                    <input type="hidden" name="proUid" value="{{$pro->uid}}">
+                                    <input type="hidden" name="effectiveDate" value="{{date('Y-m-d')}}">
+                                    <div class="bg-light border rounded p-2 mb-2">
+                                        <div class="mb-1 d-flex align-items-center">
+                                            <span class="width-50px text-left text-secondary">Type</span>
+                                            <div><b>{{ $measurement->label }} </b></div>
+                                        </div>
+                                        <div class="d-flex align-items-center">
+                                            <span class="width-50px text-left text-secondary">Value</span>
+                                            @if(!$measurement->clientBDTMeasurement)
+                                                <div><b>{{ $measurement->value }}</b></div>
+                                            @else 
+                                                <div>
+                                                    @if($measurement->label == 'BP')
+                                                    <div>
+                                                        <b>{{ $measurement->clientBdtMeasurement->measurement->systolic_bp_in_mm_hg }}</b>/<b>{{ $measurement->clientBdtMeasurement->measurement->diastolic_bp_in_mm_hg }}</b> mmHg
+                                                    </div>
+                                                    @endif
+                                                    @if($measurement->label == 'Wt. (lbs.)')
+                                                    <div>
+                                                        <b>{{ floor($measurement->clientBdtMeasurement->measurement->weight_in_pounds)}}</b> lbs 
+                                                    </div>
+                                                    @endif
+                                                </div>
+                                            @endif
+                                        </div>
+                                    </div>
+                                    <div class="mb-2">
+                                        <div class="row">
+                                            <div class="col-6 d-flex align-items-center">
+                                                <label class="text-secondary text-sm my-0 mr-3 text-nowrap">Time (mins)</label>
+                                                <input type="number" min="0" max="5400" class="form-control form-control-sm w-100 cm-time-value" name="timeInMinutes" value="" placeholder="Time (mins.)" required>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="mb-2">
+                                        <div class="row">
+                                            <div class="col-12 text-left">
+                                                <label class="text-secondary text-sm mb-1">Details</label>
+                                                <textarea class="form-control form-control-sm" rows="4" name="contentText">{{ 'Reviewed ' . $measurement->label . ' measurement' }}</textarea>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="d-flex align-items-center">
+                                        <button class="btn btn-sm btn-success mr-2" submit>Submit</button>
+                                        <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                    </div>
+                                </form>
+                            </span>
+                        </div>
+                        @endif
+                    </td>
+                </tr>
+            <?php endforeach ?>
+        @else
+            <tr>
+                <td class="text-secondary p-0 border-0 p-3" colspan="6">
+                    No items to show
+                </td>
+            </tr>
+        @endif
+    </tbody>
+</table>

+ 6 - 1
resources/views/layouts/template.blade.php

@@ -110,7 +110,7 @@
                         <a class="dropdown-item" href="{{ route('practice-management.proCalendar') }}">Pro Calendar</a>
                         @if($pro && $pro->pro_type == 'ADMIN')
                             <a class="dropdown-item" href="{{ route('practice-management.billingManager') }}">Billing Manager</a>
-                            <a class="dropdown-item" href="{{ route('practice-management.tickets') }}">Tickets</a>
+                            <a class="dropdown-item" href="/practice-management/tickets">Tickets</a>
                         @endif
                     </div>
                 </li>
@@ -151,6 +151,11 @@
             </form>
             @endif
 
+            <div class="ml-1 d-inline-block text-secondary">|</div>
+            <a native target="_top" class="small text-white ml-1" href="{{config('stag.authUrl')}}" title="">
+                My Apps
+            </a>
+
             @if($pro->pro_type == 'ADMIN')
             <div class="ml-1 d-inline-block text-secondary">|</div>
             <a native target="_top" class="small text-white ml-1" href="{{config('stag.adminPortalUrl')}}/pro_log_in_with_session_key/{{$performer->session_key}}" title="">