Browse Source

Omega - objective_system impl

Vijayakrishnan 3 years ago
parent
commit
720565c656

+ 1 - 1
js-dev/mc.js

@@ -602,7 +602,7 @@ window.saveVisitForm = function(_trigger, _silent = false, _close = false, _done
 
                 // refresh omega_xxx_system on ALL changes
                 $('.visit-segment[data-segment-template-name="omega_subjective_system"]').find('.refresh-segment').trigger('click');
-                $('.visit-segment[data-segment-template-name="omega_objective_system"]').find('.refresh-segment').trigger('click');
+                // $('.visit-segment[data-segment-template-name="omega_objective_system"]').find('.refresh-segment').trigger('click');
                 $('.visit-segment[data-segment-template-name="omega_assessment_system"]').find('.refresh-segment').trigger('click');
                 $('.visit-segment[data-segment-template-name="omega_plan_system"]').find('.refresh-segment').trigger('click');
 

+ 1 - 1
resources/views/app/patient/note/segment-slim.blade.php

@@ -2,7 +2,7 @@
 $iName = $segment->segmentTemplate->internal_name;
 
 // if omega system segment - no only read mode
-$isOmegaSystemSegment = (strpos($segment->segmentTemplate->internal_name, 'omega_') === 0 && substr($segment->segmentTemplate->internal_name, -7) === '_system');
+$isOmegaSystemSegment = (strpos($iName, 'omega_') === 0 && substr($iName, -7) === '_system') && $iName !== 'omega_objective_system';
 ?>
 
 <div class="border-bottom note-section visit-segment {{$isOmegaSystemSegment || $note->is_signed_by_hcp ? '' : 'edit-trigger'}}"

+ 99 - 0
resources/views/app/patient/segment-templates/omega_objective_system/edit.blade.php

@@ -0,0 +1,99 @@
+<?php
+
+use App\Models\Point;
+
+$category = 'OBJECTIVE_SYSTEM';
+$endPoint = 'upsertNoteSingleton';
+
+$point = Point::where('added_in_note_id', $note->id)->where('category', $category)->orderBy('id', 'DESC')->first();
+$contentData = [
+    "reviewed_relevant_labs" => null,
+    "lab_findings" => null,
+    "reviewed_relevant_rpm_data" => null,
+    "rpm_findings" => null,
+    "rpm_data_unavailable" => null
+];
+if (!!@$point->data) {
+    $contentData = json_decode($point->data, true);
+}
+?>
+<div visit-moe close-on-save close-on-cancel class="d-block px-2 py-1">
+    <form show url="/api/visitPoint/<?= $endPoint ?>" class="mcp-theme-1">
+        <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
+        <input type="hidden" name="category" value="<?= $category ?>">
+        <input type="hidden" name="data" value="{{json_encode($contentData)}}">
+
+        <label class="d-flex align-items-center mb-2">
+            <input type="checkbox" data-name="reviewed_relevant_labs" {{@$contentData["reviewed_relevant_labs"] ? 'checked' : ''}} class="mr-2">
+            <span>Reviewed relevant labs.</span>
+        </label>
+
+        <div class="mb-2 align-items-baseline {{ @$contentData["reviewed_relevant_labs"] ? 'd-flex' : 'd-none' }}" if-reviewed-labs>
+            <span class="text-dark mr-2 text-nowrap">Lab Findings:</span>
+            <input type="text" class="form-control form-control-sm flex-grow-1" data-name="lab_findings" value="{{@$contentData["lab_findings"]}}">
+        </div>
+
+        <label class="d-flex align-items-center mb-2">
+            <input type="checkbox" data-name="reviewed_relevant_rpm_data" {{@$contentData["reviewed_relevant_rpm_data"] ? 'checked' : ''}} class="mr-2">
+            <span>Reviewed relevant remote measurements.</span>
+        </label>
+
+        <div class="mb-2 align-items-baseline {{ @$contentData["reviewed_relevant_rpm_data"] ? 'd-flex' : 'd-none' }}" if-reviewed-rpm>
+            <span class="text-dark mr-2 text-nowrap">RPM Findings:</span>
+            <input type="text" class="form-control form-control-sm flex-grow-1" data-name="rpm_findings" value="{{@$contentData["rpm_findings"]}}">
+        </div>
+
+        <label class="d-flex align-items-center mb-2">
+            <input type="checkbox" data-name="rpm_data_unavailable" {{@$contentData["rpm_data_unavailable"] ? 'checked' : ''}} class="mr-2">
+            <span>Remote monitoring data not available.</span>
+        </label>
+
+        <div class="pt-2">
+            <button submit class="btn btn-sm btn-primary mr-2"><i class="fa fa-save"></i></button>
+            <div class="d-inline-flex align-self-stretch align-items-center">
+                <span class="autosave-indicator saving text-sm text-secondary">Saving changes &hellip;</span>
+                <span class="autosave-indicator saved text-sm text-secondary">
+                    <i class="fa fa-check"></i>
+                    Saved
+                </span>
+            </div>
+        </div>
+    </form>
+</div>
+
+<script>
+    (function() {
+        window.segmentInitializers.<?= !!@$segment ? $segment->segmentTemplate->internal_name : $segmentInternalName ?> = function () {
+            let parentSegment = $('[data-segment-template-name="<?= $segment->segmentTemplate->internal_name ?>"] ');
+            parentSegment.find('[data-name="reviewed_relevant_labs"]')
+                .off('change')
+                .on('change', function() {
+                    if(this.checked) {
+                        parentSegment.find('[if-reviewed-labs]').removeClass('d-none').addClass('d-flex');
+                    }
+                    else {
+                        parentSegment.find('[if-reviewed-labs]').removeClass('d-flex').addClass('d-none');
+                    }
+                });
+            parentSegment.find('[data-name="reviewed_relevant_rpm_data"]')
+                .off('change')
+                .on('change', function() {
+                    if(this.checked) {
+                        parentSegment.find('[data-name="rpm_data_unavailable"]').prop('checked', false);
+                        parentSegment.find('[if-reviewed-rpm]').removeClass('d-none').addClass('d-flex');
+                    }
+                    else {
+                        parentSegment.find('[if-reviewed-rpm]').removeClass('d-flex').addClass('d-none');
+                    }
+                });
+            parentSegment.find('[data-name="rpm_data_unavailable"]')
+                .off('change')
+                .on('change', function() {
+                    if(this.checked) {
+                        parentSegment.find('[data-name="reviewed_relevant_rpm_data"]').prop('checked', false);
+                        parentSegment.find('[if-reviewed-rpm]').removeClass('d-flex').addClass('d-none');
+                    }
+                });
+        };
+    }).call(window);
+</script>

+ 37 - 0
resources/views/app/patient/segment-templates/omega_objective_system/summary.blade.php

@@ -0,0 +1,37 @@
+<?php
+
+use App\Models\Point;
+
+$category = 'OBJECTIVE_SYSTEM';
+$endPoint = 'upsertNoteSingleton';
+
+$point = Point::where('added_in_note_id', $note->id)->where('category', $category)->orderBy('id', 'DESC')->first();
+$contentData = [
+    "reviewed_relevant_labs" => null,
+    "lab_findings" => null,
+    "reviewed_relevant_rpm_data" => null,
+    "rpm_findings" => null,
+    "rpm_data_unavailable" => null
+];
+if (!!@$point->data) {
+    $contentData = json_decode($point->data, true);
+}
+
+$output = [];
+if(@$contentData["reviewed_relevant_labs"]) {
+    $output[] = "Reviewed relevant labs.";
+    if(@$contentData["lab_findings"]) {
+        $output[] = "Findings: {$contentData["lab_findings"]}.";
+    }
+}
+if(@$contentData["rpm_data_unavailable"]) {
+    $output[] = "Remote monitoring data not available.";
+}
+elseif(@$contentData["reviewed_relevant_rpm_data"]) {
+    $output[] = "Reviewed relevant remote measurements.";
+    if(@$contentData["rpm_findings"]) {
+        $output[] = "Findings: {$contentData["rpm_findings"]}.";
+    }
+}
+?>
+{{ count($output) ? implode(' ', $output) : '-' }}

+ 2 - 2
resources/views/app/patient/wizard-partials/common-script.blade.php

@@ -633,7 +633,7 @@ parentSegment.find('.toggle-relevance')
                     $('.visit-segment[data-segment-template-name="subjective_general_v2"]').find('.refresh-segment').trigger('click');
                     $('.visit-segment[data-segment-template-name="plan_free_text_v2"]').find('.refresh-segment').trigger('click');
                     $('.visit-segment[data-segment-template-name="omega_subjective_system"]').find('.refresh-segment').trigger('click');
-                    $('.visit-segment[data-segment-template-name="omega_objective_system"]').find('.refresh-segment').trigger('click');
+                    // $('.visit-segment[data-segment-template-name="omega_objective_system"]').find('.refresh-segment').trigger('click');
                     $('.visit-segment[data-segment-template-name="omega_assessment_system"]').find('.refresh-segment').trigger('click');
                     $('.visit-segment[data-segment-template-name="omega_plan_system"]').find('.refresh-segment').trigger('click');
                     if(typeof refreshRHSSidebar !== 'undefined') refreshRHSSidebar();
@@ -654,7 +654,7 @@ parentSegment.find('.toggle-relevance')
                         $('.visit-segment[data-segment-template-name="subjective_general_v2"]').find('.refresh-segment').trigger('click');
                         $('.visit-segment[data-segment-template-name="plan_free_text_v2"]').find('.refresh-segment').trigger('click');
                         $('.visit-segment[data-segment-template-name="omega_subjective_system"]').find('.refresh-segment').trigger('click');
-                        $('.visit-segment[data-segment-template-name="omega_objective_system"]').find('.refresh-segment').trigger('click');
+                        // $('.visit-segment[data-segment-template-name="omega_objective_system"]').find('.refresh-segment').trigger('click');
                         $('.visit-segment[data-segment-template-name="omega_assessment_system"]').find('.refresh-segment').trigger('click');
                         $('.visit-segment[data-segment-template-name="omega_plan_system"]').find('.refresh-segment').trigger('click');
                         if(typeof refreshRHSSidebar !== 'undefined') refreshRHSSidebar();