mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-12 03:01:32 +00:00
updated streamline-setup v2
This commit is contained in:
Executable
+88
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\WardManagement\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Streamline\Models\InpatientInfo;
|
||||
use Carbon\Carbon;
|
||||
use Streamline\Models\Ward;
|
||||
|
||||
class InpatientBillsController extends Controller {
|
||||
public function __construct() {
|
||||
$this->middleware('auth');
|
||||
$this->middleware('permission:incoming-inpatient-bills', ['only' => ['incoming_inpatient_bills']]);
|
||||
}
|
||||
|
||||
public function incoming_inpatient_bills(Request $request) {
|
||||
$filters = [];
|
||||
|
||||
if ($request->search_by == 1) {
|
||||
$end = Carbon::yesterday()->endOfDay()->toDateTimeString();
|
||||
$start = Carbon::yesterday()->startOfDay()->toDateTimeString();
|
||||
$search_text = " Yesterday";
|
||||
} else if ($request->search_by == 2) {
|
||||
$end = Carbon::parse($request->reg_date)->endOfDay()->toDateTimeString();
|
||||
$start = Carbon::parse($request->reg_date)->startOfDay()->toDateTimeString();
|
||||
$search_text = " On: " . streamline_date($request->reg_date);
|
||||
} else if ($request->search_by == 3) {
|
||||
$end = Carbon::parse($request->end_date)->endOfDay()->toDateTimeString();
|
||||
$start = Carbon::parse($request->start_date)->startOfDay()->toDateTimeString();
|
||||
$search_text = " Between: " . streamline_date($request->start_date) . " And " . streamline_date($request->end_date);
|
||||
} else {
|
||||
$end = Carbon::today()->endOfDay()->toDateTimeString();
|
||||
$start = Carbon::today()->startOfDay()->toDateTimeString();
|
||||
$search_text = " Today";
|
||||
}
|
||||
|
||||
if(isset($request->ward_id) && $request->ward_id != 0){
|
||||
$filters[] = ['inpatient_info.ward_id', '=', $request->ward_id];
|
||||
}
|
||||
|
||||
if ($request->inpatient_status == 1) {
|
||||
// patient still admitted in date range
|
||||
$search_text = "Patients Still Admitted" . $search_text;
|
||||
|
||||
$inpatients_info = DB::table('inpatient_info')
|
||||
->where('inpatient_info.discharged_on', '>', $end)
|
||||
->OrWhereNull('inpatient_info.discharged_on')
|
||||
->where('inpatient_info.admitted_on', '<', $end)
|
||||
->join('patients', 'inpatient_info.patient_id', '=', 'patients.id')
|
||||
->join('inpatient_bills', 'inpatient_info.id', '=', 'inpatient_bills.inpatient_info_id')
|
||||
->select('inpatient_info.*', 'patients.category_id as patients_category_id', 'patients.number as patients_number',
|
||||
'inpatient_bills.amount_to_pay as bills_amount_to_pay', 'inpatient_bills.invoices_amount as bills_invoices_amount', 'inpatient_bills.created_by as bills_created_by',
|
||||
'inpatient_bills.updated_by as bills_updated_by', 'inpatient_bills.original_bill as bills_original_bill', 'inpatient_bills.amount_paid as bills_amount_paid')
|
||||
->paginate(200);
|
||||
} else {
|
||||
if ($request->inpatient_status == 2) {
|
||||
// patient discharge in data range
|
||||
$filters[] = ['inpatient_info.discharged_on', '>', $start];
|
||||
$filters[] = ['inpatient_info.discharged_on', '<', $end];
|
||||
$filters[] = ['inpatient_info.discharged', '=', 1];
|
||||
$search_text = "Patients Discharged" . $search_text;
|
||||
} else {
|
||||
// all patients
|
||||
$filters[] = ['inpatient_info.created_at', '>', $start];
|
||||
$filters[] = ['inpatient_info.created_at', '<', $end];
|
||||
$search_text = "Patients Admitted" . $search_text;
|
||||
}
|
||||
|
||||
$inpatients_info = DB::table('inpatient_info')
|
||||
->where($filters)
|
||||
->join('patients', 'inpatient_info.patient_id', '=', 'patients.id')
|
||||
->join('inpatient_bills', 'inpatient_info.id', '=', 'inpatient_bills.inpatient_info_id')
|
||||
->select('inpatient_info.*', 'patients.category_id as patients_category_id', 'patients.number as patients_number',
|
||||
'inpatient_bills.amount_to_pay as bills_amount_to_pay', 'inpatient_bills.invoices_amount as bills_invoices_amount', 'inpatient_bills.created_by as bills_created_by',
|
||||
'inpatient_bills.updated_by as bills_updated_by', 'inpatient_bills.original_bill as bills_original_bill', 'inpatient_bills.amount_paid as bills_amount_paid')
|
||||
->paginate(200);
|
||||
}
|
||||
|
||||
$patient_categories = DB::table('patient_categories')->where('available', 1)->pluck('name', 'id')->toArray();
|
||||
$wards = DB::table('wards')->where('available', 1)->pluck('name', 'id')->toArray();
|
||||
$wards = ['' => '- select -', '0' => 'All wards'] + $wards;
|
||||
|
||||
$inpatient_status = [0 => "All Patients", 1 => "Still Admitted", 2 => "Discharged"];
|
||||
|
||||
return view('ward_management::inpatient.incoming_bills',compact('inpatients_info','wards','inpatient_status', 'search_text', 'patient_categories'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user