Browse Source

Add patient > measurements section

Vijayakrishnan Krishnan 4 năm trước cách đây
mục cha
commit
25fcf8b7fb

+ 8 - 1
app/Models/Client.php

@@ -41,7 +41,14 @@ class Client extends Model
     }
 
     public function infoLines() {
-	return $this->hasMany(ClientInfoLine::class, 'client_id', 'id')->orderBy('created_at', 'desc');
+	    return $this->hasMany(ClientInfoLine::class, 'client_id', 'id')->orderBy('created_at', 'desc');
+    }
+
+    public function measurements() {
+        return $this->hasMany(Measurement::class, 'client_id', 'id')
+            ->distinct('label')
+            ->orderBy('label', 'asc')
+            ->orderBy('created_at', 'desc');
     }
 
 }

+ 10 - 0
app/Models/Measurement.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class Measurement extends Model
+{
+    protected $table = 'measurement';
+}

+ 120 - 25
resources/views/app/patient/dashboard.blade.php

@@ -19,6 +19,97 @@
 
         <div class="row">
             <div class="col-6">
+
+                {{-- measurements --}}
+                <div class="mt-2 pb-1">
+                    <div class="d-flex align-items-center mb-2 py-2 border-top border-bottom">
+                        <h6 class="my-0 font-weight-bold text-secondary">Measurements</h6>
+                        <span class="mx-2 text-secondary">|</span>
+                        <div moe>
+                            <a start show class="py-0 font-weight-normal">Add</a>
+                            <form url="/api/measurement/create">
+                                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                                <div class="mb-2">
+                                    <input autofocus type="text" class="form-control form-control-sm" name="label" value="" placeholder="Type">
+                                </div>
+                                <div class="mb-2">
+                                    <input type="text" class="form-control form-control-sm" name="value" value="" placeholder="Value">
+                                </div>
+                                <div class="mb-2">
+                                    <input type="date" class="form-control form-control-sm" name="effectiveDate" max="{{ date('Y-m-d') }}" value="{{ date('Y-m-d') }}">
+                                </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>
+                        <span class="mx-2 text-secondary">|</span>
+                        <a start show class="py-0 font-weight-normal"
+                           href="/patients/view/{{ $patient->uid }}/measurements">
+                            View All
+                        </a>
+                    </div>
+                    <table class="table table-sm border-0 m-0">
+                        <tbody>
+                        @foreach($patient->measurements as $measurement)
+                            @if(!empty($measurement->label))
+                                <tr>
+                                    <td class="text-black p-0 border-0">
+                                        <div class="d-flex align-items-center">
+                                            <div moe relative class="mr-2">
+                                                <a class="on-hover-opaque" start show title="Delete">
+                                                    <i class="font-size-11 fa fa-trash-alt text-danger"></i>
+                                                </a>
+                                                <form url="/api/measurement/remove">
+                                                    <input type="hidden" name="uid" value="{{ $measurement->uid }}">
+                                                    <p class="small min-width-200px">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>
+                                            </div>
+                                            <div moe class="mr-2">
+                                                <a class="on-hover-opaque" start show title="Delete">
+                                                    <i class="font-size-11 fa fa-edit text-primary"></i>
+                                                </a>
+                                                <form url="/api/measurement/create">
+                                                    <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                                                    <div class="mb-2">
+                                                        <input type="text" class="form-control form-control-sm" name="label" value="{{ $measurement->label }}" placeholder="Type">
+                                                    </div>
+                                                    <div class="mb-2">
+                                                        <input autofocus type="text" class="form-control form-control-sm" name="value" value="" placeholder="Value">
+                                                    </div>
+                                                    <div class="mb-2">
+                                                        <input type="date" class="form-control form-control-sm" name="effectiveDate" max="{{ date('Y-m-d') }}" value="{{ date('Y-m-d') }}">
+                                                    </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>
+                                            <span>{{ $measurement->label }}:</span>
+                                            <span class="font-weight-bold ml-1">{{ $measurement->value }}</span>
+                                            <span class="font-weight-normal text-secondary ml-2 text-sm">(as on {{ friendly_date_time($measurement->effective_date, false) }})</span>
+                                        </div>
+                                    </td>
+                                </tr>
+                            @endif
+                        @endforeach
+                        @if(!$patient->measurements || !count($patient->measurements) === 0)
+                            <tr>
+                                <td class="text-secondary p-0 border-0">
+                                    No items to show
+                                </td>
+                            </tr>
+                        @endif
+                        </tbody>
+                    </table>
+                </div>
+
                 {{-- allergies --}}
                 <div class="mt-2 pb-1">
                     <div class="d-flex align-items-center mb-2 py-2 border-top border-bottom">
@@ -39,18 +130,18 @@
 
                         <span class="mx-2 text-secondary">|</span>
 
-            <div moe>
-                <a start show class="">Multi</a>
-                <form url="/api/clientInfoLine/createMultiple">
-                    <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
-                    <input type="hidden" name="category" value="allergy">
-                    <div class="mb-2"><textarea class="form-control form-control-sm" rows="8" name="contentTexts" value="" placeholder="Allergies"></textarea></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 moe>
+                            <a start show class="">Multi</a>
+                            <form url="/api/clientInfoLine/createMultiple">
+                                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                                <input type="hidden" name="category" value="allergy">
+                                <div class="mb-2"><textarea class="form-control form-control-sm" rows="8" name="contentTexts" value="" placeholder="Allergies"></textarea></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>
 
                         <span class="mx-2 text-secondary">|</span>
                         <a start show class="py-0 font-weight-normal"
@@ -135,20 +226,24 @@
                             </form>
                         </div>
 
-                         <span class="mx-2 text-secondary">|</span>
+                        <span class="mx-2 text-secondary">|</span>
 
-            <div moe>
-                <a start show class="">Multi</a>
-                <form url="/api/clientInfoLine/createMultiple">
-                    <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
-                    <input type="hidden" name="category" value="rx">
-                    <div class="mb-2"><textarea class="form-control form-control-sm" rows="8" name="contentTexts" value="" placeholder="Medications"></textarea></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 moe>
+                            <a start show class="">Multi</a>
+                            <form url="/api/clientInfoLine/createMultiple">
+                                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                                <input type="hidden" name="category" value="rx">
+                                <div class="mb-2">
+                                    <textarea class="form-control form-control-sm" rows="8"
+                                              name="contentTexts" value=""
+                                              placeholder="Medications"></textarea>
+                                </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>
 
                         <span class="mx-2 text-secondary">|</span>
                         <a start show class="py-0 font-weight-normal"

+ 3 - 3
resources/views/layouts/template.blade.php

@@ -54,9 +54,9 @@
                     <a class="nav-link dropdown-toggle" href="#" id="practice-management" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="mr-1 fas fa-tasks"></i> Practice Management</a>
                     <div class="dropdown-menu" aria-labelledby="practice-management">
                         {{--<a class="dropdown-item" href="{{ route('practice-management.dashboard') }}">Dashboard</a>--}}
-                        <a class="dropdown-item" href="/practice-management/rates">Payment Rates</a>
-                        <a class="dropdown-item" href="/practice-management/bills/previous">Previous Bills</a>
-                        <a class="dropdown-item" href="/practice-management/financial-transactions">Financial Transactions</a>
+                        <a class="dropdown-item" href="{{ route('practice-management.rates') }}">Payment Rates</a>
+                        <a class="dropdown-item" href="{{ route('practice-management.previousBills') }}">Previous Bills</a>
+                        <a class="dropdown-item" href="{{ route('practice-management.financialTransactions') }}">Financial Transactions</a>
                         <a class="dropdown-item" href="/practice-management/bills/not-yet-signed">Pending Bills to Sign</a>
                         <a class="dropdown-item" href="/practice-management/notes/not-yet-signed">Pending Notes to Sign</a>
                         {{--<a class="dropdown-item" href="/practice-management/hr">HR</a>--}}