dokter-telekonsultasi/app/Http/Controllers/Dokter/ListPasienTelekonsultasiController.php
2025-03-26 10:01:46 +07:00

78 lines
4.1 KiB
PHP

<?php
namespace App\Http\Controllers\Dokter;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DB;
use Auth;
class ListPasienTelekonsultasiController extends Controller
{
public function ListPasienTelekonsultasi(Request $request)
{
//$dateStart = (isset($request->tanggal)) ? $request->tanggal.' 00:00:00' : date('2025-01-01 00:00:00');
//$dateEnd = (isset($request->tanggal)) ? $request->tanggal.' 23:59:59' : date('2025-03-30 23:59:59');
$pegawaiLogin = Auth::user()->smart_pk;
$dateStart = (isset($request->tanggal)) ? $request->tanggal.' 00:00:00' : date('Y-m-d 00:00:00');
$dateEnd = (isset($request->tanggal)) ? $request->tanggal.' 23:59:59' : date('Y-m-d 23:59:59');
$dataReturn = DB::connection('smart')->select("
select distinct
pasiendaftar_telekonsultasi.noregistrasi_telekonsultasi as noregistrasi,
pasien_m.nocm as nomr,
pasien_m.namapasien as namapasien,
jeniskelamin_m.jeniskelamin,
pasien_m.tgllahir as tgllahir,
pasiendaftar_telekonsultasi.tanggal_rencana_telekonsultasi as tgljamtelekonsultasi,
case when bayar_telekonsultasi.bayar_telekonsultasi_id is not null then 'Sudah Bayar' else 'Menunggu Pembayaran' end as statuspembayaran,
case when zoom_telekonsultasi.link_zoom is not null then zoom_telekonsultasi.link_zoom else null end as linkzoom,
(case
when pasiendaftar_t.norec is null then 'Belum Terdaftar'
else
case when cppt_t.norec is not null then 'Sudah CPPT' else 'Belum CPPT' end
end
) as statuspelayanan,
pasiendaftar_t.norec as pdnorec
from
pasiendaftar_telekonsultasi inner join
pasien_m on pasien_m.id = pasiendaftar_telekonsultasi.pasien_id left outer join
jeniskelamin_m on jeniskelamin_m.id = pasien_m.objectjeniskelaminfk left outer join
pasiendaftar_t on pasiendaftar_telekonsultasi.noregistrasi_pd = pasiendaftar_t.noregistrasi and pasiendaftar_t.statusenabled is true left outer join
antrianpasiendiperiksa_t on antrianpasiendiperiksa_t.noregistrasifk = pasiendaftar_t.norec left outer join
cppt_t on antrianpasiendiperiksa_t.norec = cppt_t.noregistrasifk and cppt_t.statusenabled is true left outer join
bayar_telekonsultasi on bayar_telekonsultasi.pasiendaftar_telekonsultasi_id = pasiendaftar_telekonsultasi.pasiendaftar_telekonsultasi_id left outer join
zoom_telekonsultasi on zoom_telekonsultasi.pasiendaftar_telekonsultasi_id = pasiendaftar_telekonsultasi.pasiendaftar_telekonsultasi_id
where
pasiendaftar_telekonsultasi.statusenabled is true
and pasiendaftar_telekonsultasi.tanggal_rencana_telekonsultasi >= ? and pasiendaftar_telekonsultasi.tanggal_rencana_telekonsultasi <= ?
and (pasiendaftar_telekonsultasi.dokter_pegawai_id = ? OR pasiendaftar_t.objectpegawaifk = ?)
", array(
$dateStart,
$dateEnd,
$pegawaiLogin,
$pegawaiLogin
));
$dataSudahBayar = array_filter($dataReturn, function ($val) {
return ($val->statuspembayaran == 'Sudah Bayar');
});
$dataSudahDilayani = array_filter($dataReturn, function ($val) {
return ($val->statuspelayanan == 'Sudah CPPT');
});
$returnDataToFront['list'] = $dataReturn;
$returnDataToFront['terdaftar'] = count($dataReturn);
$returnDataToFront['sudahbayar'] = count($dataSudahBayar);
$returnDataToFront['sudahdilayani'] = count($dataSudahDilayani);
$returnDataToFront['belumdilayani'] = $returnDataToFront['sudahbayar'] - $returnDataToFront['sudahdilayani'];
$assets = ['chart', 'animation'];
return view('dokter.list-pasien-telekonsultasi', compact('assets'))->with("data", $returnDataToFront);
}
}