This commit is contained in:
Duidev Software House
2025-09-23 14:33:23 +07:00
parent e8d66dec74
commit b107ab9ba7
4 changed files with 174 additions and 33 deletions
@@ -265,47 +265,66 @@ class ReportController extends Controller
public function report(Request $request) {
$bulan = $request->input('bulan');
$tahun = $request->input('tahun');
$jenisreport = $request->input('jenisreport');
$homebase = url("/");
$arraylist = [];
$limit = $request->input('limit') ?? 500;
$page = $request->input('pagenum') ?? 1;
$order = $request->input('order') ?? 'id desc';
$filterscount = $request->input('filterscount') ?? 0;
if ($bulan === 'pertanggal' || $bulan === 'terjadwal') {
$results = DB::table($bulan === 'terjadwal' ? 'jadwalperiksan' : 'periksa')->when($bulan === 'terjadwal', function ($query) use ($tahun) {
return $query->whereNull('jadwalperiksan.status')
->where('jadwalperiksan.daftar', 'LIKE', "%$tahun%");
}, function ($query) use ($tahun) {
return $query->where('periksa.daftar', 'LIKE', "$tahun%");
})->get();
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
}
if ($bulan === 'pertanggal') {
$arraylist[] = self::getTotalRow($totals);
}
echo json_encode($arraylist);
} else {
if ($bulan == 'ALL' || $bulan == 'Pick Month') {
$results = DB::table('periksa')->where('daftar', 'LIKE', $tahun.'%')->get();
if ($jenisreport == 'biorepository'){
if ($bulan == 'ALL'){
$lists = DB::table('db_komponenjawaban')
->select('db_komponenjawaban.*', 'periksa.nofoto', 'periksa.noregister', 'db_komponenjawaban.nmpasien', 'db_komponenjawaban.usia', 'db_komponenjawaban.dlp', 'db_komponenjawaban.nm_spesimen', 'db_komponenjawaban.kd_spesimen')
->leftJoin('periksa', 'db_komponenjawaban.accnumber', 'periksa.nofoto')
->whereIn('db_komponenjawaban.komponen', ['id_bakteri01', 'id_bakteri02', 'bakteri'])
->where('periksa.daftar', 'LIKE', $tahun.'-%')->orderBy('periksa.id', 'DESC')->get();
} else {
$tglcari = $tahun.'-'.$bulan;
$results = DB::table('periksa')->where('daftar', 'LIKE', $tglcari.'%')->get();
$lists = DB::table('db_komponenjawaban')
->select('db_komponenjawaban.*', 'periksa.nofoto', 'periksa.noregister', 'db_komponenjawaban.nmpasien', 'db_komponenjawaban.usia', 'db_komponenjawaban.dlp', 'db_komponenjawaban.nm_spesimen', 'db_komponenjawaban.kd_spesimen')
->leftJoin('periksa', 'db_komponenjawaban.accnumber', 'periksa.nofoto')
->whereIn('db_komponenjawaban.komponen', ['id_bakteri01', 'id_bakteri02', 'bakteri'])
->where('periksa.daftar', 'LIKE', $tahun.'-'.$bulan.'-%')->orderBy('periksa.id', 'DESC')->get();
}
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
echo json_encode($lists);
} else {
if ($bulan === 'pertanggal' || $bulan === 'terjadwal') {
$results = DB::table($bulan === 'terjadwal' ? 'jadwalperiksan' : 'periksa')->when($bulan === 'terjadwal', function ($query) use ($tahun) {
return $query->whereNull('jadwalperiksan.status')
->where('jadwalperiksan.daftar', 'LIKE', "%$tahun%");
}, function ($query) use ($tahun) {
return $query->where('periksa.daftar', 'LIKE', "$tahun%");
})->get();
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
}
if ($bulan === 'pertanggal') {
$arraylist[] = self::getTotalRow($totals);
}
echo json_encode($arraylist);
} else {
if ($bulan == 'ALL' || $bulan == 'Pick Month') {
$results = DB::table('periksa')->where('daftar', 'LIKE', $tahun.'%')->get();
} else {
$tglcari = $tahun.'-'.$bulan;
$results = DB::table('periksa')->where('daftar', 'LIKE', $tglcari.'%')->get();
}
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
}
$arraylist[] = self::getTotalRow($totals);
echo json_encode($arraylist);
}
$arraylist[] = self::getTotalRow($totals);
echo json_encode($arraylist);
}
}
public function genRekapAntibiotik(Request $request) {
$data = [];