Bläddra i källkod

Support for note-point driven relevance (impl on all segments)

Vijayakrishnan 3 år sedan
förälder
incheckning
32acd2dc12
22 ändrade filer med 76 tillägg och 743 borttagningar
  1. 4 54
      resources/views/app/patient/segment-templates/intake_allergies/edit.blade.php
  2. 3 13
      resources/views/app/patient/segment-templates/intake_allergies/summary.blade.php
  3. 4 55
      resources/views/app/patient/segment-templates/intake_care_team/edit.blade.php
  4. 3 13
      resources/views/app/patient/segment-templates/intake_care_team/summary.blade.php
  5. 4 54
      resources/views/app/patient/segment-templates/intake_goals/edit.blade.php
  6. 5 15
      resources/views/app/patient/segment-templates/intake_goals/summary.blade.php
  7. 4 54
      resources/views/app/patient/segment-templates/intake_medications/edit.blade.php
  8. 4 14
      resources/views/app/patient/segment-templates/intake_medications/summary.blade.php
  9. 4 55
      resources/views/app/patient/segment-templates/intake_problems/edit.blade.php
  10. 3 12
      resources/views/app/patient/segment-templates/intake_problems/summary.blade.php
  11. 4 53
      resources/views/app/patient/segment-templates/plan_allergies/edit.blade.php
  12. 3 13
      resources/views/app/patient/segment-templates/plan_allergies/summary.blade.php
  13. 4 53
      resources/views/app/patient/segment-templates/plan_care_team/edit.blade.php
  14. 3 13
      resources/views/app/patient/segment-templates/plan_care_team/summary.blade.php
  15. 4 60
      resources/views/app/patient/segment-templates/plan_goals/edit.blade.php
  16. 3 13
      resources/views/app/patient/segment-templates/plan_goals/summary.blade.php
  17. 1 53
      resources/views/app/patient/segment-templates/plan_interventions/edit.blade.php
  18. 1 12
      resources/views/app/patient/segment-templates/plan_interventions/summary.blade.php
  19. 4 54
      resources/views/app/patient/segment-templates/plan_medications/edit.blade.php
  20. 3 13
      resources/views/app/patient/segment-templates/plan_medications/summary.blade.php
  21. 4 53
      resources/views/app/patient/segment-templates/plan_problems/edit.blade.php
  22. 4 14
      resources/views/app/patient/segment-templates/plan_problems/summary.blade.php

+ 4 - 54
resources/views/app/patient/segment-templates/intake_allergies/edit.blade.php

@@ -11,16 +11,6 @@ use \App\Models\Segment;
 
 $allergies = Point::getIntakePointsOfCategory($patient, 'ALLERGY', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'ALLERGIES_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -36,12 +26,14 @@ else {
             </thead>
             <?php foreach($allergies as $allergy): ?>
                 <?php $point = $allergy; ?>
+                <?php $rel = $point->relevanceToNote($note); ?>
                 <tr>
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$allergy->uid}}" {{in_array($allergy->uid, $relevance) ? 'checked' : ''}}>
-                            <span>&nbsp;</span>
+                                   data-point-uid="{{$allergy->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                         </label>
                     </td>
                     <td>
@@ -136,14 +128,6 @@ else {
         </table>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="ALLERGIES_RELEVANT_TO_NOTE_ON_INTAKE">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add allergy patient ALREADY is diagnosed with, prior to this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelOnIntake" class="mcp-theme-1 w-100">
@@ -192,39 +176,5 @@ else {
                 _input.closest('form').find('input[data-name="damConceptIdType"]').val(_data.dam_concept_id_typ);
             });
 
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 3 - 13
resources/views/app/patient/segment-templates/intake_allergies/summary.blade.php

@@ -6,17 +6,6 @@ use App\Models\Point;
 
 $allergies = Point::getIntakePointsOfCategory($patient, 'ALLERGY', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'ALLERGIES_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 ?>
 
@@ -24,9 +13,10 @@ $numRelevant = 0;
     <div class="text-secondary">No allergies</div>
 <?php else: ?>
     <?php foreach ($allergies as $allergy): ?>
+        <?php $rel = $allergy->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($allergy->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -52,7 +42,7 @@ $numRelevant = 0;
                     <div class="text-secondary font-weight-bold">Review</div>
                     <div>{!! $review->data->value !!}</div>
                 </div>
-            <?php elseif(in_array($allergy->uid, $relevance)): ?>
+            <?php elseif($rel): ?>
                 <div class="relevant-without-review text-danger mt-1 text-sm" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Review missing</div>
             <?php endif; ?>
         </div>

+ 4 - 55
resources/views/app/patient/segment-templates/intake_care_team/edit.blade.php

@@ -11,16 +11,6 @@ use \App\Models\Segment;
 
 $careTeamMembers = Point::getIntakePointsOfCategory($patient, 'CARE_TEAM_MEMBER', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'CARE_TEAM_MEMBERS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -36,12 +26,14 @@ else {
             </tr>
             </thead>
             <?php foreach($careTeamMembers as $careTeamMember): ?>
+                <?php $rel = $careTeamMember->relevanceToNote($note); ?>
                 <tr>
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$careTeamMember->uid}}" {{in_array($careTeamMember->uid, $relevance) ? 'checked' : ''}}>
-                            <span>&nbsp;</span>
+                                   data-point-uid="{{$careTeamMember->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                         </label>
                     </td>
                     <td>
@@ -162,14 +154,6 @@ else {
     </div>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" 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_ON_INTAKE">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add care team member patient is ALREADY having, prior to this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelOnIntake" class="mcp-theme-1 w-100">
@@ -224,40 +208,5 @@ else {
     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
-
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 3 - 13
resources/views/app/patient/segment-templates/intake_care_team/summary.blade.php

@@ -6,17 +6,6 @@ use App\Models\Point;
 
 $careTeamMembers = Point::getIntakePointsOfCategory($patient, 'CARE_TEAM_MEMBER', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'CARE_TEAM_MEMBERS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 
 ?>
@@ -25,9 +14,10 @@ $numRelevant = 0;
     <div class="text-secondary">No care team members</div>
 <?php else: ?>
     <?php foreach($careTeamMembers as $careTeamMember): ?>
+        <?php $rel = $careTeamMember->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($careTeamMember->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -57,7 +47,7 @@ $numRelevant = 0;
                 <div class="text-secondary font-weight-bold">Review</div>
                 <div>{!! $review->data->value !!}</div>
             </div>
-            <?php elseif(in_array($careTeamMember->uid, $relevance)): ?>
+            <?php elseif($rel): ?>
             <div class="relevant-without-review text-danger mt-1 text-sm" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Review missing</div>
             <?php endif; ?>
         </div>

+ 4 - 54
resources/views/app/patient/segment-templates/intake_goals/edit.blade.php

@@ -11,16 +11,6 @@ use \App\Models\Segment;
 
 $goals = Point::getIntakePointsOfCategory($patient, 'GOAL', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'GOALS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -40,12 +30,14 @@ else {
             <?php foreach($goals as $goal): ?>
                 <?php if(@($goal->data->category)): ?>
                 <?php $point = $goal; ?>
+                <?php $rel = $point->relevanceToNote($note); ?>
                 <tr>
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$goal->uid}}" {{in_array($goal->uid, $relevance) ? 'checked' : ''}}>
-                            <span>&nbsp;</span>
+                                   data-point-uid="{{$goal->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                         </label>
                     </td>
                     <td>
@@ -215,14 +207,6 @@ else {
     </div>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="GOALS_RELEVANT_TO_NOTE_ON_INTAKE">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add goal patient is ALREADY having, prior to this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelOnIntake" class="mcp-theme-1 w-100">
@@ -332,39 +316,5 @@ else {
                 $(this).closest('form').find('.help-text[data-category="' + this.value + '"]').removeClass('d-none');
             });
 
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 5 - 15
resources/views/app/patient/segment-templates/intake_goals/summary.blade.php

@@ -15,17 +15,6 @@ foreach($goals as $goal) {
     $grouped[$goal->data->category][] = $goal;
 }
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'GOALS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 
 ?>
@@ -36,12 +25,13 @@ $numRelevant = 0;
     <?php foreach($grouped as $k => $group): ?>
         <b><?= $k ?></b>
         <?php foreach($group as $goal): ?>
+            <?php $rel = $goal->relevanceToNote($note); ?>
             <div class="pl-2 mb-2">
                 <div class="d-flex align-items-baseline">
-                    @if(in_array($goal->uid, $relevance))
+                    @if($rel)
                         <span class="text-info mr-1">
-                            <i class="fa fa-star"></i>
-                        </span>
+                        <i class="fa fa-star"></i>
+                    </span>
                         <?php $numRelevant++; ?>
                     @endif
                     <div class="<?= $goal->is_removed ? 'strike-through' : '' ?>">
@@ -63,7 +53,7 @@ $numRelevant = 0;
                     <div class="text-secondary font-weight-bold">Review</div>
                     <div>{!! $review->data->value !!}</div>
                 </div>
-                <?php elseif(in_array($goal->uid, $relevance)): ?>
+                <?php elseif($rel): ?>
                 <div class="relevant-without-review text-danger mt-1 text-sm" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Review missing</div>
                 <?php endif; ?>
             </div>

+ 4 - 54
resources/views/app/patient/segment-templates/intake_medications/edit.blade.php

@@ -11,16 +11,6 @@ use App\Models\Segment;
 
 $medications = Point::getIntakePointsOfCategory($patient, 'MEDICATION', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'MEDICATIONS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -38,9 +28,12 @@ else {
             <?php foreach($medications as $medication): ?>
                 <tr>
                     <td class="p-0">
+                        <?php $rel = $medication->relevanceToNote($note); ?>
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$medication->uid}}" {{in_array($medication->uid, $relevance) ? 'checked' : ''}}>
+                                   data-point-uid="{{$medication->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                             <span>&nbsp;</span>
                         </label>
                     </td>
@@ -177,14 +170,6 @@ else {
     </div>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="MEDICATIONS_RELEVANT_TO_NOTE_ON_INTAKE">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add medication patient is ALREADY taking, prior to this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelOnIntake" class="mcp-theme-1 w-100">
@@ -268,41 +253,6 @@ else {
                 return false;
             });
 
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
-
     };
 </script>
 

+ 4 - 14
resources/views/app/patient/segment-templates/intake_medications/summary.blade.php

@@ -6,17 +6,6 @@ use App\Models\Point;
 
 $medications = Point::getIntakePointsOfCategory($patient, 'MEDICATION', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'MEDICATIONS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 
 ?>
@@ -25,9 +14,10 @@ $numRelevant = 0;
     <div class="text-secondary">No medications</div>
 <?php else: ?>
     <?php foreach ($medications as $medication): ?>
+        <?php $rel = $medication->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($medication->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -54,8 +44,8 @@ $numRelevant = 0;
                 <div class="text-secondary font-weight-bold">Review</div>
                 <div>{!! $review->data->value !!}</div>
             </div>
-            <?php elseif(in_array($medication->uid, $relevance)): ?>
-            <div class="relevant-without-review text-danger mt-1" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Review missing</div>
+            <?php elseif($rel): ?>
+            <div class="relevant-without-review text-danger mt-1 text-sm" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Review missing</div>
             <?php endif; ?>
         </div>
     <?php endforeach; ?>

+ 4 - 55
resources/views/app/patient/segment-templates/intake_problems/edit.blade.php

@@ -11,16 +11,6 @@ use \App\Models\Segment;
 
 $problems = Point::getIntakePointsOfCategory($patient, 'PROBLEM', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'PROBLEMS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -36,12 +26,14 @@ else {
             </tr>
             </thead>
             <?php foreach($problems as $problem): ?>
+                <?php $rel = $problem->relevanceToNote($note); ?>
             <tr>
                 <td class="p-0">
                     <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                         <input type="checkbox" class="m-0 chk-relevance"
-                               data-uid="{{$problem->uid}}" {{in_array($problem->uid, $relevance) ? 'checked' : ''}}>
-                        <span>&nbsp;</span>
+                               data-point-uid="{{$problem->uid}}"
+                               data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                {{$rel ? 'checked' : ''}}>
                     </label>
                 </td>
                 <td>
@@ -151,14 +143,6 @@ else {
     </div>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="PROBLEMS_RELEVANT_TO_NOTE_ON_INTAKE">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add Problem patient is ALREADY having, prior
                 to this visit</a>-->
@@ -241,40 +225,5 @@ else {
             $(this).closest('form').find('input[data-name="icd-type"]').val($(this).find('option:selected').attr('data-icd-type'));
         });
 
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
-
     };
 </script>

+ 3 - 12
resources/views/app/patient/segment-templates/intake_problems/summary.blade.php

@@ -6,16 +6,6 @@ use App\Models\Point;
 
 $problems = Point::getIntakePointsOfCategory($patient, 'PROBLEM', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'PROBLEMS_RELEVANT_TO_NOTE_ON_INTAKE')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
 $numRelevant = 0;
 ?>
 
@@ -23,9 +13,10 @@ $numRelevant = 0;
     <div class="text-secondary">No problems</div>
 <?php else: ?>
     <?php foreach ($problems as $problem): ?>
+        <?php $rel = $problem->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($problem->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -55,7 +46,7 @@ $numRelevant = 0;
                 include resource_path('views/app/patient/segment-templates/_review/problem/view.php');
                 ?>
             </div>
-            <?php elseif(in_array($problem->uid, $relevance)): ?>
+            <?php elseif($rel): ?>
             <div class="relevant-without-review block-signing text-danger mt-1 text-sm" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Review missing</div>
             <?php endif; ?>
         </div>

+ 4 - 53
resources/views/app/patient/segment-templates/plan_allergies/edit.blade.php

@@ -12,16 +12,6 @@ use \App\Models\Segment;
 $allergies = Point::getPlanPointsOfCategory($patient, 'ALLERGY', $note);
 $intakeOrVisit = 'PLAN';
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'ALLERGIES_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -37,11 +27,14 @@ else {
             </thead>
             <?php foreach($allergies as $allergy): ?>
                 <?php $point = $allergy; ?>
+                <?php $rel = $point->relevanceToNote($note); ?>
                 <tr>
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$allergy->uid}}" {{in_array($allergy->uid, $relevance) ? 'checked' : ''}}>
+                                   data-point-uid="{{$point->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                             <span>&nbsp;</span>
                         </label>
                     </td>
@@ -137,14 +130,6 @@ else {
         </table>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="ALLERGIES_RELEVANT_TO_NOTE_DURING_VISIT">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new allergy, added during this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1 w-100">
@@ -193,39 +178,5 @@ else {
                 _input.closest('form').find('input[data-name="damConceptIdType"]').val(_data.dam_concept_id_typ);
             });
 
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 3 - 13
resources/views/app/patient/segment-templates/plan_allergies/summary.blade.php

@@ -6,17 +6,6 @@ use App\Models\Point;
 
 $allergies = Point::getPlanPointsOfCategory($patient, 'ALLERGY', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'ALLERGIES_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 ?>
 
@@ -25,9 +14,10 @@ $numRelevant = 0;
 <?php else: ?>
     <?php foreach ($allergies as $allergy): ?>
         <?php if($allergy->is_removed && $allergy->is_removed_due_to_entry_error) continue; ?>
+        <?php $rel = $allergy->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($allergy->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -57,7 +47,7 @@ $numRelevant = 0;
                 <div class="text-secondary font-weight-bold">Plan</div>
                 <div>{!! $review->data->value !!}</div>
             </div>
-            <?php elseif(in_array($allergy->uid, $relevance)): ?>
+            <?php elseif($rel): ?>
             <div class="relevant-without-plan text-danger text-sm mt-1" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Plan missing</div>
             <?php endif; ?>
         </div>

+ 4 - 53
resources/views/app/patient/segment-templates/plan_care_team/edit.blade.php

@@ -12,16 +12,6 @@ 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_DURING_VISIT')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -37,11 +27,14 @@ else {
             </thead>
             <?php foreach($careTeamMembers as $careTeamMember): ?>
                 <?php $point = $careTeamMember; ?>
+                <?php $rel = $point->relevanceToNote($note); ?>
                 <tr>
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$careTeamMember->uid}}" {{in_array($careTeamMember->uid, $relevance) ? 'checked' : ''}}>
+                                   data-point-uid="{{$point->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                             <span>&nbsp;</span>
                         </label>
                     </td>
@@ -159,14 +152,6 @@ else {
         </table>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" 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_DURING_VISIT">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new care team member, added during this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1 w-100">
@@ -224,39 +209,5 @@ else {
 
         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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 3 - 13
resources/views/app/patient/segment-templates/plan_care_team/summary.blade.php

@@ -6,17 +6,6 @@ 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_DURING_VISIT')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 ?>
 
@@ -25,9 +14,10 @@ $numRelevant = 0;
 <?php else: ?>
     <?php foreach($careTeamMembers as $careTeamMember): ?>
         <?php if($careTeamMember->is_removed && $careTeamMember->is_removed_due_to_entry_error) continue; ?>
+        <?php $rel = $careTeamMember->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($careTeamMember->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -61,7 +51,7 @@ $numRelevant = 0;
                 <div class="text-secondary font-weight-bold">Plan</div>
                 <div>{!! $review->data->value !!}</div>
             </div>
-            <?php elseif(in_array($careTeamMember->uid, $relevance)): ?>
+            <?php elseif($rel): ?>
             <div class="relevant-without-plan text-danger text-sm mt-1" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Plan missing</div>
             <?php endif; ?>
         </div>

+ 4 - 60
resources/views/app/patient/segment-templates/plan_goals/edit.blade.php

@@ -12,16 +12,6 @@ use \App\Models\Segment;
 $goals = Point::getPlanPointsOfCategory($patient, 'GOAL', $note);
 $intakeOrVisit = 'PLAN';
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'GOALS_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -40,11 +30,14 @@ else {
             <?php foreach($goals as $goal): ?>
                 <?php if(@($goal->data->category)): ?>
                 <?php $point = $goal; ?>
+                <?php $rel = $point->relevanceToNote($note); ?>
                 <tr>
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$goal->uid}}" {{in_array($goal->uid, $relevance) ? 'checked' : ''}}>
+                                   data-point-uid="{{$point->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                             <span>&nbsp;</span>
                         </label>
                     </td>
@@ -214,14 +207,6 @@ else {
         </table>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="GOALS_RELEVANT_TO_NOTE_DURING_VISIT">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new goal, added during this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1 w-100">
@@ -325,46 +310,5 @@ else {
 
         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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        parentSegment.find('select[data-name="category"]')
-            .off('change')
-            .on('change', function() {
-                $(this).closest('form').find('.help-text').addClass('d-none');
-                $(this).closest('form').find('.help-text[data-category="' + this.value + '"]').removeClass('d-none');
-            });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 3 - 13
resources/views/app/patient/segment-templates/plan_goals/summary.blade.php

@@ -16,17 +16,6 @@ foreach($goals as $goal) {
     $grouped[$goal->data->category][] = $goal;
 }
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'GOALS_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 ?>
 
@@ -36,9 +25,10 @@ $numRelevant = 0;
     <?php foreach($grouped as $k => $group): ?>
         <b><?= $k ?></b>
         <?php foreach ($group as $goal): ?>
+            <?php $rel = $goal->relevanceToNote($note); ?>
             <div class="pl-2 mb-2">
                 <div class="d-flex align-items-baseline">
-                    @if(in_array($goal->uid, $relevance))
+                    @if($rel)
                         <span class="text-info mr-1">
                             <i class="fa fa-star"></i>
                         </span>
@@ -67,7 +57,7 @@ $numRelevant = 0;
                     <div class="text-secondary font-weight-bold">Plan</div>
                     <div>{!! $review->data->value !!}</div>
                 </div>
-                <?php elseif(in_array($goal->uid, $relevance)): ?>
+                <?php elseif($rel): ?>
                 <div class="relevant-without-plan text-danger text-sm mt-1" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Plan missing</div>
                 <?php endif; ?>
             </div>

+ 1 - 53
resources/views/app/patient/segment-templates/plan_interventions/edit.blade.php

@@ -12,16 +12,6 @@ use \App\Models\Segment;
 $interventions = Point::getPlanPointsOfCategory($patient, 'INTERVENTION', $note);
 $intakeOrVisit = 'PLAN';
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'INTERVENTIONS_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -43,7 +33,7 @@ else {
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$intervention->uid}}" {{in_array($intervention->uid, $relevance) ? 'checked' : ''}}>
+                                   data-uid="{{$intervention->uid}}" {{$rel ? 'checked' : ''}}>
                             <span>&nbsp;</span>
                         </label>
                     </td>
@@ -161,14 +151,6 @@ else {
         </table>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="INTERVENTIONS_RELEVANT_TO_NOTE_DURING_VISIT">
-                <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="max-width-500px">
             <a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new intervention, added during this visit</a>
             <form url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1">
@@ -220,39 +202,5 @@ else {
 
         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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 1 - 12
resources/views/app/patient/segment-templates/plan_interventions/summary.blade.php

@@ -16,17 +16,6 @@ foreach($interventions as $intervention) {
     $grouped[$intervention->data->category][] = $intervention;
 }
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'INTERVENTIONS_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 ?>
 
@@ -38,7 +27,7 @@ $numRelevant = 0;
         <?php foreach($group as $intervention): ?>
             <div class="mb-2 pl-3">
                 <div class="d-flex align-items-baseline">
-                    @if(in_array($intervention->uid, $relevance))
+                    @if($rel)
                         <span class="text-info mr-1">
                             <i class="fa fa-star"></i>
                         </span>

+ 4 - 54
resources/views/app/patient/segment-templates/plan_medications/edit.blade.php

@@ -12,16 +12,6 @@ use App\Models\Segment;
 $medications = Point::getPlanPointsOfCategory($patient, 'MEDICATION', $note);
 $intakeOrVisit = 'PLAN';
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'MEDICATIONS_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -37,11 +27,14 @@ else {
             </thead>
             <?php foreach($medications as $medication): ?>
                 <?php $point = $medication; ?>
+                <?php $rel = $point->relevanceToNote($note); ?>
                 <tr>
                     <td class="p-0">
                         <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                             <input type="checkbox" class="m-0 chk-relevance"
-                                   data-uid="{{$medication->uid}}" {{in_array($medication->uid, $relevance) ? 'checked' : ''}}>
+                                   data-point-uid="{{$point->uid}}"
+                                   data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                    {{$rel ? 'checked' : ''}}>
                             <span>&nbsp;</span>
                         </label>
                     </td>
@@ -151,14 +144,6 @@ else {
         </table>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="MEDICATIONS_RELEVANT_TO_NOTE_DURING_VISIT">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new medication, prescribed during this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1 w-100">
@@ -235,40 +220,5 @@ else {
                 return false;
             });
 
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
-
     };
 </script>

+ 3 - 13
resources/views/app/patient/segment-templates/plan_medications/summary.blade.php

@@ -6,17 +6,6 @@ use App\Models\Point;
 
 $medications = Point::getPlanPointsOfCategory($patient, 'MEDICATION', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'MEDICATIONS_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
 ?>
 
@@ -25,9 +14,10 @@ $numRelevant = 0;
 <?php else: ?>
     <?php foreach ($medications as $medication): ?>
         <?php if($medication->is_removed && $medication->is_removed_due_to_entry_error) continue; ?>
+        <?php $rel = $medication->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($medication->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -57,7 +47,7 @@ $numRelevant = 0;
                 <div class="text-secondary font-weight-bold">Plan</div>
                 <div>{!! $review->data->value !!}</div>
             </div>
-            <?php elseif(in_array($medication->uid, $relevance)): ?>
+            <?php elseif($rel): ?>
             <div class="relevant-without-plan text-danger text-sm mt-1" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>"><i class="fa fa-exclamation-triangle mr-1"></i>Plan missing</div>
             <?php endif; ?>
         </div>

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

@@ -12,16 +12,6 @@ use \App\Models\Segment;
 $problems = Point::getPlanPointsOfCategory($patient, 'PROBLEM', $note);
 $intakeOrVisit = 'PLAN';
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'PROBLEMS_RELEVANT_TO_NOTE_DURING_VISIT')
-    ->orderBy('id', 'DESC')->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 ?>
 <div>
 
@@ -37,11 +27,14 @@ else {
             </thead>
             <?php foreach($problems as $problem): ?>
                 <?php $point = $problem; ?>
+                <?php $rel = $point->relevanceToNote($note); ?>
             <tr>
                 <td class="p-0">
                     <label class="d-flex align-items-center px-2 py-1 m-0 c-pointer">
                         <input type="checkbox" class="m-0 chk-relevance"
-                               data-uid="{{$problem->uid}}" {{in_array($problem->uid, $relevance) ? 'checked' : ''}}>
+                               data-point-uid="{{$point->uid}}"
+                               data-rel-uid="{{$rel ? $rel->uid : ''}}"
+                                {{$rel ? 'checked' : ''}}>
                         <span>&nbsp;</span>
                     </label>
                 </td>
@@ -147,14 +140,6 @@ else {
         </table>
 
     <div class="d-flex align-items-center">
-        <div visit-moe>
-            <form start show url="/api/visitPoint/upsertNoteSingleton" class="d-none" id="<?= $segment->uid ?>-relevance-form">
-                <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
-                <input type="hidden" name="category" value="PROBLEMS_RELEVANT_TO_NOTE_DURING_VISIT">
-                <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="mt-1 w-100 border p-2 bg-white rounded">
             <!--<a href="#" start show class="btn btn-sm btn btn-outline-primary">+ Add new problem, added during this visit</a>-->
             <form show url="/api/visitPoint/addTopLevelDuringVisit" class="mcp-theme-1 w-100">
@@ -236,39 +221,5 @@ else {
             $(this).closest('form').find('input[data-name="icd-type"]').val($(this).find('option:selected').attr('data-icd-type'));
         });
 
-        // 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));
-
-            // auto save
-            $('#<?= $segment->uid ?>-relevance-form [submit]').trigger('click');
-
-            return false;
-        });
-
-        // pre-fill relevance data
-        let uids = [];
-        $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] .chk-relevance:checked').each(function() {
-            uids.push($(this).attr('data-uid'));
-        });
-        $('#<?= $segment->uid ?>-relevance-form').find('[name="data"]').val(JSON.stringify(uids));
     };
 </script>

+ 4 - 14
resources/views/app/patient/segment-templates/plan_problems/summary.blade.php

@@ -6,18 +6,7 @@ use App\Models\Point;
 
 $problems = Point::getPlanPointsOfCategory($patient, 'PROBLEM', $note);
 
-$relevance = Point::where('added_in_segment_id', $segment->id)
-    ->where('category', 'PROBLEMS_RELEVANT_TO_NOTE_DURING_VISIT')->orderBy('id', 'DESC')
-    ->first();
-if (!!@$relevance->data) {
-    $relevance = json_decode($relevance->data, true);
-}
-else {
-    $relevance = [];
-}
-
 $numRelevant = 0;
-
 $numRelevantWithICD = 0;
 ?>
 
@@ -26,9 +15,10 @@ $numRelevantWithICD = 0;
 <?php else: ?>
     <?php foreach ($problems as $problem): ?>
         <?php if($problem->is_removed && $problem->is_removed_due_to_entry_error) continue; ?>
+        <?php $rel = $problem->relevanceToNote($note); ?>
         <div class="mb-2">
             <div class="d-flex align-items-baseline">
-                @if(in_array($problem->uid, $relevance))
+                @if($rel)
                     <span class="text-info mr-1">
                         <i class="fa fa-star"></i>
                     </span>
@@ -37,7 +27,7 @@ $numRelevantWithICD = 0;
                         <?php $numRelevantWithICD++; ?>
                     @endif
                 @endif
-                <div class="<?= $problem->is_removed ? 'strike-through' : '' ?> <?= !in_array($problem->uid, $relevance) ? 'on-hover-opaque' : '' ?>">
+                <div class="<?= $problem->is_removed ? 'strike-through' : '' ?> <?= !$rel ? 'on-hover-opaque' : '' ?>">
                     <b><?= !!@($problem->data->name) ? @($problem->data->name) : '-' ?></b>
                     <?= !!@($problem->data->icd) ? '/&nbsp;' . @($problem->data->icd) : '' ?>
                     <?= !!@($problem->data->description) ? '/&nbsp;' . @($problem->data->description) : '' ?>
@@ -62,7 +52,7 @@ $numRelevantWithICD = 0;
                 <div class="text-secondary font-weight-bold">Plan</div>
                 <div>{!! $review->data->value !!}</div>
             </div>
-            <?php elseif(in_array($problem->uid, $relevance) && !$problem->is_removed): ?>
+            <?php elseif($rel && !$problem->is_removed): ?>
             <div class="relevant-without-plan block-signing text-danger text-sm mt-1" data-target-segment="<?= $segment->segmentTemplate->internal_name ?>">
                 <i class="fa fa-exclamation-triangle mr-1"></i>Plan missing
             </div>