479 lines
19 KiB
PHP
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);
|
|
}
|
|
} |