Explorar o código

RM Reason ICDs

Samson Mutunga %!s(int64=3) %!d(string=hai) anos
pai
achega
82865ee518

+ 7 - 2
app/Http/Controllers/Controller.php

@@ -92,11 +92,16 @@ class Controller extends BaseController
         ];
     }
 
-    public function filterMultiQuery(Request $request, $query, $columnName, $keyName, $valueName1, $valueName2) {
+    public function filterMultiQuery(Request $request, $query, $columnName, $keyName, $valueName1, $valueName2, $onlyDate = true) {
         switch($request->input($keyName)) {
             case 'EXACTLY':
                 if($request->input($valueName1)) {
-                    $query->where($columnName, $request->input($valueName1));
+                    if($onlyDate){
+                        $query->whereDate($columnName, $request->input($valueName1));
+                    }else{
+                        $query->where($columnName, $request->input($valueName1));
+                    }
+                    
                 }
                 break;
             case 'LESS_THAN':

+ 23 - 4
app/Http/Controllers/PracticeManagementController.php

@@ -311,14 +311,33 @@ SELECT effective_date, count(*), sum(number_of_units) as units FROM bill WHERE c
         $filters = $request->all();
 
         $this->filterMultiQuery($request, $query, 'created_at', 'created_at_category', 'created_at_value_1', 'created_at_value_2');
-        $this->filterMultiQuery($request, $query, 'effective_time', 'effective_date_category', 'effective_date_value_1', 'effective_date_value_2');
+        $this->filterMultiQuery($request, $query, 'effective_dateest', 'effective_date_category', 'effective_date_value_1', 'effective_date_value_2');
        
+        $filterByProsIDs = $request->get('pros');
+        if($filterByProsIDs && count($filterByProsIDs)){
+            $query = $query->whereIn('hcp_pro_id', $filterByProsIDs);
+        }
+
+        $filterByPatientsIDs = $request->get('patients');
+        if($filterByPatientsIDs && count($filterByPatientsIDs)){
+            $query = $query->whereIn('client_id', $filterByPatientsIDs);
+        } 
         
+        $status = $request->get('status');
+        if($status){
+            if($status == 'CANCELLED') $query = $query->where('is_cancelled', true);
+        }
 
-        $notes = $query->orderBy('created_at', 'desc')->paginate(30);
+        
         $allProsWithNotesIDs = Note::pluck('hcp_pro_id')->toArray();
-         $allProsWithNotes = Pro::whereIn('id', $allProsWithNotesIDs)->get();
-        return view('app.practice-management.all-notes', compact('notes', 'filters','allProsWithNotes'));
+        $allProsWithNotes = Pro::whereIn('id', $allProsWithNotesIDs)->get();
+
+        $allPatientsWithNotesIDs = Note::pluck('client_id')->toArray();
+        $allPatientsWithNotes = Client::whereIn('id', $allPatientsWithNotesIDs)->get();
+
+        $notes = $query->orderBy('created_at', 'desc')->paginate(30);
+
+        return view('app.practice-management.all-notes', compact('notes', 'filters','allProsWithNotes', 'allPatientsWithNotes'));
     }
 
     public function dnaNotesPendingMcpSign(Request $request)

+ 4 - 0
js-dev/icd-autocomplete.js

@@ -5,6 +5,10 @@
         $('[icd-autocomplete-code]:not([ac-initialized])').each(function() {
             let elem = this, dynID = 'icd-' + Math.ceil(Math.random() * 1000000),
                 codeElem = $(this), descElem = $(this).closest('form').find('[icd-autocomplete-description]');
+            var targetDescElem = $(this).data('target');
+            if(targetDescElem){
+                descElem = $(this).closest('form').find(targetDescElem);
+            }
             $(elem).attr('id', dynID);
             new window.Def.Autocompleter.Search(dynID,
                 'https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search?sf=code,name&ef=name', {

+ 4 - 0
public/js/icd-autocomplete.js

@@ -5,6 +5,10 @@
         $('[icd-autocomplete-code]:not([ac-initialized])').each(function() {
             let elem = this, dynID = 'icd-' + Math.ceil(Math.random() * 1000000),
                 codeElem = $(this), descElem = $(this).closest('form').find('[icd-autocomplete-description]');
+            var targetDescElem = $(this).data('target');
+            if(targetDescElem){
+                descElem = $(this).closest('form').find(targetDescElem);
+            }
             $(elem).attr('id', dynID);
             new window.Def.Autocompleter.Search(dynID,
                 'https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search?sf=code,name&ef=name', {

+ 58 - 0
resources/views/app/patient/partials/put-rm-reasons.blade.php

@@ -0,0 +1,58 @@
+<div moe>
+	<a start show><i class="fas fa-edit"></i></a>
+	<form url="/api/client/putRmReasons" class="mcp-theme-1">
+		<input type="hidden" name="uid" value="{{$patient->uid}}">
+		<div class="bg-light p-3 mb-2">
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 1</label>
+				<input type="text" class="form-control form-control-sm" icd-autocomplete-code data-target="input[name=rmReasonIcd1Description]" name="rmReasonIcd1" value="{{ $patient->rm_reason_icd1 }}" />
+			</div>
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 1 Description</label>
+				<input id="" type="text" class="form-control form-control-sm" icd-autocomplete-description name="rmReasonIcd1Description" value="{{ $patient->rm_reason_icd1description }}">
+			</div>
+		</div>
+
+		<div class="bg-light p-3 mb-2">
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 2</label>
+				<input type="text" class="form-control form-control-sm" icd-autocomplete-code name="rmReasonIcd2" data-target="input[name=rmReasonIcd2Description]" value="{{ $patient->rm_reason_icd2 }}" />
+			</div>
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 2 Description</label>
+				<input type="text" class="form-control form-control-sm" icd-autocomplete-description name="rmReasonIcd2Description" value="{{ $patient->rm_reason_icd2description }}">
+			</div>
+		</div>
+
+		<div class="bg-light p-3 mb-2">
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 3</label>
+				<input type="text" class="form-control form-control-sm" icd-autocomplete-code name="rmReasonIcd3" data-target="input[name=rmReasonIcd3Description]" value="{{ $patient->rm_reason_icd3 }}" />
+			</div>
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 3 Description</label>
+				<input type="text" class="form-control form-control-sm" icd-autocomplete-description name="rmReasonIcd3Description" value="{{ $patient->rm_reason_icd3description }}">
+			</div>
+		</div>
+		<div class="bg-light p-3 mb-2">
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 4</label>
+				<input type="text" class="form-control form-control-sm" icd-autocomplete-code name="rmReasonIcd4" data-target="input[name=rmReasonIcd4Description]" value="{{ $patient->rm_reason_icd4 }}" />
+			</div>
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Icd 4 Description</label>
+				<input type="text" class="form-control form-control-sm" icd-autocomplete-description name="rmReasonIcd4Description" value="{{ $patient->rm_reason_icd4description }}">
+			</div>
+		</div>
+		<div class="bg-light p-3 mb-2">
+			<div class="mb-2">
+				<label class="text-sm mb-1 text-secondary">RM Reason Memo</label>
+				<input type="text" class="form-control form-control-sm" name="rmResonMemo" value="{{ $patient->rm_reason_memo }}">
+			</div>
+		</div>
+		<div>
+			<button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+			<button cancel class="btn btn-sm btn-default border">Cancel</button>
+		</div>
+	</form>
+</div>

+ 57 - 3
resources/views/app/patient/partials/rm-setup.blade.php

@@ -104,8 +104,62 @@
                 </div>
             </div>
         </div>
-
-        <div class="d-flex align-items-baseline mb-3">
+        <div class="d-flex align-items-baseline mb-1">
+            <span class="width-200px">RM Reasons:</span>
+            <div class="ml-3">
+                <div>
+                    <span class="text-secondary mr-1">None</span>
+                    @include('app.patient.partials.put-rm-reasons')
+                </div>
+            </div>
+        </div>
+        <div class="pl-3" style="width: 400px;">
+            <table class="table table-sm table-striped table-bordered">
+                <tbody>
+                    <tr>
+                        <td class="text-nowrap">RM Reason Icd 1</td>
+                        <td>
+                            <div class="d-flex flex-column">
+                                <span class="font-weight-bold">{{ $patient->rm_reason_icd1 }}</span>
+                                <small class="text-muted">{{ $patient->rm_reason_icd1description }}</small>
+                            </div>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="text-nowrap">RM Reason Icd 2</td>
+                        <td>
+                        <div class="d-flex flex-column">
+                                <span class="font-weight-bold">{{ $patient->rm_reason_icd2 }}</span>
+                                <small class="text-muted">{{ $patient->rm_reason_icd2description }}</small>
+                            </div>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="text-nowrap">RM Reason Icd 3</td>
+                        <td>
+                        <div class="d-flex flex-column">
+                                <span class="font-weight-bold">{{ $patient->rm_reason_icd3 }}</span>
+                                <small class="text-muted">{{ $patient->rm_reason_icd3description }}</small>
+                            </div>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="text-nowrap">RM Reason Icd 4</td>
+                        <td>
+                        <div class="d-flex flex-column">
+                                <span class="font-weight-bold">{{ $patient->rm_reason_icd4 }}</span>
+                                <small class="text-muted">{{ $patient->rm_reason_icd4description }}</small>
+                            </div>
+                        </td>
+                    </tr>
+                    <tr>
+                        <td class="text-nowrap">RM Reason Memo</td>
+                        <td>{{ $patient->rm_reason_memo }}</td>
+                    </tr>
+                </tbody>
+            </table>
+        </div>
+        {{--<div class="d-flex align-items-baseline mb-3">
             <span class="width-200px">RM Reasons:</span>
             <div class="ml-3">
                 @if(!$patient->rmReasons || !count($patient->rmReasons))
@@ -168,7 +222,7 @@
                     </div>
                 </div>
             </div>
-        </div>
+        </div>--}}
 
         @if($pro->pro_type === 'ADMIN')
             <div class="d-flex align-items-baseline mb-3">

+ 2 - 0
resources/views/app/practice-management/all-notes.blade.php

@@ -24,6 +24,7 @@
                         <th class="px-3 border-0">Created</th>
                         <th class="border-0">Effective Date</th>
                         <th class="border-0">Patient</th>
+                        <th class="border-0">MCP</th>
                         <th class="border-0 w-50">Content</th>
                     </tr>
                 </thead>
@@ -42,6 +43,7 @@
                         <td class="">
                             <a href="/patients/view/{{ $note->client->uid }}">{{ $note->client->displayName() }}</a>
                         </td>
+                        <td>{{ $note->hcpPro ? $note->hcpPro->displayName() : '-' }}</td>
                         <td class="">
                             <?php
                             $textContent = strip_tags($note->free_text_html);

+ 17 - 4
resources/views/app/practice-management/notes_filters.blade.php

@@ -73,7 +73,7 @@
 	<div>
 		<div class="form-group">
 			<label>Pro(s):</label>
-			<select multiple class="form-control form-control-sm mr-2" name="pros" v-model="filters.pros">
+			<select multiple class="form-control form-control-sm mr-2" name="pros[]" v-model="filters.pros">
 				<option value="">All Pros</option>
 				@foreach($allProsWithNotes as $notePro)
 				<option value="{{ $notePro->id }}">{{ $notePro->displayName() }}</option>
@@ -84,9 +84,21 @@
 	<div>
 		<div class="form-group">
 			<label>Patients(s):</label>
-			<select multiple class="form-control form-control-sm mr-2" name="patients" v-model="filters.patients">
+			<select multiple class="form-control form-control-sm mr-2" name="patients[]" v-model="filters.patients">
 				<option value="">All Patients</option>
-				
+				@foreach($allPatientsWithNotes as $notePatient)
+					<option value="{{ $notePatient->id }}">{{ $notePatient->displayName() }}</option>
+				@endforeach
+			</select>
+		</div>
+	</div>
+
+	<div>
+		<div class="form-group">
+			<label>Status:</label>
+			<select class="form-control form-control-sm mr-2" name="status" v-model="filters.status">
+				<option value="">All Notes</option>
+				<option value="CANCELLED">Cancelled</option>
 			</select>
 		</div>
 	</div>
@@ -112,7 +124,8 @@ $allFilterKeys = [
 	'effective_date_value_1',
 	'effective_date_value_2',
 	'pros',
-	'patients'
+	'patients',
+	'status'
 ];
 for ($i = 0; $i < count($allFilterKeys); $i++) {
 	if (!isset($loadedFilters[$allFilterKeys[$i]]) || !$loadedFilters[$allFilterKeys[$i]]) {