Samson Mutunga 3 年之前
父節點
當前提交
98ecc0c4ae

+ 9 - 4
app/Http/Controllers/McpController.php

@@ -160,8 +160,14 @@ class McpController extends Controller
 
     public function erx_and_orders(Request $request)
     {
-        $erxAndOrders = Erx::paginate(5);
-        return view('app.mcp.erx_and_orders', compact('erxAndOrders'));
+        $filters = $request->all();
+        $erxAndOrders = Erx::query();
+        $erxAndOrders = $erxAndOrders->where('hcp_pro_id', $this->performer->pro->id);
+        $this->filterMultiQuery($request, $erxAndOrders, 'created_at', 'date_category', 'date_value_1', 'date_value_2');
+        $this->filterSimpleQuery($request, $erxAndOrders, 'pro_declared_status', 'status');
+
+        $erxAndOrders = $erxAndOrders->orderBy('created_at', 'DESC')->paginate(20);
+        return view('app.mcp.erx_and_orders', compact('erxAndOrders', 'filters'));
     }
 
     public function reports(Request $request)
@@ -175,8 +181,7 @@ class McpController extends Controller
         $filters = $request->all();
         $supplyOrders = SupplyOrder::select('supply_order.*')->where('supply_order.signed_by_pro_id', $this->performer->pro->id);
         $this->filterMultiQuery($request, $supplyOrders, 'created_at', 'date_category', 'date_value_1', 'date_value_2');
-        $status = $request->get('status');
-        
+        $status = $request->get('status');        
         if($status){
             if($status == 'CLEARED_FOR_SHIPMENT'){
                 $supplyOrders = $supplyOrders->where('is_cleared_for_shipment', true);

+ 43 - 6
resources/views/app/mcp/erx_and_orders.blade.php

@@ -20,23 +20,60 @@
                     <tr>
                         <th class="px-3 border-0">Date</th>
                         <th class="px-3 border-0">Patient</th>
+                        <th class="border-bottom-0">Category</th>
                         <th class="px-3 border-0">Content</th>
                         <th class="px-3 border-0">Status</th>
                     </tr>
                 </thead>
                 <tbody>
-                    @foreach($erxAndOrders as $erxAndOrder)
+                    @foreach($erxAndOrders as $row)
                     <tr>
-                        <td>{{-- date --}} -</td>
-                        <td>{{-- patient --}} -</td>
-                        <td>{{-- content --}} - </td>
-                        <td>{{-- status --}} - </td>
+                        <td>{{ friendly_date_time($row->created_at) }}</td>
+                        <td>
+                            <a target="_blank" native href="{{route('patients.view.dashboard', $row->client)}}">
+                                {{$row->client->displayName()}}
+                            </a>
+                        </td>
+                        <td>{{ ucwords($row->erx_category) }}</td>
+                        <td>
+                            <?php $parsed = @$row->clinical_detail_json ? json_decode($row->clinical_detail_json) : false; ?>
+                            @if($row->erx_category === 'DRUG')
+                                <?php
+                                $drugs = ($parsed && @$parsed->items) ? $parsed->items : [];
+                                ?>
+                                @foreach($drugs as $drug)
+                                    <div class="d-flex align-items-baseline mb-1">
+                                        <b class="mr-2">{{$drug->medication ?? '-'}}</b>
+                                        <span class="text-secondary mr-1">{{$drug->frequency ?? ''}}</span>
+                                    </div>
+                                @endforeach
+                            @elseif($row->erx_category === 'LAB' || $row->erx_category === 'IMAGING')
+                                <?php
+                                $tests = ($parsed && @$parsed->tests) ? $parsed->tests : [];
+                                ?>
+                                @foreach($tests as $test)
+                                    <div class="d-flex align-items-baseline mb-1">
+                                        <b class="mr-2">{{$test ?? '-'}}</b>
+                                    </div>
+                                @endforeach
+                            @elseif($row->erx_category === 'REFERRAL')
+                                <b class="mr-2">{{@$parsed->to ?? '-'}}</b>
+                                <span class="text-secondary mr-1">{{@$parsed->memo ?? '-'}}</span>
+                            @elseif($row->erx_category === 'SUPPLY')
+                                <b class="mr-2">{{@$parsed->item ?? '-'}}</b>
+                                <span class="text-secondary mr-1">{{@$parsed->quantity ?? '-'}}</span>
+                            @elseif($row->erx_category === 'OTHER')
+                                <b class="mr-2">{{@$parsed->title ?? '-'}}</b>
+                                <span class="text-secondary mr-1">{{@$parsed->memo ?? '-'}}</span>
+                            @endif
+                        </td>
+                        <td>{{ $row->pro_declared_status ?: '-' }}</td>
                     </tr>
                     @endforeach
 
                     @if(count($erxAndOrders) === 0)
                     <tr>
-                        <td colspan="4">No records found!</td>
+                        <td colspan="5">No records found!</td>
                     </tr>
                     @endif
                 </tbody>

+ 29 - 15
resources/views/app/mcp/erx_and_orders_filters.blade.php

@@ -25,13 +25,13 @@
 	<div v-if="filters.date_category" class="col-md-2">
 		<div class="form-group">
 			<label>&nbsp;</label>
-			<input name="date_value_1" value="{{ $date_value_1 ?? '' }}" type="date" class="form-control input-sm" :placeholder="(filters.date_category === 'BETWEEN' || filters.date_category === 'NOT_BETWEEN') ? 'From' : 'Date'" />
+			<input name="date_value_1" v-model="filters.date_value_1" type="date" class="form-control input-sm" :placeholder="(filters.date_category === 'BETWEEN' || filters.date_category === 'NOT_BETWEEN') ? 'From' : 'Date'" />
 		</div>
 	</div>
 	<div v-if="filters.date_category && (filters.date_category === 'BETWEEN' || filters.date_category === 'NOT_BETWEEN')" class="col-md-2">
 		<div class="form-group">
 			<label>&nbsp;</label>
-			<input name="date_value_2" value="{{ $date_value_2 ?? '' }}" type="date" class="form-control input-sm" placeholder="To" />
+			<input name="date_value_2" v-model="filters.date_value_2" type="date" class="form-control input-sm" placeholder="To" />
 		</div>
 	</div>
 	<!-- STATUS -->
@@ -39,12 +39,12 @@
 		<div class="form-group">
 			<label>Status:</label>
 			<select name="status" class="form-control input-sm" v-model="filters.status">
-				<option value="ALL">All</option>
-				<option value="NEW">New</option>
-				<option value="SIGNED">Signed</option>
-				<option value="VERIFIED">Verified</option>
-				<option value="PROCESSED">Processed</option>
-				<option value="CANCELLED">Cancelled</option>
+				<option value="">All</option>
+				<option value="CREATED">CREATED</option>
+				<option value="SENT">SENT</option>
+				<option value="RECEIVED_BY_CLIENT">RECEIVED BY CLIENT</option>
+				<option value="RECEIPT_CONFIRMED_BY_FACILITY">RECEIPT CONFIRMED BY FACILITY</option>
+				<option value="CANCELLED">CANCELLED</option>
 			</select>
 		</div>
 	</div>
@@ -52,12 +52,25 @@
 	<div class="col-md-2">
 		<div class="form-group d-flex">
 			<label>&nbsp;</label>
-			<button type="submit" class="btn btn-primary btn-sm mr-2 mw-100px">Apply Filters</button>
-			<a href="{{ route('mcp.patients') }}" class="btn btn-danger btn-sm text-white mw-100px">Clear Filters</a>
+			<button type="submit" v-on:click.prevent="doSubmit()" class="btn btn-primary btn-sm mr-2 mw-100px">Apply Filters</button>
+			<a href="#" v-on:click.prevent="fastLoad('{{route('mcp.erx_and_orders')}}')" class="btn btn-danger btn-sm text-white mw-100px">Clear Filters</a>
 		</div>
 	</div>
 </form>
-
+<?php
+$loadedFilters = $filters;
+$allFilterKeys = [
+	'date_category',
+	'date_value_1',
+	'date_value_2',
+	'status'
+];
+for ($i=0; $i < count($allFilterKeys); $i++) {
+	if (!isset($loadedFilters[$allFilterKeys[$i]]) || !$loadedFilters[$allFilterKeys[$i]]) {
+		$loadedFilters[$allFilterKeys[$i]] = '';
+	}
+}
+?>
 <script>
 	(function() {
 		function init() {
@@ -65,12 +78,13 @@
 				el: '#mcp-erx-and-orders-filters',
 				delimiters: ['@{{', '}}'],
 				data: {
-					filters: {
-						date_category: "<?= $date_category ?? '' ?>",
-						status: "<?= $status ?? '' ?>"
-					}
+					filters: <?= json_encode($loadedFilters) ?>
 				},
 				methods: {
+					doSubmit: function() {
+						fastLoad('{{ route("mcp.erx_and_orders") }}?' + $('#mcp-erx-and-orders-filters').serialize());
+						return false;
+					},
 					init: function() {
 
 					}