This commit is contained in:
Dwi Swandhana
2026-07-21 19:08:27 +07:00
parent d944647129
commit 6d0f9a8bf6
26 changed files with 6405 additions and 1312 deletions
@@ -2,8 +2,13 @@
namespace App\Http\Controllers;
use App\KomponenJawaban;
use App\CriticalValueSample;
use App\Organisms;
use App\Periksa;
use App\PeriksaSYNC;
use App\Riwayat;
use App\Subjawaban;
use App\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
@@ -143,9 +148,16 @@ class MobileApiController extends Controller
'reques' => $row->reques,
'asalpasien' => $row->asalpasien,
'ruangan' => $row->ruangan,
'analis' => $row->analis,
'ppds3' => $row->ppdssenior,
'dokter_id' => $row->dokter_id,
'klinisi' => $row->klinisi,
'klinis' => $row->klinis,
'nmdokter' => $row->nmdokter,
'nm_spesimen' => $row->nm_spesimen,
'kesimpulan' => $row->kesimpulan,
'dlp' => $row->dlp,
'tanggalregis' => $row->tanggalregis,
'tanggalsampel' => $row->tanggalsampel,
'pengambilan' => $row->pengambilan,
'asalpengirim' => $row->asalpengirim,
@@ -270,6 +282,682 @@ class MobileApiController extends Controller
]);
}
public function expertise(Request $request, int $id)
{
$user = $this->requireUser($request);
$row = Periksa::find($id);
abort_if(!$row, 404, 'Data pemeriksaan tidak ditemukan.');
$dlp = trim((string) ($row->dlp ?? ''));
return response()->json([
'item' => $this->examinationPayload($row),
'user' => [
'id' => $user->id,
'nama' => $user->nama,
'previlage' => $user->previlage,
],
'dlp' => $dlp,
'templates' => $this->templateList(),
'staff_options' => $this->staffOptions(),
'option_sets' => $this->expertiseOptionSets(),
'is_critical' => CriticalValueSample::where('periksa_id', $row->id)->exists(),
'components' => $dlp === '' ? (object) [] : $this->componentMap($row->nofoto, $dlp),
'fields' => $dlp === '' ? [] : $this->expertiseFields($dlp),
]);
}
public function setExpertiseTemplate(Request $request, int $id)
{
$user = $this->requireUser($request);
$request->validate(['dlp' => ['required', 'string']]);
$row = Periksa::find($id);
abort_if(!$row, 404, 'Data pemeriksaan tidak ditemukan.');
$dlp = trim((string) $request->input('dlp'));
$row->update([
'dlp' => $dlp,
'nmdrafter' => $user->nama,
'nmexcutor' => $user->nama,
'excutor' => $user->id,
'status' => $row->status ?: 'Pemeriksaan awal',
]);
return response()->json([
'message' => 'Template expertise dipilih.',
'item' => $this->examinationPayload($row->fresh()),
'dlp' => $dlp,
'components' => $this->componentMap($row->nofoto, $dlp),
'fields' => $this->expertiseFields($dlp),
]);
}
public function saveExpertise(Request $request, int $id)
{
$user = $this->requireUser($request);
$request->validate([
'dlp' => ['required', 'string'],
'action' => ['nullable', 'string'],
'fields' => ['nullable', 'array'],
'keterangan' => ['nullable', 'string'],
'analis' => ['nullable'],
'ppds3' => ['nullable'],
'dokter' => ['nullable'],
'nilai_kritis' => ['nullable'],
]);
$row = Periksa::find($id);
abort_if(!$row, 404, 'Data pemeriksaan tidak ditemukan.');
$dlp = trim((string) $request->input('dlp'));
$fields = $request->input('fields', []);
$keterangan = (string) $request->input('keterangan', '');
$action = (string) $request->input('action', 'Draft');
$analis = $request->input('analis');
$ppds3 = $request->input('ppds3');
$dokter = $request->input('dokter');
$atlmUser = User::find($analis);
$ppdsUser = User::find($ppds3);
$spvUser = User::find($dokter);
foreach ($fields as $key => $value) {
if ($value === '' || $value === null || $value === 'Pilih Salah Satu') {
KomponenJawaban::where('accnumber', $row->nofoto)
->where('template', $dlp)
->where('komponen', $key)
->delete();
continue;
}
KomponenJawaban::updateOrCreate(
[
'accnumber' => $row->nofoto,
'komponen' => $key,
],
[
'isidata' => is_array($value) ? json_encode($value) : $value,
'template' => $dlp,
'created_by' => $user->nama,
]
);
}
$status = match ($action) {
'verifikasi' => 'Selesai',
'preliminary' => 'Preliminary Results',
'Permohonan Verifikasi' => 'Expertise Saved (Un Verified)',
'Permohonan Verifikasi Preliminary' => 'Otor Maldi (Un Verified)',
default => 'Pemeriksaan awal',
};
$updateData = [
'keterangan' => $keterangan,
'dlp' => $dlp,
'analis' => $analis,
'nmanalis' => $atlmUser->nama ?? null,
'dokter_id' => $action === 'verifikasi' || $action === 'preliminary' ? $user->id : $dokter,
'nmdokter' => $action === 'verifikasi' || $action === 'preliminary' ? $user->nama : ($spvUser->nama ?? null),
'ppdssenior' => $ppds3,
'nmppdssenior' => $ppdsUser->nama ?? null,
'nmdrafter' => $user->nama,
'nmexcutor' => $user->nama,
'excutor' => $user->id,
'baca' => in_array($action, ['Permohonan Verifikasi', 'Permohonan Verifikasi Preliminary'], true) ? now() : $row->baca,
'nmpembaca' => in_array($action, ['Permohonan Verifikasi', 'Permohonan Verifikasi Preliminary'], true) ? $user->nama : $row->nmpembaca,
'status' => $status,
];
if (in_array($action, ['verifikasi', 'preliminary'], true)) {
$updateData['verifikasi'] = now();
$updateData['akhir'] = $action === 'verifikasi' ? now() : $row->akhir;
}
$row->update($updateData);
if ($this->shouldMarkAsCritical($request)) {
$this->upsertCriticalValueSample($row->fresh(), $user);
}
Riwayat::create([
'nofoto' => $row->nofoto,
'jawaban' => $keterangan !== '' ? $keterangan : json_encode($fields),
'inputor' => $user->nama,
'keterangan' => match ($action) {
'verifikasi' => 'Expertise',
'preliminary' => 'Preliminary Results',
'Permohonan Verifikasi' => 'Kirim ke SPV',
'Permohonan Verifikasi Preliminary' => 'Kirim Preliminary ke SPV',
default => 'Draft',
},
'verifikasi' => in_array($action, ['verifikasi', 'preliminary'], true) ? 'Accepted' : '',
]);
return response()->json([
'message' => match ($action) {
'verifikasi' => 'Expertise Saved',
'preliminary' => 'Preliminary Results Saved',
'Permohonan Verifikasi' => 'Permohonan Verifikasi Terkirim',
'Permohonan Verifikasi Preliminary' => 'Permohonan Verifikasi Preliminary Terkirim',
default => 'Draft Expertise Saved',
},
'item' => $this->examinationPayload($row->fresh()),
'components' => $this->componentMap($row->nofoto, $dlp),
]);
}
protected function templateList(): array
{
return Subjawaban::orderBy('kategori')
->orderBy('judul')
->get(['id', 'kategori', 'judul', 'subjawaban', 'kesimpulan'])
->map(fn ($row) => [
'id' => $row->id,
'kategori' => (string) $row->kategori,
'judul' => (string) $row->judul,
'isine' => trim((string) $row->subjawaban.' '.(string) $row->kesimpulan),
])
->values()
->toArray();
}
protected function componentMap($nofoto, string $dlp): array
{
return KomponenJawaban::where('accnumber', $nofoto)
->where('template', $dlp)
->get(['komponen', 'isidata'])
->mapWithKeys(fn ($row) => [$row->komponen => $this->decodeComponentValue($row->isidata)])
->toArray();
}
protected function decodeComponentValue($value)
{
if (!is_string($value)) {
return $value;
}
$decoded = json_decode($value, true);
return json_last_error() === JSON_ERROR_NONE ? $decoded : $value;
}
protected function staffOptions(): array
{
$mapUser = fn ($row) => [
'id' => $row->id,
'nama' => $row->nama,
'username' => $row->username,
'previlage' => $row->previlage,
];
return [
'analis' => User::where('previlage', 'analis')->orderBy('nama')->get()->map($mapUser)->values()->toArray(),
'ppds' => User::where('previlage', 'ppds')->orderBy('nama')->get()->map($mapUser)->values()->toArray(),
'dokters' => User::where('previlage', 'supervisor')->orderBy('nama')->get()->map($mapUser)->values()->toArray(),
];
}
protected function expertiseOptionSets(): array
{
$organismNames = fn ($kelompok) => Organisms::where('kelompok', $kelompok)
->orderBy('category')
->orderBy('name')
->pluck('name')
->filter()
->values()
->toArray();
return [
'jsonsputum' => $organismNames('Sputum'),
'jsonswabtenggorok' => $organismNames('Swab Tenggorok'),
'jsonurine' => $organismNames('Urine'),
'jsonswabperineum' => $organismNames('Swab perineum'),
'jsonselepitel' => $organismNames('Sel Epitel'),
'jsonselradang' => $organismNames('Sel Radang'),
'jsonmikroorganisme' => $organismNames('Mikroorganisme'),
'jsonmikroorganismeoptional' => Organisms::orderBy('category')
->orderBy('name')
->pluck('name')
->filter()
->values()
->toArray(),
'jsonjumlahlactobacillus' => $organismNames('Jumlah Lactobacillus'),
'jsonjumlahgardnerella' => $organismNames('Jumlah Gardnerella'),
'jsonjumlahmobiluncus' => $organismNames('Jumlah Mobiluncus'),
'jsonpewarnaanziehlnielsen' => $organismNames('Pewarnaan Ziehl Neelsen'),
'jsonpewarnaankoh' => $organismNames('Pewarnaan KOH'),
'jsonpewarnaanneisser' => $organismNames('Pewarnaan Neisser'),
'jsonpewarnaannegatif' => $organismNames('Pewarnaan Negatif'),
'jsonpewarnaanspora' => $organismNames('Pewarnaan Spora'),
'jsonpewarnaangiemsa' => $organismNames('Pewarnaan Giemsa'),
'jsonbiakankultur' => $organismNames('Biakan Kultur'),
'jsonvlparameter' => $organismNames('Viral Load Parameter'),
];
}
protected function shouldMarkAsCritical(Request $request): bool
{
$flag = strtolower((string) $request->input('nilai_kritis', '0'));
return in_array($flag, ['1', 'true', 'yes', 'on'], true);
}
protected function upsertCriticalValueSample(Periksa $periksa, User $user): void
{
$criticalSample = CriticalValueSample::firstOrNew(['periksa_id' => $periksa->id]);
$criticalSample->fill([
'nofoto' => $periksa->nofoto,
'noregister' => $periksa->noregister,
'nmpasien' => $periksa->nmpasien,
'nm_spesimen' => $periksa->nm_spesimen,
'asalpasien' => $periksa->asalpasien,
'critical_set_at' => now(),
'critical_set_by_user_id' => $user->id,
'critical_set_by_name' => $user->nama,
]);
$criticalSample->save();
}
protected function expertiseFields(string $dlp): array
{
$select = fn ($name, $label, $options) => ['name' => $name, 'label' => $label, 'type' => 'select', 'options' => $options];
$text = fn ($name, $label) => ['name' => $name, 'label' => $label, 'type' => 'text'];
$area = fn ($name, $label) => ['name' => $name, 'label' => $label, 'type' => 'textarea'];
$multi = fn ($name, $label, $options) => ['name' => $name, 'label' => $label, 'type' => 'multiselect', 'options' => $options];
$yn = ['Positif', 'Negatif'];
$tbResult = ['+++', '++', '+', '1-9', 'Neg'];
$organismOptions = ['Tidak ditemukan', 'Sedikit', 'Sedang', 'Banyak', 'lainnya'];
$sirOptions = ['ESBL', 'MRSA', 'MDR', 'XDR', 'PDR', 'Carbapenem Resistant', 'MDR Carbapenem Resistant', 'XDR Carbapenem Resistant'];
$colonyOptions = ['>= 10^5 CFU/ml Urine (Bakteriuria bermakna)', '>= 10^5 CFU/ml Urine (Candiduria bermakna)', '>= 10^3 CFU/ml Urine (Bakteriuria bermakna)', '8 x 10^3 CFU/ml Urine (Bakteriuria bermakna)', 'lainnya'];
$printOptions = ['YA', 'TIDAK'];
return match ($dlp) {
'CCI' => [
$select('id_sputum', 'Sputum', $organismOptions),
$select('id_swabtenggorok', 'Swab Tenggorok', $organismOptions),
$select('id_urine', 'Urine', $organismOptions),
$select('id_swabperineum', 'Swab Perineum', $organismOptions),
$text('bakteri', 'Vitek - Bakteri'),
$select('bakterisir', 'Vitek - SIR', $sirOptions),
$select('id_bakterihitungkol', 'Vitek - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks', 'Vitek - Hitung Koloni Lainnya'),
$select('id_baktericetak', 'Vitek - Cetak', $printOptions),
$text('id_bakteri01', 'MALDITOF - Bakteri'),
$text('id_antibiotikmanual1', 'MALDITOF - Set Antibiotik'),
$select('id_bakterisir01', 'MALDITOF - SIR', $sirOptions),
$select('id_bakterihitungkol01', 'MALDITOF - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks01', 'MALDITOF - Hitung Koloni Lainnya'),
$select('id_bakteri01cetak', 'MALDITOF - Cetak', $printOptions),
$text('id_bakteri02', 'Bakteri Manual I - Bakteri'),
$text('id_antibiotikmanual2', 'Bakteri Manual I - Set Antibiotik'),
$select('id_bakterisir02', 'Bakteri Manual I - SIR', $sirOptions),
$select('id_bakterihitungkol02', 'Bakteri Manual I - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks02', 'Bakteri Manual I - Hitung Koloni Lainnya'),
$select('id_bakteri02cetak', 'Bakteri Manual I - Cetak', $printOptions),
$area('keterangan', 'Keterangan Expertise'),
],
'Kultur' => [
$select('id_selepitel', 'Sel Epitel', $organismOptions),
$select('id_selradang', 'Sel Radang', $organismOptions),
$select('id_mikroorganisme', 'Mikroorganisme', $organismOptions),
$multi('id_mikroorganismeoptional', 'Mikroorganisme Tambahan', ['Gram positif', 'Gram negatif', 'Yeast cell', 'Basil', 'Kokus']),
$select('id_jumlahlactobacillus', 'Lactobacillus - Jumlah Per Lapang', $organismOptions),
$select('id_lactobacillus', 'Lactobacillus - Skor', ['0', '1', '2', '3', '4']),
$select('id_jumlahgardnerella', 'Gardnerella - Jumlah Per Lapang', $organismOptions),
$select('id_gardnerella', 'Gardnerella - Skor', ['0', '1', '2', '3', '4']),
$select('id_jumlahmobiluncus', 'Mobiluncus - Jumlah Per Lapang', $organismOptions),
$select('id_mobiluncus', 'Mobiluncus - Skor', ['0', '1', '2', '3', '4']),
$select('id_pewarnaanziehlnielsen', 'Pewarnaan Ziehl Neelsen Pagi', $organismOptions),
$select('id_pewarnaanziehlnielsensewaktu', 'Pewarnaan Ziehl Neelsen Sewaktu', $organismOptions),
$select('id_pewarnaangiesma', 'Pewarnaan Giemsa', ['Tidak ditemukan', 'Ditemukan', 'lainnya']),
$text('id_pewarnaangiesmaoptional', 'Pewarnaan Giemsa Lainnya'),
$select('id_pewarnaankoh', 'Pewarnaan KOH', ['Tidak ditemukan', 'Ditemukan', 'lainnya']),
$text('id_pewarnaankohoptional', 'Pewarnaan KOH Lainnya'),
$select('id_pewarnaanneisser', 'Pewarnaan Neisser', $organismOptions),
$select('id_pewarnaannegatif', 'Pewarnaan Negatif', $organismOptions),
$select('id_pewarnaanspora', 'Pewarnaan Spora', $organismOptions),
$text('bd_result', 'BD Result'),
$text('bd_result_date', 'BD Result Date'),
$select('id_kbamc', 'Kirby Bauer AMC', array_merge(['Tidak dilakukan'], range(1, 42))),
$select('id_sirkbamc', 'Kirby Bauer AMC SIR', ['S', 'I', 'R']),
$select('id_kbak', 'Kirby Bauer AK', array_merge(['Tidak dilakukan'], range(1, 42))),
$select('id_sirkbak', 'Kirby Bauer AK SIR', ['S', 'I', 'R']),
$select('id_kbfos', 'Kirby Bauer FOS', array_merge(['Tidak dilakukan'], range(1, 42))),
$select('id_sirkbfos', 'Kirby Bauer FOS SIR', ['S', 'I', 'R']),
$select('id_kbscf', 'Kirby Bauer SCF', array_merge(['Tidak dilakukan'], range(1, 42))),
$select('id_sirkbscf', 'Kirby Bauer SCF SIR', ['S', 'I', 'R']),
$select('id_biakankultur', 'Biakan Kultur (Aerob / Anaerob)', $organismOptions),
$select('media_bap_status', 'Media BAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_bap_note', 'Media BAP Catatan'),
$select('media_cap_status', 'Media CAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_cap_note', 'Media CAP Catatan'),
$select('media_mcconkey_status', 'Media Mc Conkey Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_mcconkey_note', 'Media Mc Conkey Catatan'),
$select('media_sdar1_status', 'Kultur Jamur R1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar1_note', 'Kultur Jamur R1 Catatan'),
$select('media_sdar2_status', 'Kultur Jamur R2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar2_note', 'Kultur Jamur R2 Catatan'),
$select('media_sdai1_status', 'Kultur Jamur I1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai1_note', 'Kultur Jamur I1 Catatan'),
$select('media_sdai2_status', 'Kultur Jamur I2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai2_note', 'Kultur Jamur I2 Catatan'),
$select('media_sellainnya_status', 'Media Selektif Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sellainnya_note', 'Media Selektif Lainnya Catatan'),
$select('media_tamlainnya_status', 'Pemeriksaan Tambahan Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_tamlainnya_note', 'Pemeriksaan Tambahan Lainnya Catatan'),
$text('bakteri', 'Vitek - Bakteri'),
$select('bakterisir', 'Vitek - SIR', $sirOptions),
$select('id_bakterihitungkol', 'Vitek - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks', 'Vitek - Hitung Koloni Lainnya'),
$select('id_baktericetak', 'Vitek - Cetak', $printOptions),
$text('id_bakteri01', 'MALDITOF - Bakteri'),
$text('id_antibiotikmanual1', 'MALDITOF - Set Antibiotik'),
$select('id_bakterisir01', 'MALDITOF - SIR', $sirOptions),
$select('id_bakterihitungkol01', 'MALDITOF - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks01', 'MALDITOF - Hitung Koloni Lainnya'),
$select('id_bakteri01cetak', 'MALDITOF - Cetak', $printOptions),
$text('id_bakteri02', 'Bakteri Manual I - Bakteri'),
$text('id_antibiotikmanual2', 'Bakteri Manual I - Set Antibiotik'),
$select('id_bakterisir02', 'Bakteri Manual I - SIR', $sirOptions),
$select('id_bakterihitungkol02', 'Bakteri Manual I - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks02', 'Bakteri Manual I - Hitung Koloni Lainnya'),
$select('id_bakteri02cetak', 'Bakteri Manual I - Cetak', $printOptions),
$area('keterangan', 'Keterangan Expertise'),
],
'Pewarna Langsung' => [
$select('lsg_selepitel', 'Sel Epitel', $organismOptions),
$select('lsg_selradang', 'Sel Radang', $organismOptions),
$select('lsg_mikroorganisme', 'Mikroorganisme', $organismOptions),
$multi('lsg_mikroorganismeoptional', 'Mikroorganisme Tambahan', ['Gram positif', 'Gram negatif', 'Yeast cell', 'Basil', 'Kokus']),
$select('lsg_pewarnaanziehlnielsen', 'Pewarnaan Ziehl Neelsen Pagi', $organismOptions),
$select('lsg_pewarnaanziehlnielsensewaktu', 'Pewarnaan Ziehl Neelsen Sewaktu', $organismOptions),
$select('lsg_pewarnaankoh', 'Pewarnaan KOH', ['Tidak ditemukan', 'Ditemukan', 'lainnya']),
$text('lsg_pewarnaankohoptional', 'Pewarnaan KOH Lainnya'),
$select('lsg_pewarnaanneisser', 'Pewarnaan Neisser', $organismOptions),
$select('lsg_pewarnaannegatif', 'Pewarnaan Negatif', $organismOptions),
$select('lsg_pewarnaangiesma', 'Pewarnaan Giemsa', ['Tidak ditemukan', 'Ditemukan', 'lainnya']),
$text('lsg_pewarnaangiesmaoptional', 'Pewarnaan Giemsa Lainnya'),
$select('lsg_pewarnaanspora', 'Pewarnaan Spora', $organismOptions),
$area('lsg_pewarnaanlain', 'Pewarnaan Lain'),
$select('lsg_jumlahlactobacillus', 'Lactobacillus - Jumlah Per Lapang', $organismOptions),
$select('lsg_lactobacillus', 'Lactobacillus - Skor', ['0', '1', '2', '3', '4']),
$select('lsg_jumlahgardnerella', 'Gardnerella - Jumlah Per Lapang', $organismOptions),
$select('lsg_gardnerella', 'Gardnerella - Skor', ['0', '1', '2', '3', '4']),
$select('lsg_jumlahmobiluncus', 'Mobiluncus - Jumlah Per Lapang', $organismOptions),
$select('lsg_mobiluncus', 'Mobiluncus - Skor', ['0', '1', '2', '3', '4']),
$select('media_bap_status', 'Media BAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_bap_note', 'Media BAP Catatan'),
$select('media_cap_status', 'Media CAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_cap_note', 'Media CAP Catatan'),
$select('media_mcconkey_status', 'Media Mc Conkey Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_mcconkey_note', 'Media Mc Conkey Catatan'),
$select('media_sdar1_status', 'Kultur Jamur R1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar1_note', 'Kultur Jamur R1 Catatan'),
$select('media_sdar2_status', 'Kultur Jamur R2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar2_note', 'Kultur Jamur R2 Catatan'),
$select('media_sdai1_status', 'Kultur Jamur I1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai1_note', 'Kultur Jamur I1 Catatan'),
$select('media_sdai2_status', 'Kultur Jamur I2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai2_note', 'Kultur Jamur I2 Catatan'),
$select('media_sellainnya_status', 'Media Selektif Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sellainnya_note', 'Media Selektif Lainnya Catatan'),
$select('media_tamlainnya_status', 'Pemeriksaan Tambahan Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_tamlainnya_note', 'Pemeriksaan Tambahan Lainnya Catatan'),
$text('bakteri', 'Vitek - Bakteri'),
$select('bakterisir', 'Vitek - SIR', $sirOptions),
$select('id_bakterihitungkol', 'Vitek - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks', 'Vitek - Hitung Koloni Lainnya'),
$select('id_baktericetak', 'Vitek - Cetak', $printOptions),
$text('id_bakteri01', 'MALDITOF - Bakteri'),
$text('id_antibiotikmanual1', 'MALDITOF - Set Antibiotik'),
$select('id_bakterisir01', 'MALDITOF - SIR', $sirOptions),
$select('id_bakterihitungkol01', 'MALDITOF - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks01', 'MALDITOF - Hitung Koloni Lainnya'),
$select('id_bakteri01cetak', 'MALDITOF - Cetak', $printOptions),
$text('id_bakteri02', 'Bakteri Manual I - Bakteri'),
$text('id_antibiotikmanual2', 'Bakteri Manual I - Set Antibiotik'),
$select('id_bakterisir02', 'Bakteri Manual I - SIR', $sirOptions),
$select('id_bakterihitungkol02', 'Bakteri Manual I - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks02', 'Bakteri Manual I - Hitung Koloni Lainnya'),
$select('id_bakteri02cetak', 'Bakteri Manual I - Cetak', $printOptions),
$area('keterangan', 'Keterangan Expertise'),
],
'TBC' => [
$multi('jenis_pasien_tbc', 'Jenis Terduga / Pasien TBC', ['TBC SO', 'TBC RO', 'Anak', 'HIV', 'DM']),
$text('id_noidsediaan', 'No. Identitas Sediaan'),
$text('id_tanggalpengambilancontohuji', 'Tanggal Pengambilan Contoh Uji'),
$text('id_tanggalpengirimancontohuji', 'Tanggal Pengiriman Contoh Uji'),
$select('id_lamariwayatpengobatantb', 'Lama Riwayat Pengobatan TBC', ['Riwayat Pengobatan >= 5 tahun', 'Riwayat Pengobatan < 5 tahun']),
$select('id_jenispemeriksaantb', 'Jenis Pemeriksaan', ['Mikroskopis', 'TCM MTB Rif (Xpert)', 'TCM XDR (Xpert)', 'TCM MTB Rif (Truenat)', 'TCM MTB Rif INH (BDMAX)', 'PCR Open System', 'LPA lini 1', 'LPA lini 2', 'Biakan', 'Paket standar uji kepekaan']),
$select('id_lokasianatomi', 'Lokasi Anatomi', ['Paru', 'Ekstraparu']),
$text('id_ekstraparu', 'Ekstraparu'),
$select('id_alasanpemeriksaan', 'Alasan Pemeriksaan', ['Diagnosis TBC', 'Diagnosis Baseline TBC', 'Akhir Pengobatan']),
$text('id_bulankemajuantbfollow', 'Pemantauan kemajuan pengobatan'),
$text('id_bulanpemeriksaanulang', 'Pemeriksaan ulang'),
$text('id_bulanpemeriksaansetelahselesai', 'Pemeriksaan setelah selesai pengobatan'),
$text('id_noregfasyankes', 'No.Reg.TBC/TBC RO Fasyankes'),
$text('id_noregkota', 'No.Reg.TBC/TBC RO Kab/Kota'),
$select('id_contohuji', 'Contoh Uji', ['Dahak', 'Lainnya']),
$text('id_contohujilainnya', 'Contoh Uji Lainnya'),
$multi('visual_dahak_sewaktu', 'Visual dahak Sewaktu', ['Nanah Lendir', 'Bercak darah', 'Air liur']),
$multi('visual_dahak_pagi', 'Visual dahak Pagi', ['Nanah Lendir', 'Bercak darah', 'Air liur']),
$text('hasilpemeriksaantmikroskopis_tglsewaktu', 'Tanggal Mikroskopis Sewaktu'),
$select('hasilpemeriksaantmikroskopis_hasilsewaktu', 'Mikroskopis Sewaktu', $tbResult),
$text('hasilpemeriksaantmikroskopis_tglpagi', 'Tanggal Mikroskopis Pagi'),
$select('hasilpemeriksaantmikroskopis_hasilpagi', 'Mikroskopis Pagi', $tbResult),
$text('hasilpemeriksaanttcmmtbrifxpert_tglsewaktu', 'Tanggal TCM MTB Rif Sewaktu'),
$text('hasilpemeriksaanttcmmtbrifxpert_kodeunik', 'Kode Unik TCM MTB Rif Sewaktu'),
$select('hasilpemeriksaanttcmmtbrifxpert_hasilsewaktu', 'TCM MTB Rif Sewaktu', ['Neg', 'Rif Sen', 'Rif Res', 'Rif Indet', 'Invalid', 'Error', 'No result']),
$text('hasilpemeriksaanttcmmtbrifxpert_tglpagi', 'Tanggal TCM MTB Rif Pagi'),
$text('hasilpemeriksaanttcmmtbrifxpert_kodeunikpagi', 'Kode Unik TCM MTB Rif Pagi'),
$select('hasilpemeriksaanttcmmtbrifxpert_hasilpagi', 'TCM MTB Rif Pagi', ['Neg', 'Rif Sen', 'Rif Res', 'Rif Indet', 'Invalid', 'Error', 'No result']),
$text('hasilpemeriksaantbbiakan_tgl', 'Tanggal Mikroskopis Biakan'),
$select('hasilpemeriksaantbbiakan_pagi', 'Biakan Mikroskopis Pagi', $tbResult),
$select('hasilpemeriksaantbbiakan_sewaktu', 'Biakan Mikroskopis Sewaktu', $tbResult),
$text('hasilpemeriksaantbbiakan_tglbiakan', 'Tanggal Biakan'),
$select('hasilpemeriksaantbbiakan_hasilbiakanmgit', 'Hasil Biakan MGIT', ['Pos', 'Neg', 'NTM', 'KTM', 'TDL']),
$select('hasilpemeriksaantbbiakan_hasilbiakanlj', 'Hasil Biakan LJ', ['3+', '2+', '1+', '1-9', 'Neg', 'NTM', 'KTM', 'TDL']),
$text('hasilpemeriksaanttcmmtbxdrxpert_tglpagi', 'Tanggal TCM XDR Pagi'),
$text('hasilpemeriksaanttcmmtbxdrxpert_kodeunikpagi', 'Kode Unik TCM XDR Pagi'),
$text('hasilpemeriksaanttcmmtbxdrxpert_tglsewaktu', 'Tanggal TCM XDR Sewaktu'),
$text('hasilpemeriksaanttcmmtbxdrxpert_kodeunik', 'Kode Unik TCM XDR Sewaktu'),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagi', 'TCM XDR Pagi', ['Valid', 'Invalid', 'No Result', 'Error']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagimtb', 'MTB Pagi', ['Detected', 'Not Detected']),
$select('hasilpemeriksaanttcmmtbxdrxpert_paginhlow', 'H Low Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagih', 'H Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagifqlow', 'FQ Low Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagifq', 'FQ Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagiamk', 'Amk Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagikm', 'Km Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagicm', 'Cm Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_pagieto', 'Eto Pagi', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktu', 'TCM XDR Sewaktu', ['Valid', 'Invalid', 'No Result', 'Error']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktumtb', 'MTB Sewaktu', ['Detected', 'Not Detected']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktunhlow', 'H Low Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktuh', 'H Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktufqlow', 'FQ Low Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktufq', 'FQ Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktuamk', 'Amk Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktukm', 'Km Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktucm', 'Cm Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('hasilpemeriksaanttcmmtbxdrxpert_sewaktueto', 'Eto Sewaktu', ['S', 'I', 'R', 'Invalid', 'Error', 'No Result']),
$select('media_bap_status', 'Media BAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_bap_note', 'Media BAP Catatan'),
$select('media_cap_status', 'Media CAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_cap_note', 'Media CAP Catatan'),
$select('media_mcconkey_status', 'Media Mc Conkey Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_mcconkey_note', 'Media Mc Conkey Catatan'),
$select('media_sdar1_status', 'Kultur Jamur R1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar1_note', 'Kultur Jamur R1 Catatan'),
$select('media_sdar2_status', 'Kultur Jamur R2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar2_note', 'Kultur Jamur R2 Catatan'),
$select('media_sdai1_status', 'Kultur Jamur I1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai1_note', 'Kultur Jamur I1 Catatan'),
$select('media_sdai2_status', 'Kultur Jamur I2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai2_note', 'Kultur Jamur I2 Catatan'),
$select('media_sellainnya_status', 'Media Selektif Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sellainnya_note', 'Media Selektif Lainnya Catatan'),
$select('media_tamlainnya_status', 'Pemeriksaan Tambahan Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_tamlainnya_note', 'Pemeriksaan Tambahan Lainnya Catatan'),
$text('bakteri', 'Vitek - Bakteri'),
$select('bakterisir', 'Vitek - SIR', $sirOptions),
$select('id_bakterihitungkol', 'Vitek - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks', 'Vitek - Hitung Koloni Lainnya'),
$select('id_baktericetak', 'Vitek - Cetak', $printOptions),
$text('id_bakteri01', 'MALDITOF - Bakteri'),
$text('id_antibiotikmanual1', 'MALDITOF - Set Antibiotik'),
$select('id_bakterisir01', 'MALDITOF - SIR', $sirOptions),
$select('id_bakterihitungkol01', 'MALDITOF - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks01', 'MALDITOF - Hitung Koloni Lainnya'),
$select('id_bakteri01cetak', 'MALDITOF - Cetak', $printOptions),
$text('id_bakteri02', 'Bakteri Manual I - Bakteri'),
$text('id_antibiotikmanual2', 'Bakteri Manual I - Set Antibiotik'),
$select('id_bakterisir02', 'Bakteri Manual I - SIR', $sirOptions),
$select('id_bakterihitungkol02', 'Bakteri Manual I - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks02', 'Bakteri Manual I - Hitung Koloni Lainnya'),
$select('id_bakteri02cetak', 'Bakteri Manual I - Cetak', $printOptions),
$area('keterangan', 'Keterangan Expertise'),
],
'Viral Load' => [
$select('vl_parameter01', 'Parameter', ['HIV RNA', 'HCV RNA', 'HBV DNA']),
$select('vl_hasil01', 'Hasil', ['NOT DETECTED', '<40', '<1.60', '40', '41', '44', '45', '145', '<10', '20', '322', '511', '144', '211', 'lainnya']),
$text('vl_hasil01teks', 'Hasil Lainnya'),
$select('vl_satuan01', 'Satuan', ['copies/mL', 'IU/mL']),
$select('vl_rujukan01', 'Nilai Rujukan', ['40-10.000.000', '10-100.000.000']),
$select('vl_parameter02', 'Parameter 02', ['LOG']),
$select('vl_hasil02', 'Hasil 02', ['NOT DETECTED', '<1,60', '<1,85', '1,60', '1,61', '1,64', '1,65', '2,16', '1,00', '1,30', '2,51', '2,71', '2,34', 'lainnya']),
$text('vl_hasil02teks', 'Hasil 02 Lainnya'),
$select('vl_satuan02', 'Satuan 02', ['LOG']),
$select('vl_rujukan02', 'Nilai Rujukan 02', ['1,6-7', ' ']),
$area('viralload', 'Catatan Viral Load'),
$select('media_bap_status', 'Media BAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_bap_note', 'Media BAP Catatan'),
$select('media_cap_status', 'Media CAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_cap_note', 'Media CAP Catatan'),
$select('media_mcconkey_status', 'Media Mc Conkey Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_mcconkey_note', 'Media Mc Conkey Catatan'),
$select('media_sdar1_status', 'Kultur Jamur R1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar1_note', 'Kultur Jamur R1 Catatan'),
$select('media_sdar2_status', 'Kultur Jamur R2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar2_note', 'Kultur Jamur R2 Catatan'),
$select('media_sdai1_status', 'Kultur Jamur I1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai1_note', 'Kultur Jamur I1 Catatan'),
$select('media_sdai2_status', 'Kultur Jamur I2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai2_note', 'Kultur Jamur I2 Catatan'),
$select('media_sellainnya_status', 'Media Selektif Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sellainnya_note', 'Media Selektif Lainnya Catatan'),
$select('media_tamlainnya_status', 'Pemeriksaan Tambahan Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_tamlainnya_note', 'Pemeriksaan Tambahan Lainnya Catatan'),
$text('bakteri', 'Vitek - Bakteri'),
$select('bakterisir', 'Vitek - SIR', $sirOptions),
$select('id_bakterihitungkol', 'Vitek - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks', 'Vitek - Hitung Koloni Lainnya'),
$select('id_baktericetak', 'Vitek - Cetak', $printOptions),
$text('id_bakteri01', 'MALDITOF - Bakteri'),
$text('id_antibiotikmanual1', 'MALDITOF - Set Antibiotik'),
$select('id_bakterisir01', 'MALDITOF - SIR', $sirOptions),
$select('id_bakterihitungkol01', 'MALDITOF - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks01', 'MALDITOF - Hitung Koloni Lainnya'),
$select('id_bakteri01cetak', 'MALDITOF - Cetak', $printOptions),
$text('id_bakteri02', 'Bakteri Manual I - Bakteri'),
$text('id_antibiotikmanual2', 'Bakteri Manual I - Set Antibiotik'),
$select('id_bakterisir02', 'Bakteri Manual I - SIR', $sirOptions),
$select('id_bakterihitungkol02', 'Bakteri Manual I - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks02', 'Bakteri Manual I - Hitung Koloni Lainnya'),
$select('id_bakteri02cetak', 'Bakteri Manual I - Cetak', $printOptions),
$area('keterangan', 'Keterangan Expertise'),
],
'IgM IgG Leptospira' => [
$select('igg_parameter', 'IgG Leptospira', $yn),
$select('igm_parameter', 'IgM Leptospira', $yn),
$area('iggigm_interpretasi', 'Interpretasi'),
$select('media_bap_status', 'Media BAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_bap_note', 'Media BAP Catatan'),
$select('media_cap_status', 'Media CAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_cap_note', 'Media CAP Catatan'),
$select('media_mcconkey_status', 'Media Mc Conkey Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_mcconkey_note', 'Media Mc Conkey Catatan'),
$select('media_sdar1_status', 'Kultur Jamur R1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar1_note', 'Kultur Jamur R1 Catatan'),
$select('media_sdar2_status', 'Kultur Jamur R2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar2_note', 'Kultur Jamur R2 Catatan'),
$select('media_sdai1_status', 'Kultur Jamur I1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai1_note', 'Kultur Jamur I1 Catatan'),
$select('media_sdai2_status', 'Kultur Jamur I2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai2_note', 'Kultur Jamur I2 Catatan'),
$select('media_sellainnya_status', 'Media Selektif Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sellainnya_note', 'Media Selektif Lainnya Catatan'),
$select('media_tamlainnya_status', 'Pemeriksaan Tambahan Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_tamlainnya_note', 'Pemeriksaan Tambahan Lainnya Catatan'),
$text('bakteri', 'Vitek - Bakteri'),
$select('bakterisir', 'Vitek - SIR', $sirOptions),
$select('id_bakterihitungkol', 'Vitek - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks', 'Vitek - Hitung Koloni Lainnya'),
$select('id_baktericetak', 'Vitek - Cetak', $printOptions),
$text('id_bakteri01', 'MALDITOF - Bakteri'),
$text('id_antibiotikmanual1', 'MALDITOF - Set Antibiotik'),
$select('id_bakterisir01', 'MALDITOF - SIR', $sirOptions),
$select('id_bakterihitungkol01', 'MALDITOF - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks01', 'MALDITOF - Hitung Koloni Lainnya'),
$select('id_bakteri01cetak', 'MALDITOF - Cetak', $printOptions),
$text('id_bakteri02', 'Bakteri Manual I - Bakteri'),
$text('id_antibiotikmanual2', 'Bakteri Manual I - Set Antibiotik'),
$select('id_bakterisir02', 'Bakteri Manual I - SIR', $sirOptions),
$select('id_bakterihitungkol02', 'Bakteri Manual I - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks02', 'Bakteri Manual I - Hitung Koloni Lainnya'),
$select('id_bakteri02cetak', 'Bakteri Manual I - Cetak', $printOptions),
$area('keterangan', 'Keterangan Expertise'),
],
'PCR COVID' => [
$select('covid_virus01', 'Virus SARS-Cov-2', ['Positif', 'Negatif', 'Tidak Diperiksa']),
$text('covid_satuanvirus01', 'Satuan SARS-Cov-2'),
$text('covid_rujukanvirus01', 'Nilai Rujukan SARS-Cov-2'),
$select('covid_virus02', 'Influenza A', ['Positif', 'Negatif', 'Tidak Diperiksa']),
$text('covid_satuanvirus02', 'Satuan Influenza A'),
$text('covid_rujukanvirus02', 'Nilai Rujukan Influenza A'),
$select('covid_virus03', 'Influenza B', ['Positif', 'Negatif', 'Tidak Diperiksa']),
$text('covid_satuanvirus03', 'Satuan Influenza B'),
$text('covid_rujukanvirus03', 'Nilai Rujukan Influenza B'),
$select('covid_virus04', 'RSV', ['Positif', 'Negatif', 'Tidak Diperiksa']),
$text('covid_satuanvirus04', 'Satuan RSV'),
$text('covid_rujukanvirus04', 'Nilai Rujukan RSV'),
$area('covid_interpretasi', 'Interpretasi'),
$select('media_bap_status', 'Media BAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_bap_note', 'Media BAP Catatan'),
$select('media_cap_status', 'Media CAP Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_cap_note', 'Media CAP Catatan'),
$select('media_mcconkey_status', 'Media Mc Conkey Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_mcconkey_note', 'Media Mc Conkey Catatan'),
$select('media_sdar1_status', 'Kultur Jamur R1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar1_note', 'Kultur Jamur R1 Catatan'),
$select('media_sdar2_status', 'Kultur Jamur R2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdar2_note', 'Kultur Jamur R2 Catatan'),
$select('media_sdai1_status', 'Kultur Jamur I1 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai1_note', 'Kultur Jamur I1 Catatan'),
$select('media_sdai2_status', 'Kultur Jamur I2 Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sdai2_note', 'Kultur Jamur I2 Catatan'),
$select('media_sellainnya_status', 'Media Selektif Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_sellainnya_note', 'Media Selektif Lainnya Catatan'),
$select('media_tamlainnya_status', 'Pemeriksaan Tambahan Lainnya Status', ['Ada Pertumbuhan', 'Tidak Ada Pertumbuhan', 'Pertumbuhan Primer']),
$text('media_tamlainnya_note', 'Pemeriksaan Tambahan Lainnya Catatan'),
$text('bakteri', 'Vitek - Bakteri'),
$select('bakterisir', 'Vitek - SIR', $sirOptions),
$select('id_bakterihitungkol', 'Vitek - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks', 'Vitek - Hitung Koloni Lainnya'),
$select('id_baktericetak', 'Vitek - Cetak', $printOptions),
$text('id_bakteri01', 'MALDITOF - Bakteri'),
$text('id_antibiotikmanual1', 'MALDITOF - Set Antibiotik'),
$select('id_bakterisir01', 'MALDITOF - SIR', $sirOptions),
$select('id_bakterihitungkol01', 'MALDITOF - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks01', 'MALDITOF - Hitung Koloni Lainnya'),
$select('id_bakteri01cetak', 'MALDITOF - Cetak', $printOptions),
$text('id_bakteri02', 'Bakteri Manual I - Bakteri'),
$text('id_antibiotikmanual2', 'Bakteri Manual I - Set Antibiotik'),
$select('id_bakterisir02', 'Bakteri Manual I - SIR', $sirOptions),
$select('id_bakterihitungkol02', 'Bakteri Manual I - Hitung Koloni', $colonyOptions),
$text('id_bakterihitungkolteks02', 'Bakteri Manual I - Hitung Koloni Lainnya'),
$select('id_bakteri02cetak', 'Bakteri Manual I - Cetak', $printOptions),
$area('keterangan', 'Keterangan Expertise'),
],
default => [
$area('keterangan', 'Keterangan Expertise'),
],
};
}
public function earlyWarning(Request $request)
{
$this->requireUser($request);