Files
2024-04-19 14:04:41 +07:00

479 lines
19 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Auth;
class IcdController extends Controller
{
public function __construct(Request $request)
{
// $this->middleware('auth:api');
if(null == $request->header('x-token'))
{
return response()->json(['error' => 'Unauthorized'], 401);
}
$user = DB::table('webservice')->where('token',$request->header('x-token'))->first();
if(!$user || empty($user)){
return response()->json(['error' => 'Unauthorized'], 401);
}
}
public function rajalDiagFiltered($tgl_awal,$tgl_akhir,Request $request)
{
$token = $request->header('x-token');
$user = DB::table('webservice')->where('token',$token)->first();
if(!$user || empty($user)){
return response()->json(['error' => 'Unauthorized'], 401);
}
// $tgl_awal = urldecode($tgl_awal);
// $tgl_akhir = urldecode($tgl_akhir);
$incovit = DB::table('m_ruang')->select('no')->where([
['kelompok','=','IGD'],
['st_aktif','=',1]
])->get();
$arr_incovit = [];
foreach ($incovit as $row) {
$arr_incovit[] = $row->no;
}
if(null == $tgl_awal || null == $tgl_akhir)
{
return response()->json(['error' => 'Invalid Parameter!'],400);
}
$result = DB::table('t_icd')
->join('icd','t_icd.icd','=','icd.icd_code')
->join('m_dokter','m_dokter.kddokter','=','t_icd.kddokter')
->join('t_pendaftaran','t_icd.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->select(DB::raw('t_icd.tanggal,m_ruang.nama as namaruang,icd.icd_code, icd.jenis_penyakit,m_dokter.namadokter,count(*) as jml'))
->where([
['status_rajal','=',1],
])
->whereNotIn('t_pendaftaran.kdpoly',$arr_incovit)
->whereBetween('t_icd.tanggal',[$tgl_awal,$tgl_akhir])
->groupBy('t_icd.tanggal','icd.icd_code','m_dokter.namadokter','m_ruang.nama')
->get();
// return $result;
$arr_result = [];
$i = 0;
foreach($result->all() as $key => $detil)
{
$row_detil = DB::table('t_icd')
->join('icd','t_icd.icd','=','icd.icd_code')
->join('m_dokter','m_dokter.kddokter','=','t_icd.kddokter')
->join('t_pendaftaran','t_icd.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->join('m_pasien','m_pasien.nomr','=','t_pendaftaran.nomr')
->leftJoin('m_statuskeluar','t_pendaftaran.status','=','m_statuskeluar.status')
->select(DB::raw('m_pasien.jeniskelamin,age(m_pasien.tgllahir) as usia,m_statuskeluar.keterangan as status_keluar'))
->where([
['status_rajal','=',1],
['m_ruang.nama','=',$detil->namaruang],
['icd.icd_code','=',$detil->icd_code],
['m_dokter.namadokter','=',$detil->namadokter],
['t_icd.tanggal','=',$detil->tanggal],
])
->whereNotIn('t_pendaftaran.kdpoly',$arr_incovit)
->get();
$set_result = collect($result[$key]);
// $set_result->pull('jml');
$set_result['pasien'] = $row_detil->all();
$arr_result[] = $set_result->all();
$result->forget($key);
$i++;
}
return response()->json($arr_result);
}
public function igdDiagFiltered($tgl_awal,$tgl_akhir,Request $request)
{
$token = $request->header('x-token');
$user = DB::table('webservice')->where('token',$token)->first();
if(!$user || empty($user)){
return response()->json(['error' => 'Unauthorized'], 401);
}
// $tgl_awal = urldecode($tgl_awal);
// $tgl_akhir = urldecode($tgl_akhir);
$incovit = DB::table('m_ruang')->select('no')->where([
['kelompok','=','IGD'],
['st_aktif','=',1]
])->get();
$arr_incovit = [];
foreach ($incovit as $row) {
$arr_incovit[] = $row->no;
}
if(null == $tgl_awal || null == $tgl_akhir)
{
return response()->json(['error' => 'Invalid Parameter!'],400);
}
$result = DB::table('t_icd')
->join('icd','t_icd.icd','=','icd.icd_code')
->join('m_dokter','m_dokter.kddokter','=','t_icd.kddokter')
->join('t_pendaftaran','t_icd.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->select(DB::raw('t_icd.tanggal,icd.icd_code, m_ruang.nama as namaruang,icd.jenis_penyakit,m_dokter.namadokter,count(*) as jml'))
->where([
['status_rajal','=',1],
])
->whereIn('t_pendaftaran.kdpoly',$arr_incovit)
->whereBetween('t_icd.tanggal',[$tgl_awal,$tgl_akhir])
->groupBy('t_icd.tanggal','icd.icd_code','m_ruang.nama','m_dokter.namadokter')
->get();
// return $result;
$arr_result = [];
$i = 0;
foreach($result->all() as $key => $detil)
{
$row_detil = DB::table('t_icd')
->join('icd','t_icd.icd','=','icd.icd_code')
->join('m_dokter','m_dokter.kddokter','=','t_icd.kddokter')
->join('t_pendaftaran','t_icd.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->join('m_pasien','m_pasien.nomr','=','t_pendaftaran.nomr')
->leftJoin('m_statuskeluar','t_pendaftaran.status','=','m_statuskeluar.status')
->select(DB::raw('m_pasien.jeniskelamin,age(m_pasien.tgllahir) as usia,m_statuskeluar.keterangan as status_keluar'))
->where([
['status_rajal','=',1],
['m_ruang.nama','=',$detil->namaruang],
['icd.icd_code','=',$detil->icd_code],
['m_dokter.namadokter','=',$detil->namadokter],
['t_icd.tanggal','=',$detil->tanggal],
])
->whereIn('t_pendaftaran.kdpoly',$arr_incovit)
->get();
$set_result = collect($result[$key]);
// $set_result->pull('jml');
$set_result['pasien'] = $row_detil->all();
$arr_result[] = $set_result->all();
$result->forget($key);
$i++;
}
return response()->json($arr_result);
}
public function ranapDiagFiltered($tgl_awal,$tgl_akhir,Request $request)
{
$token = $request->header('x-token');
$user = DB::table('webservice')->where('token',$token)->first();
if(!$user || empty($user)){
return response()->json(['error' => 'Unauthorized'], 401);
}
// $tgl_awal = urldecode($tgl_awal);
// $tgl_akhir = urldecode($tgl_akhir);
if(null == $tgl_awal || null == $tgl_akhir)
{
return response()->json(['error' => 'Invalid Parameter!'],400);
}
$result = DB::table('t_icd')
->join('icd','t_icd.icd','=','icd.icd_code')
->join('m_dokter','m_dokter.kddokter','=','t_icd.kddokter')
->join('t_admission','t_icd.idxdaftar','=','t_admission.id_admission')
->join('m_ruang','m_ruang.no','=','t_admission.noruang')
->select(DB::raw('t_icd.tanggal,m_ruang.kelompok,m_ruang.nama as namaruang,icd.icd_code, icd.jenis_penyakit,m_dokter.namadokter,count(*) as jml'))
->where([
['status_rajal','=',0],
])
->whereBetween('t_icd.tanggal',[$tgl_awal,$tgl_akhir])
->groupBy('t_icd.tanggal','icd.icd_code','m_dokter.namadokter','m_ruang.kelompok','m_ruang.nama')
->get();
// return $result;
$arr_result = [];
$i = 0;
foreach($result->all() as $key => $detil)
{
$row_detil = DB::table('t_icd')
->join('icd','t_icd.icd','=','icd.icd_code')
->join('m_dokter','m_dokter.kddokter','=','t_icd.kddokter')
->join('t_admission','t_icd.idxdaftar','=','t_admission.id_admission')
->join('m_ruang','m_ruang.no','=','t_admission.noruang')
->join('m_pasien','m_pasien.nomr','=','t_admission.nomr')
->leftJoin('t_resumepulang','t_resumepulang.idadmission','=','t_admission.id_admission')
->leftJoin('m_statuskeluarranap','m_statuskeluarranap.kode','=','t_resumepulang.statuspulang')
->select(DB::raw('m_pasien.jeniskelamin,age(m_pasien.tgllahir) as usia,m_statuskeluarranap.nama as status_keluar'))
->where([
['status_rajal','=',0],
['m_ruang.nama','=',$detil->namaruang],
['icd.icd_code','=',$detil->icd_code],
['m_dokter.namadokter','=',$detil->namadokter],
['t_icd.tanggal','=',$detil->tanggal],
])
->get();
$set_result = collect($result[$key]);
// $set_result->pull('jml');
$set_result['pasien'] = $row_detil->all();
$arr_result[] = $set_result->all();
$result->forget($key);
$i++;
}
return response()->json($arr_result);
}
public function rajalTindakanFiltered($tgl_awal,$tgl_akhir,Request $request)
{
$token = $request->header('x-token');
$user = DB::table('webservice')->where('token',$token)->first();
if(!$user || empty($user)){
return response()->json(['error' => 'Unauthorized'], 401);
}
// $tgl_awal = urldecode($tgl_awal);
// $tgl_akhir = urldecode($tgl_akhir);
$incovit = DB::table('m_ruang')->select('no')->where([
['kelompok','=','IGD'],
['st_aktif','=',1]
])->get();
$arr_incovit = [];
foreach ($incovit as $row) {
$arr_incovit[] = $row->no;
}
if(null == $tgl_awal || null == $tgl_akhir)
{
return response()->json(['error' => 'Invalid Parameter!'],400);
}
$result = DB::table('t_icd_cm')
->join('icd_cm','t_icd_cm.icd','=','icd_cm.kode')
->join('m_dokter','m_dokter.kddokter','=','t_icd_cm.kddokter')
->join('t_pendaftaran','t_icd_cm.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->select(DB::raw('t_icd_cm.tanggal,m_ruang.nama as namaruang,icd_cm.kode, icd_cm.keterangan,m_dokter.namadokter,count(*) as jml'))
->where([
['status_rajal','=',1],
])
->whereNotIn('t_pendaftaran.kdpoly',$arr_incovit)
->whereBetween('t_icd_cm.tanggal',[$tgl_awal,$tgl_akhir])
->groupBy('t_icd_cm.tanggal','icd_cm.kode','m_dokter.namadokter','m_ruang.nama')
->get();
// return $result;
$arr_result = [];
$i = 0;
foreach($result->all() as $key => $detil)
{
$row_detil = DB::table('t_icd_cm')
->join('icd_cm','t_icd_cm.icd','=','icd_cm.kode')
->join('m_dokter','m_dokter.kddokter','=','t_icd_cm.kddokter')
->join('t_pendaftaran','t_icd_cm.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->join('m_pasien','m_pasien.nomr','=','t_pendaftaran.nomr')
->leftJoin('m_statuskeluar','t_pendaftaran.status','=','m_statuskeluar.status')
->select(DB::raw('m_pasien.jeniskelamin,age(m_pasien.tgllahir) as usia,m_statuskeluar.keterangan as status_keluar'))
->where([
['status_rajal','=',1],
['m_ruang.nama','=',$detil->namaruang],
['icd_cm.kode','=',$detil->kode],
['m_dokter.namadokter','=',$detil->namadokter],
['t_icd_cm.tanggal','=',$detil->tanggal],
])
->whereNotIn('t_pendaftaran.kdpoly',$arr_incovit)
->get();
$set_result = collect($result[$key]);
// $set_result->pull('jml');
$set_result['pasien'] = $row_detil->all();
$arr_result[] = $set_result->all();
$result->forget($key);
$i++;
}
return response()->json($arr_result);
}
public function igdTindakanFiltered($tgl_awal,$tgl_akhir,Request $request)
{
$token = $request->header('x-token');
$user = DB::table('webservice')->where('token',$token)->first();
if(!$user || empty($user)){
return response()->json(['error' => 'Unauthorized'], 401);
}
// $tgl_awal = urldecode($tgl_awal);
// $tgl_akhir = urldecode($tgl_akhir);
$incovit = DB::table('m_ruang')->select('no')->where([
['kelompok','=','IGD'],
['st_aktif','=',1]
])->get();
$arr_incovit = [];
foreach ($incovit as $row) {
$arr_incovit[] = $row->no;
}
if(null == $tgl_awal || null == $tgl_akhir)
{
return response()->json(['error' => 'Invalid Parameter!'],400);
}
$result = DB::table('t_icd_cm')
->join('icd_cm','t_icd_cm.icd','=','icd_cm.kode')
->join('m_dokter','m_dokter.kddokter','=','t_icd_cm.kddokter')
->join('t_pendaftaran','t_icd_cm.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->select(DB::raw('t_icd_cm.tanggal,icd_cm.kode, m_ruang.nama as namaruang,icd_cm.keterangan,m_dokter.namadokter,count(*) as jml'))
->where([
['status_rajal','=',1],
])
->whereIn('t_pendaftaran.kdpoly',$arr_incovit)
->whereBetween('t_icd_cm.tanggal',[$tgl_awal,$tgl_akhir])
->groupBy('t_icd_cm.tanggal','icd_cm.kode','m_ruang.nama','m_dokter.namadokter')
->get();
// return $result;
$arr_result = [];
$i = 0;
foreach($result->all() as $key => $detil)
{
$row_detil = DB::table('t_icd_cm')
->join('icd_cm','t_icd_cm.icd','=','icd_cm.kode')
->join('m_dokter','m_dokter.kddokter','=','t_icd_cm.kddokter')
->join('t_pendaftaran','t_icd_cm.idxdaftar','=','t_pendaftaran.idxdaftar')
->join('m_ruang','m_ruang.no','=','t_pendaftaran.kdpoly')
->join('m_pasien','m_pasien.nomr','=','t_pendaftaran.nomr')
->leftJoin('m_statuskeluar','t_pendaftaran.status','=','m_statuskeluar.status')
->select(DB::raw('m_pasien.jeniskelamin,age(m_pasien.tgllahir) as usia,m_statuskeluar.keterangan as status_keluar'))
->where([
['status_rajal','=',1],
['m_ruang.nama','=',$detil->namaruang],
['icd_cm.kode','=',$detil->kode],
['m_dokter.namadokter','=',$detil->namadokter],
['t_icd_cm.tanggal','=',$detil->tanggal],
])
->whereIn('t_pendaftaran.kdpoly',$arr_incovit)
->get();
$set_result = collect($result[$key]);
// $set_result->pull('jml');
$set_result['pasien'] = $row_detil->all();
$arr_result[] = $set_result->all();
$result->forget($key);
$i++;
}
return response()->json($arr_result);
}
public function ranapTindakanFiltered($tgl_awal,$tgl_akhir,Request $request)
{
$token = $request->header('x-token');
$user = DB::table('webservice')->where('token',$token)->first();
if(!$user || empty($user)){
return response()->json(['error' => 'Unauthorized'], 401);
}
// $tgl_awal = urldecode($tgl_awal);
// $tgl_akhir = urldecode($tgl_akhir);
if(null == $tgl_awal || null == $tgl_akhir)
{
return response()->json(['error' => 'Invalid Parameter!'],400);
}
$result = DB::table('t_icd_cm')
->leftJoin('icd_cm as cm1','t_icd_cm.icd','=','cm1.kode')
->leftJoin('icd_cm as cm2','t_icd_cm.icd_verified','=','cm2.kode')
->join('m_dokter','m_dokter.kddokter','=','t_icd_cm.kddokter')
->join('t_admission','t_icd_cm.idxdaftar','=','t_admission.id_admission')
->join('m_ruang','m_ruang.no','=','t_admission.noruang')
->select(DB::raw('t_icd_cm.tanggal,m_ruang.kelompok,m_ruang.nama as namaruang,case when cm1.kode is null then cm2.kode end as kode, case when cm1.keterangan is null then cm2.keterangan end as keterangan,m_dokter.namadokter,count(*) as jml'))
->where([
['status_rajal','=',0],
])
->whereBetween('t_icd_cm.tanggal',[$tgl_awal,$tgl_akhir])
->groupBy('t_icd_cm.tanggal','cm1.kode','cm2.kode','m_dokter.namadokter','m_ruang.kelompok','m_ruang.nama')
->get();
// return $result;
$arr_result = [];
$i = 0;
foreach($result->all() as $key => $detil)
{
$row_detil = DB::table('t_icd_cm')
->leftJoin('icd_cm as cm1','t_icd_cm.icd','=','cm1.kode')
->leftJoin('icd_cm as cm2','t_icd_cm.icd_verified','=','cm2.kode')
->join('m_dokter','m_dokter.kddokter','=','t_icd_cm.kddokter')
->join('t_admission','t_icd_cm.idxdaftar','=','t_admission.id_admission')
->join('m_ruang','m_ruang.no','=','t_admission.noruang')
->join('m_pasien','m_pasien.nomr','=','t_admission.nomr')
->leftJoin('t_resumepulang','t_resumepulang.idadmission','=','t_admission.id_admission')
->leftJoin('m_statuskeluarranap','m_statuskeluarranap.kode','=','t_resumepulang.statuspulang')
->select(DB::raw('m_pasien.jeniskelamin,age(m_pasien.tgllahir) as usia,m_statuskeluarranap.nama as status_keluar'))
->where([
['status_rajal','=',0],
['m_ruang.nama','=',$detil->namaruang],
['m_dokter.namadokter','=',$detil->namadokter],
['t_icd_cm.tanggal','=',$detil->tanggal],
])
->where(function($query) use ($detil) {
$query->where('cm1.kode','=',$detil->kode)
->orWhere('cm2.kode','=',$detil->kode);
})
// ->whereNotIn('t_pendaftaran.kdpoly',$arr_incovit)
->get();
$set_result = collect($result[$key]);
// $set_result->pull('jml');
$set_result['pasien'] = $row_detil->all();
$arr_result[] = $set_result->all();
$result->forget($key);
$i++;
}
return response()->json($arr_result);
}
}