Browse Source

Dx center ICD driven auto suggest

Vijayakrishnan 3 years ago
parent
commit
365e8fe268

+ 20 - 0
app/Http/Controllers/FDBPGController.php

@@ -223,6 +223,26 @@ where r1.related_dxid = :dxid
         return response()->json($matches);
     }
 
+    // dx suggest v2 - from ICD tables
+    public function dxSuggestV2JSON(Request $request)
+    {
+        $term = $request->input('term') ? trim($request->input('term')) : '';
+        if (empty($term)) return '';
+        $matches = DB::connection('pgsql_fdb')->select("
+SELECT DISTINCT ON (r1.search_icd_cd) search_icd_cd as sub_text, r1.icd_cd_type, r2.icd_desc as text, r1.related_dxid as dxid, r1.fml_clin_code, r1.fml_nav_code, r3.dxid_desc56
+FROM RFMLISR1_ICD_SEARCH r1
+JOIN RFMLINM1_ICD_DESC r2 ON r1.search_icd_cd = r2.icd_cd
+LEFT OUTER JOIN RFMLDX0_DXID r3 ON r1.related_dxid = r3.dxid
+WHERE r1.icd_cd_type = '05'
+    AND r1.fml_clin_code = '01'
+    AND (r2.icd_desc ILIKE :term OR r1.search_icd_cd ILIKE :term)
+ORDER BY r1.search_icd_cd ASC, r1.fml_nav_code ASC
+",
+            ['term' => '%' . $term . '%']
+        );
+        return response()->json(['success'=>true, 'data'=>$matches]);
+    }
+
     // allergy suggest
     public function allergySuggest(Request $request)
     {

+ 6 - 19
resources/views/app/patient/problems-center.blade.php

@@ -164,16 +164,15 @@ $ccSegment = $ccSegment ?? $note->getSegmentByInternalName('mc_cc');
                                                data-name="name"
                                                value="{{@$problem->data->name}}"
                                                stag-suggest
-                                               stag-suggest-ep="/fdb-dx-suggest/json">
+                                               stag-suggest-ep="/fdb-dx-suggest-v2/json"
+                                               stag-suggest-text-only>
                                     </div>
                                     <div class="col-4">
                                         <label class="text-sm mb-0 font-weight-bold">ICD</label>
                                         <input type="text"
                                                data-name="icd"
-                                               data-option-list
                                                class="form-control form-control-sm"
                                                value="{{@$problem->data->icd}}">
-                                        <div class="data-option-list"></div>
                                     </div>
                                 </div>
 
@@ -228,17 +227,16 @@ $ccSegment = $ccSegment ?? $note->getSegmentByInternalName('mc_cc');
                                            class="form-control form-control-sm"
                                            stag-suggest
                                            stag-suggest-bottom-left
-                                           stag-suggest-ep="/fdb-dx-suggest/json"
+                                           stag-suggest-ep="/fdb-dx-suggest-v2/json"
+                                           stag-suggest-text-only
                                            required>
                                 </div>
                                 <div class="col-4">
                                     <label class="text-sm mb-0 font-weight-bold">ICD</label>
                                     <input type="text"
                                            data-name="icd"
-                                           data-option-list
                                            class="form-control form-control-sm min-width-unset"
-                                           disabled>
-                                    <div class="data-option-list"></div>
+                                           readonly>
                                 </div>
                             </div>
 
@@ -287,8 +285,7 @@ $ccSegment = $ccSegment ?? $note->getSegmentByInternalName('mc_cc');
                 .off('stag-suggest-selected')
                 .on('stag-suggest-selected', (_e, _input, _data) => {
                     $(_input).closest('form').find('input[data-name="dxid"]').val(_data.dxid);
-                    let icdSelect = $(_input).closest('form').find('[data-name="icd"]').val('').prop('disabled', true);
-                    icdSelect.next('.data-option-list').empty();
+                    $(_input).closest('form').find('input[data-name="icd"]').val(_data.sub_text);
 
                     $('.fdb-dx-vigilance').html('<span class="text-secondary font-italic">Please wait ...</span>');
                     $.post('/fdb-dx-vigilance/{{$patient->uid}}', {
@@ -298,16 +295,6 @@ $ccSegment = $ccSegment ?? $note->getSegmentByInternalName('mc_cc');
                     }, _data => {
                         $('.fdb-dx-vigilance').html(_data);
                     });
-
-                    $.get('/fdb-dx-icds-for-dxid?dxid=' + _data.dxid, _data => {
-                        icdSelect.empty().append('<option value="">-- select --</option>');
-                        for (let i = 0; i < _data.length; i++) {
-                            if(_data[i].icd_cd_type !== '01') {
-                                icdSelect.next('.data-option-list').append($('<div/>').text(_data[i].search_icd_cd).attr('desc', _data[i].icd_desc));
-                            }
-                        }
-                        icdSelect.prop('disabled', false);
-                    }, 'json');
                 });
 
             @include('app.patient.wizard-partials.common-script', ['label' => 'problem', 'segment_part' => 'problems'])

+ 1 - 0
routes/web.php

@@ -523,6 +523,7 @@ Route::middleware('pro.auth')->group(function () {
     Route::get('/fdb-contraindications', 'FDBPGController@contraindications');
     Route::get('/fdb-dx-suggest', 'FDBPGController@dxSuggest');
     Route::get('/fdb-dx-suggest/json', 'FDBPGController@dxSuggestJSON');
+    Route::get('/fdb-dx-suggest-v2/json', 'FDBPGController@dxSuggestV2JSON');
     Route::get('/fdb-dx-icds-for-dxid', 'FDBPGController@dxICDsForDxID');
     Route::get('/fdb-allergy-suggest', 'FDBPGController@allergySuggest');
     Route::get('/fdb-allergy-suggest/json', 'FDBPGController@allergySuggestJSON');