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

Visit UI - relevance - care-team

Vijayakrishnan 3 роки тому
батько
коміт
8214907315

+ 102 - 43
resources/views/app/patient/segment-templates/plan_care_team/edit.blade.php

@@ -12,13 +12,23 @@ use \App\Models\Segment;
 $careTeamMembers = Point::getPlanPointsOfCategory($patient, 'CARE_TEAM_MEMBER', $note);
 $intakeOrVisit = 'PLAN';
 
+$relevance = Point::where('added_in_segment_id', $segment->id)
+    ->where('category', 'CARE_TEAM_MEMBERS_RELEVANT_TO_NOTE')
+    ->orderBy('id', 'DESC')->first();
+if (!!@$relevance->data) {
+    $relevance = json_decode($relevance->data, true);
+}
+else {
+    $relevance = [];
+}
+
 ?>
 <div>
 
-    <div class="d-flex mb-2">
-        <table class="table table-sm table-bordered table-striped mb-0 bg-white">
+        <table class="table table-sm table-bordered table-striped mb-0 bg-white mb-2">
             <thead>
             <tr class="">
+                <th class="border-bottom-0 width-100px text-info">Relevant to<br>this visit</th>
                 <th class="border-bottom-0">Care Team Member</th>
                 <th class="border-bottom-0">Last Review</th>
                 <th class="border-bottom-0">Last Plan</th>
@@ -29,6 +39,13 @@ $intakeOrVisit = 'PLAN';
                 <?php $point = $careTeamMember; ?>
                 <tr>
                     <td>
+                    <div class="d-flex align-items-center">
+                        <input type="checkbox" class="m-0 chk-relevance"
+                               data-uid="{{$careTeamMember->uid}}" {{in_array($careTeamMember->uid, $relevance) ? 'checked' : ''}}>
+                        <span>&nbsp;</span>
+                    </div>
+                </td>
+                <td>
                         <div class="d-flex align-items-baseline">
                             <div class="<?= $careTeamMember->is_removed ? 'strike-through' : '' ?>">
                                 <b><?= !!@($careTeamMember->data->name) ? @($careTeamMember->data->name) : '-' ?></b>
@@ -93,51 +110,93 @@ $intakeOrVisit = 'PLAN';
                 </tr>
             <?php endforeach; ?>
         </table>
-    </div>
 
-    <div visit-moe class="mt-1">
-        <a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new care team member, added during this visit</a>
-        <form url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1">
-            <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-            <input type="hidden" name="category" value="CARE_TEAM_MEMBER">
-            <input type="hidden" name="data">
+    <div class="d-flex align-items-center">
+        <div visit-moe>
+            <form start show url="/api/visitPoint/upsertNoteSingleton" class="mcp-theme-1" id="<?= $segment->uid ?>-relevance-form">
+                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
+                <input type="hidden" name="category" value="CARE_TEAM_MEMBERS_RELEVANT_TO_NOTE">
+                <input type="hidden" name="data">
+                <button submit class="btn btn-sm btn-info font-weight-bold">Save Relevance</button>
+            </form>
+        </div>
+        <div visit-moe large class="ml-auto mt-1 max-width-500px">
+            <a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new care team member, added during this visit</a>
+            <form url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1" right>
+                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
+                <input type="hidden" name="category" value="CARE_TEAM_MEMBER">
+                <input type="hidden" name="data">
 
-            <p class="mb-2"><b>Add Care Team Member (on intake)</b></p>
+                <p class="mb-2"><b>Add Care Team Member (on intake)</b></p>
 
-            <div class="mb-2">
-                <label class="text-sm text-secondary mb-1">Name</label>
-                <input type="text" data-name="name" class="form-control form-control-sm">
-            </div>
-            <div class="mb-2">
-                <label class="text-sm text-secondary mb-1">Specialty</label>
-                <input type="text" data-name="specialty" class="form-control form-control-sm">
-            </div>
-            <div class="mb-2">
-                <label class="text-sm text-secondary mb-1">Organization</label>
-                <input type="text" data-name="organization" class="form-control form-control-sm">
-            </div>
-            <div class="mb-2">
-                <label class="text-sm text-secondary mb-1">Phone</label>
-                <input type="text" data-name="phone" class="form-control form-control-sm">
-            </div>
-            <div class="mb-2">
-                <label class="text-sm text-secondary mb-1">Fax</label>
-                <input type="text" data-name="fax" class="form-control form-control-sm">
-            </div>
-            <div class="mb-2">
-                <label class="text-sm text-secondary mb-1">Date</label>
-                <input type="date" data-name="date" class="form-control form-control-sm">
-            </div>
-            <div class="mb-2">
-                <label class="text-sm text-secondary mb-1">Memo</label>
-                <textarea type="text" data-name="memo" class="form-control form-control-sm"></textarea>
-            </div>
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Name</label>
+                    <input type="text" data-name="name" class="form-control form-control-sm">
+                </div>
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Specialty</label>
+                    <input type="text" data-name="specialty" class="form-control form-control-sm">
+                </div>
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Organization</label>
+                    <input type="text" data-name="organization" class="form-control form-control-sm">
+                </div>
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Phone</label>
+                    <input type="text" data-name="phone" class="form-control form-control-sm">
+                </div>
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Fax</label>
+                    <input type="text" data-name="fax" class="form-control form-control-sm">
+                </div>
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Date</label>
+                    <input type="date" data-name="date" class="form-control form-control-sm">
+                </div>
+                <div class="mb-2">
+                    <label class="text-sm text-secondary mb-1">Memo</label>
+                    <textarea type="text" data-name="memo" class="form-control form-control-sm"></textarea>
+                </div>
 
-            <div>
-                <button submit class="btn btn-sm btn-primary mr-2">Submit</button>
-                <button cancel class="btn btn-sm btn-default border">Cancel</button>
-            </div>
-        </form>
+                <div>
+                    <button submit class="btn btn-sm btn-primary mr-2">Submit</button>
+                    <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                </div>
+            </form>
+        </div>
     </div>
 </div>
 
+<script>
+    window.segmentInitializers.<?= $segment->segmentTemplate->internal_name ?> = function () {
+        // any JS can come here
+        // will be run on page-load as well as whenever this segment is refreshed
+
+        let parentSegment = $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] ');
+
+        // relevance
+        $(document).off('change', '[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance');
+        $(document).on('change', '[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance', function () {
+            let uids = $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val();
+            if(!!uids) {
+                uids = JSON.parse(uids);
+            }
+            else {
+                uids = [];
+            }
+            let uid = $(this).attr('data-uid'), found = uids.indexOf(uid) > -1;
+            if(this.checked === found) {
+                return false;
+            }
+            if(this.checked) {
+                uids.push(uid);
+            }
+            else {
+                uids = uids.filter(_x => _x !== uid);
+            }
+            $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
+            return false;
+        });
+
+    };
+</script>

+ 27 - 2
resources/views/app/patient/segment-templates/plan_care_team/summary.blade.php

@@ -6,13 +6,31 @@ use App\Models\Point;
 
 $careTeamMembers = Point::getPlanPointsOfCategory($patient, 'CARE_TEAM_MEMBER', $note);
 
+$relevance = Point::where('added_in_segment_id', $segment->id)
+    ->where('category', 'CARE_TEAM_MEMBERS_RELEVANT_TO_NOTE')
+    ->orderBy('id', 'DESC')
+    ->first();
+if (!!@$relevance->data) {
+    $relevance = json_decode($relevance->data, true);
+}
+else {
+    $relevance = [];
+}
+
+$numRelevant = 0;
 ?>
 
 <?php if (!count($careTeamMembers)): ?>
     <div class="text-secondary">No care team members</div>
 <?php else: ?>
     <?php foreach($careTeamMembers as $careTeamMember): ?>
-        <div class="mb-2 d-flex align-items-baseline">
+        <div class="d-flex align-items-baseline mb-2">
+            @if(in_array($careTeamMember->uid, $relevance))
+                <span class="text-info mr-1 text-sm">
+                    <i class="fa fa-star text-sm"></i>
+                </span>
+                <?php $numRelevant++; ?>
+            @endif
             <div class="<?= $careTeamMember->is_removed ? 'strike-through' : '' ?>">
                 <b><?= !!@($careTeamMember->data->name) ? @($careTeamMember->data->name) : '-' ?></b>
                 <?= !!@($careTeamMember->data->spacialty) ? '/&nbsp;' . @($careTeamMember->data->spacialty) : '' ?>
@@ -34,4 +52,11 @@ $careTeamMembers = Point::getPlanPointsOfCategory($patient, 'CARE_TEAM_MEMBER',
             <?php endif; ?>
         </div>
     <?php endforeach; ?>
-<?php endif; ?>
+    @if($numRelevant)
+        <div class="d-flex align-items-baseline text-info mr-1 mt-3">
+            <span class="text-sm mr-1"><i class="fa fa-star text-sm"></i></span>
+            <span class="text-sm">Care team member(s) relevant to this note</span>
+        </div>
+    @endif
+<?php endif; ?>
+

+ 3 - 3
resources/views/app/patient/segment-templates/plan_problems/edit.blade.php

@@ -107,7 +107,7 @@ else {
 
     <div class="d-flex align-items-center">
         <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="mcp-theme-1" id="relevance-form">
+            <form start show url="/api/visitPoint/upsertNoteSingleton" class="mcp-theme-1" id="<?= $segment->uid ?>-relevance-form">
                 <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
                 <input type="hidden" name="category" value="PROBLEMS_RELEVANT_TO_NOTE">
                 <input type="hidden" name="data">
@@ -195,7 +195,7 @@ else {
         // relevance
         $(document).off('change', '[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance');
         $(document).on('change', '[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance', function () {
-            let uids = $('#relevance-form').find('[name="data"]').val();
+            let uids = $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val();
             if(!!uids) {
                 uids = JSON.parse(uids);
             }
@@ -212,7 +212,7 @@ else {
             else {
                 uids = uids.filter(_x => _x !== uid);
             }
-            $('#relevance-form').find('[name="data"]').val(JSON.stringify(uids));
+            $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
             return false;
         });