diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php
index 05c06fa0..9540d0e0 100644
--- a/htdocs/app/Http/Controllers/DokterController.php
+++ b/htdocs/app/Http/Controllers/DokterController.php
@@ -1228,6 +1228,17 @@ class DokterController extends Controller
if ($organism != ''){
$isidata = 'Organisme yang ditemukan '.$organism.'
'.$isidata;
+ KomponenJawaban::updateOrCreate(
+ [
+ 'accnumber' => $nofoto,
+ 'template' => $request->input('jenis'),
+ 'komponen' => 'bakteri',
+ ],
+ [
+ 'isidata' => $organism,
+ 'created_by' => Session('nama')
+ ]
+ );
}
}
if ($isidata == '' OR is_null($isidata)){
diff --git a/htdocs/app/Http/Controllers/ReportController.php b/htdocs/app/Http/Controllers/ReportController.php
index b87c0f87..cc5b9b3d 100644
--- a/htdocs/app/Http/Controllers/ReportController.php
+++ b/htdocs/app/Http/Controllers/ReportController.php
@@ -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 = [];
diff --git a/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php b/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php
index 67c7ba10..bcdbee67 100644
--- a/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php
+++ b/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php
@@ -17,6 +17,11 @@ return new class extends Migration
$table->string('template', 100)->nullable();
$table->string('komponen', 100)->nullable();
$table->text('isidata')->nullable();
+ $table->string('nobiorepository', 100)->nullable();
+ $table->string('strain', 255)->nullable();
+ $table->string('atcc', 255)->nullable();
+ $table->string('sample', 255)->nullable();
+ $table->date('tglpenyimpanan', 100)->nullable();
$table->string('created_by', 255)->nullable();
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
diff --git a/htdocs/resources/views/admin/report.blade.php b/htdocs/resources/views/admin/report.blade.php
index 5edc6f74..abdc2cde 100644
--- a/htdocs/resources/views/admin/report.blade.php
+++ b/htdocs/resources/views/admin/report.blade.php
@@ -33,11 +33,20 @@