update
This commit is contained in:
@@ -1055,6 +1055,53 @@ class ReportController extends Controller
|
||||
|
||||
return $response;
|
||||
}
|
||||
private function getZnReportKomponenList() {
|
||||
return [
|
||||
'id_pewarnaanziehlnielsen',
|
||||
'id_pewarnaanziehlnielsensewaktu',
|
||||
'lsg_pewarnaanziehlnielsen',
|
||||
'lsg_pewarnaanziehlnielsensewaktu',
|
||||
'hasilpemeriksaantbbiakan_pagi',
|
||||
'hasilpemeriksaantbbiakan_sewaktu',
|
||||
'hasilpemeriksaantmikroskopis_hasilpagi',
|
||||
'hasilpemeriksaantmikroskopis_hasilsewaktu',
|
||||
];
|
||||
}
|
||||
private function normalizeZnReportValue($value) {
|
||||
$value = trim(strip_tags((string) $value));
|
||||
$value = preg_replace('/\s+/', ' ', $value);
|
||||
$upperValue = strtoupper($value);
|
||||
|
||||
if ($upperValue === 'NEG') {
|
||||
return 'Tidak ditemukan Bakteri Tahan Asam (BTA)';
|
||||
}
|
||||
|
||||
if ($upperValue === '1-9') {
|
||||
return 'Ditemukan Bakteri Tahan Asam 0-9 BTA (scanty)';
|
||||
}
|
||||
|
||||
if ($value === '+') {
|
||||
return 'Ditemukan Bakteri Tahan Asam (BTA) 1+';
|
||||
}
|
||||
|
||||
if ($value === '++') {
|
||||
return 'Ditemukan Bakteri Tahan Asam (BTA) 2+';
|
||||
}
|
||||
|
||||
if ($value === '+++') {
|
||||
return 'Ditemukan Bakteri Tahan Asam (BTA) 3+';
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
private function periksaHasZnReportValue($periksa, $nilai, $komponenList) {
|
||||
return $periksa->komponen
|
||||
->whereIn('komponen', $komponenList)
|
||||
->filter(function ($komponen) use ($nilai) {
|
||||
return $this->normalizeZnReportValue($komponen->isidata) === $nilai;
|
||||
})
|
||||
->count() > 0;
|
||||
}
|
||||
public function genZNreport(Request $request) {
|
||||
$data = [];
|
||||
$bulan = $request->input('bulan');
|
||||
@@ -1068,12 +1115,7 @@ class ReportController extends Controller
|
||||
}
|
||||
|
||||
// komponen Ziehl yang mau dianalisa
|
||||
$komponenList = [
|
||||
'id_pewarnaanziehlnielsen',
|
||||
'id_pewarnaanziehlnielsensewaktu',
|
||||
'lsg_pewarnaanziehlnielsen',
|
||||
'lsg_pewarnaanziehlnielsensewaktu'
|
||||
];
|
||||
$komponenList = $this->getZnReportKomponenList();
|
||||
|
||||
// Nilai Ziehl yang ingin dihitung
|
||||
$nilaiList = Organisms::where('kelompok', 'Pewarnaan Ziehl Nielsen')->pluck('name')->toArray();
|
||||
@@ -1111,10 +1153,7 @@ class ReportController extends Controller
|
||||
->where('kd_spesimen', $spesimen)
|
||||
->where('jkpasien', 'L')
|
||||
->filter(function($px) use ($nilai, $komponenList){
|
||||
return $px->komponen
|
||||
->whereIn('komponen', $komponenList)
|
||||
->where('isidata', $nilai)
|
||||
->count() > 0;
|
||||
return $this->periksaHasZnReportValue($px, $nilai, $komponenList);
|
||||
})->count();
|
||||
|
||||
// hitung perempuan
|
||||
@@ -1122,10 +1161,7 @@ class ReportController extends Controller
|
||||
->where('kd_spesimen', $spesimen)
|
||||
->where('jkpasien', 'P')
|
||||
->filter(function($px) use ($nilai, $komponenList){
|
||||
return $px->komponen
|
||||
->whereIn('komponen', $komponenList)
|
||||
->where('isidata', $nilai)
|
||||
->count() > 0;
|
||||
return $this->periksaHasZnReportValue($px, $nilai, $komponenList);
|
||||
})->count();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user