Sfoglia il codice sorgente

FDB Playground (wip)

Vijayakrishnan 3 anni fa
parent
commit
4ac9e64f20

+ 18 - 1
app/Http/Controllers/FDBPGController.php

@@ -51,9 +51,26 @@ class FDBPGController extends Controller
         $dosageFormMedId = $request->input('dosage-form-med-id') ? trim($request->input('dosage-form-med-id')) : '';
         if (empty($dosageFormMedId)) return '';
         $matches = DB::connection('pgsql_fdb')->select(
-            "SELECT medid, med_medid_desc FROM rmiid1_med WHERE med_status_cd = '0' AND routed_dosage_form_med_id = :dosageFormMedId ORDER BY med_medid_desc",
+            "SELECT medid, med_medid_desc, gcn_seqno FROM rmiid1_med WHERE med_status_cd = '0' AND routed_dosage_form_med_id = :dosageFormMedId ORDER BY med_medid_desc",
             ['dosageFormMedId' => $dosageFormMedId]
         );
         return json_encode($matches);
     }
+
+    public function sideEffects(Request $request)
+    {
+        $gcnSeqNo = $request->input('gcn-seq-no') ? trim($request->input('gcn-seq-no')) : '';
+        if (empty($gcnSeqNo)) return '';
+        $sides = DB::connection('pgsql_fdb')->select("
+SELECT r1.side, sm.side_freq, sm.side_sev, sm.dxid, dx.dxid_desc56 
+FROM rsidegc0_gcnseqno_link r1 
+    JOIN rsidema3_mstr sm ON r1.side = sm.side
+    JOIN rfmldx0_dxid dx ON sm.dxid = dx.dxid
+WHERE r1.gcn_seqno = :gcnSeqNo
+ORDER BY sm.side_sev DESC, sm.side_freq ASC
+            ",
+            ['gcnSeqNo' => $gcnSeqNo]
+        );
+        return view('app.fdb-pg.fdb-side-effects', compact('sides'));
+    }
 }

+ 23 - 0
resources/views/app/fdb-pg/fdb-side-effects.blade.php

@@ -0,0 +1,23 @@
+@if(!count($sides))
+    <span class="d-block no-suggest-items">No side effects!</span>
+@else
+    <table class="table table-sm table-striped table-bordered">
+        <thead>
+        <tr>
+            <th>Side Effect</th>
+            <th>Severity</th>
+            <th>Frequency</th>
+        </tr>
+        </thead>
+        <tbody>
+        @foreach($sides as $side)
+            <tr>
+                <td class="font-weight-bold">{{$side->dxid_desc56}}</td>
+                <td>{{$side->side_sev == 0 ? 'Not Severe' : 'Severe'}}</td>
+                <td>{{$side->side_sev == 0 ? 'High' : ($side->side_sev == 1 ? 'Low' : 'Rare')}}</td>
+            </tr>
+        @endforeach
+        </tbody>
+    </table>
+@endif
+

+ 18 - 3
resources/views/app/fdb-pg/index.blade.php

@@ -12,7 +12,7 @@
             </div>
             <div class="card-body px-3 py-4">
                 <div class="row">
-                    <div class="col-4 min-width-300px">
+                    <div class="col-3">
                         <div class="mb-3 d-flex align-items-center">
                             <label class="m-0 width-100px">Search</label>
                             <div class="flex-grow-1">
@@ -47,7 +47,9 @@
                                 </select>
                             </div>
                         </div>
-                        <div>More...</div>
+                    </div>
+                    <div class="col-3 side-effects">
+
                     </div>
                 </div>
             </div>
@@ -143,6 +145,13 @@
                 }
             }
 
+            function fillSideEffects(_gcn_seqno) {
+                $('.side-effects').empty();
+                $.get('/fdb-side-effects?gcn-seq-no=' + _gcn_seqno, _data => {
+                    $('.side-effects').html(_data);
+                });
+            }
+
             addMCInitializer('fdb-pg', function() {
 
                 $('[fdb-med-suggest-search]:not([fdb-suggest-initialized])').each(function() {
@@ -236,12 +245,18 @@
                             .empty()
                             .append('<option value="">-- select --</option>');
                         for (let i = 0; i < _data.length; i++) {
-                            strengthSelect.append('<option value="' + _data[i].medid + '">' + _data[i].med_medid_desc + '</option>')
+                            strengthSelect.append('<option value="' + _data[i].gcn_seqno + '">' + _data[i].med_medid_desc + '</option>')
                         }
                     }, 'json');
                     strengthSelect.prop('disabled', false);
                 });
 
+                // on strength (medid) selection
+                $(document).off('change', '[fdb-med-suggest-strength]');
+                $(document).on('change', '[fdb-med-suggest-strength]', function () {
+                    fillSideEffects($(this).val());
+                });
+
             }, '#fdb-pg');
         }).call(window);
     </script>

+ 1 - 0
routes/web.php

@@ -328,6 +328,7 @@ Route::middleware('pro.auth')->group(function () {
     Route::get('/fdb-routed-meds', 'FDBPGController@routedMeds');
     Route::get('/fdb-routed-dosages', 'FDBPGController@routedDosages');
     Route::get('/fdb-meds', 'FDBPGController@meds');
+    Route::get('/fdb-side-effects', 'FDBPGController@sideEffects');
 });
 
 Route::post("/process_form_submit", 'NoteController@processFormSubmit')->name('process_form_submit');