Просмотр исходного кода

Programs (admin only) UI [wip]

Vijayakrishnan 4 лет назад
Родитель
Сommit
a1c2c4a32f

+ 6 - 0
app/Models/Client.php

@@ -159,4 +159,10 @@ class Client extends Model
         return $this->hasOne(McpRequest::class, 'id', 'active_mcp_request_id');
     }
 
+    public function programs() {
+        return $this->hasMany(Program::class, 'client_id', 'id')
+            ->where('is_active', true)
+            ->orderBy('program_type', 'asc');
+    }
+
 }

+ 18 - 0
app/Models/Program.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class Program extends Model
+{
+    protected $table = "client_program";
+
+    public function mcp() {
+        return $this->hasOne(Pro::class, 'id', 'mcp_pro_id');
+    }
+
+    public function manager() {
+        return $this->hasOne(Pro::class, 'id', 'manager_pro_id');
+    }
+}

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

@@ -60,6 +60,11 @@
                     </div>
                 </div>
 
+                {{-- programs --}}
+                @if($pro->pro_type == 'ADMIN')
+                    @include('app/patient/partials/programs')
+                @endif
+
                 {{-- devices --}}
                 <?php $availableDevices = 0; ?>
                 @foreach($devices as $device)

+ 198 - 0
resources/views/app/patient/partials/programs.blade.php

@@ -0,0 +1,198 @@
+<div class="mt-0 pb-1">
+    <div class="d-flex align-items-center mb-1 pt-2 pb-1 border-top">
+        <h6 class="my-0 font-weight-bold text-secondary">Programs</h6>
+        <span class="mx-2 text-secondary on-hover-opaque">|</span>
+        <div moe>
+            <a start show class="py-0 font-weight-normal">Add</a>
+            <form url="/api/clientProgram/create">
+                <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
+                <div class="mb-2">
+                    <select class="form-control form-control-sm bg-light" name="programType" required>
+                        <option value="">-- select --</option>
+                        <option value="BP_ACTIVITY">Blood Pressure / Exercise</option>
+                        <option value="WEIGHT">Weight Management</option>
+                        <option value="BLOOD_GLUCOSE">Blood Glucose</option>
+                        {{--<option value="MENTAL_HEALTH">Mental Health</option>--}}
+                    </select>
+                </div>
+                <div class="d-flex align-items-center">
+                    <button class="btn btn-sm btn-primary mr-2" submit>Add</button>
+                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                </div>
+            </form>
+        </div>
+    </div>
+    <table class="table table-bordered table-sm table-striped m-0">
+        <tbody>
+        <?php $programNumber = 1; ?>
+        @foreach($patient->programs as $program)
+            <tr>
+                <td class="text-black p-2">
+                    <div class="font-weight-bold">{{ $programNumber }}. {{ $program->program_type }}</div>
+                    <?php $programNumber++; ?>
+                    <div class="mt-1 pl-3 d-flex align-items-center flex-wrap">
+                        <span class="pr-1">MCP: <b class="text-secondary">{{ $program->mcp ? $program->mcp->displayName() : '' }}</b></span>
+                        <span moe>
+                            <a start show class="py-0 font-weight-normal"><i class="fa fa-pencil-alt"></i></a>
+                            <form url="/api/clientProgram/changeMcp">
+                                <input type="hidden" name="uid" value="{{ $program->uid }}">
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">MCP</label>
+                                    <select class="form-control form-control-sm bg-light" name="newMcpProUid" required>
+                                        <option value="">-- select --</option>
+                                        @foreach($pros as $iPro)
+                                            <option value="{{$iPro->uid}}" {{ $program->mcp_pro_id === $iPro->id ? 'selected' : '' }}>{{$iPro->displayName()}}</option>
+                                        @endforeach
+                                    </select>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="mb-1 text-secondary d-flex align-items-center">
+                                        <span class="mr-2">Is Intention To Remove MCP</span>
+                                        <input type="checkbox" name="isIntentionToRemoveMcp">
+                                    </label>
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Ok</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                        <span class="mx-2 text-secondary on-hover-opaque">|</span>
+                        <span class="pr-1">Manager: <b class="text-secondary">{{ $program->manager ? $program->manager->displayName() : '' }}</b></span>
+                        <span moe>
+                            <a start show class="py-0 font-weight-normal"><i class="fa fa-pencil-alt"></i></a>
+                            <form url="/api/clientProgram/changeManager">
+                                <input type="hidden" name="uid" value="{{ $program->uid }}">
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Manager</label>
+                                    <select class="form-control form-control-sm bg-light" name="newManagerProUid" required>
+                                        <option value="">-- select --</option>
+                                        @foreach($pros as $iPro)
+                                            <option value="{{$iPro->uid}}" {{ $program->manager_pro_id === $iPro->id ? 'selected' : '' }}>{{$iPro->displayName()}}</option>
+                                        @endforeach
+                                    </select>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="mb-1 text-secondary d-flex align-items-center">
+                                        <span class="mr-2">Is Intention To Remove Manager</span>
+                                        <input type="checkbox" name="isIntentionToRemoveManager">
+                                    </label>
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Ok</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                        <span class="mx-2 text-secondary on-hover-opaque">|</span>
+                        <span class="pr-1">OB Visit: <b class="text-secondary">{{ $program->has_mcp_done_onboarding_visit }}</b></span>
+                        <span moe>
+                            <a start show class="py-0 font-weight-normal"><i class="fa fa-pencil-alt"></i></a>
+                            <form url="/api/clientProgram/editMcpOnboardingVisitInfo">
+                                <input type="hidden" name="uid" value="{{ $program->uid }}">
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">OB Visit Done?</label>
+                                    <select class="form-control form-control-sm bg-light" name="hasMcpDoneOnboardingVisit" required>
+                                        <option value="">-- select --</option>
+                                        <option value="YES" {{ $program->has_mcp_done_onboarding_visit === 'YES' ? 'selected' : '' }}>Yes</option>
+                                        <option value="NO" {{ $program->has_mcp_done_onboarding_visit === 'NO' ? 'selected' : '' }}>No</option>
+                                        <option value="UNKNOWN" {{ $program->has_mcp_done_onboarding_visit === 'UNKNOWN' ? 'selected' : '' }}>Unknown</option>
+                                    </select>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Date</label>
+                                    <input type="date" class="form-control form-control-sm" name="mcpOnboardingVisitDate" value="{{ $program->mcp_onboarding_visit_date }}" placeholder="">
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Ok</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                    </div>
+                    <div class="mt-1 pl-3 d-flex align-items-center flex-wrap">
+                        <span class="pr-1">Setup: <b class="text-secondary">{{ $program->is_setup_complete }}</b></span>
+                        <span moe>
+                            <a start show class="py-0 font-weight-normal"><i class="fa fa-pencil-alt"></i></a>
+                            <form url="/api/clientProgram/editSetupInfo">
+                                <input type="hidden" name="uid" value="{{ $program->uid }}">
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Setup Status</label>
+                                    <select class="form-control form-control-sm bg-light" name="isSetupComplete" required>
+                                        <option value="">-- select --</option>
+                                        <option value="YES" {{ $program->is_setup_complete === 'YES' ? 'selected' : '' }}>Yes</option>
+                                        <option value="NO" {{ $program->is_setup_complete === 'NO' ? 'selected' : '' }}>No</option>
+                                        <option value="UNKNOWN" {{ $program->is_setup_complete === 'UNKNOWN' ? 'selected' : '' }}>Unknown</option>
+                                    </select>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Setup Status Memo</label>
+                                    <textarea class="form-control form-control-sm" rows="2" name="setupStatusMemo" value="{{ $program->setup_status_memo }}" placeholder="Memo"></textarea>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Setup Detail</label>
+                                    <textarea class="form-control form-control-sm" rows="2" name="setupDetail" value="{{ $program->setup_detail }}" placeholder="Detail"></textarea>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Device Identifier</label>
+                                    <input type="text" class="form-control form-control-sm" name="deviceIdentifier" value="{{ $program->device_identifier }}" placeholder="History">
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Ok</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                        <span class="mx-2 text-secondary on-hover-opaque">|</span>
+                        <span class="pr-1">Work Spec: <b class="text-secondary">{{ $program->min_monthly_time_in_minutes }}m - {{ $program->max_monthly_time_in_minutes }}m</b></span>
+                        <span moe>
+                            <a start show class="py-0 font-weight-normal"><i class="fa fa-pencil-alt"></i></a>
+                            <form url="/api/clientProgram/editWorkSpec">
+                                <input type="hidden" name="uid" value="{{ $program->uid }}">
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Min Monthly Time (minutes)</label>
+                                    <input type="number" class="form-control form-control-sm" name="minMonthlyTimeInMinutes" value="{{ $program->min_monthly_time_in_minutes }}" placeholder="">
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Max Monthly Time (minutes)</label>
+                                    <input type="number" class="form-control form-control-sm" name="maxMonthlyTimeInMinutes" value="{{ $program->max_monthly_time_in_minutes }}" placeholder="">
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Time In Minutes Memo</label>
+                                    <textarea class="form-control form-control-sm" rows="2" name="timeInMinutesMemo" value="{{ $program->time_in_minutes_memo }}" placeholder=""></textarea>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Goal</label>
+                                    <textarea class="form-control form-control-sm" rows="2" name="goal" value="{{ $program->goal }}" placeholder=""></textarea>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="text-sm mb-1 text-secondary">Sticky Note</label>
+                                    <textarea class="form-control form-control-sm" rows="2" name="stickyNote" value="{{ $program->sticky_note }}" placeholder=""></textarea>
+                                </div>
+                                <div class="mb-2">
+                                    <label class="mb-1 text-secondary d-flex align-items-center">
+                                        <span class="mr-2">Change Current Month</span>
+                                        <input type="checkbox" name="changeCurrentMonth">
+                                    </label>
+                                </div>
+                                <div class="d-flex align-items-center">
+                                    <button class="btn btn-sm btn-primary mr-2" submit>Ok</button>
+                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                </div>
+                            </form>
+                        </span>
+                    </div>
+                </td>
+            </tr>
+        @endforeach
+        @if(!$patient->programs || count($patient->programs) === 0)
+            <tr>
+                <td class="text-secondary p-0 border-0">
+                    No programs
+                </td>
+            </tr>
+        @endif
+        </tbody>
+    </table>
+</div>
+