This commit is contained in:
Dwi Swandhana
2026-04-10 22:15:49 +07:00
parent 4f7575c7d4
commit 4d025dc57d
7 changed files with 392 additions and 91 deletions
@@ -629,6 +629,33 @@ class DokterController extends Controller
$pesan = 'Expertise Saved';
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan]);
}
case 'preliminary':
$updateData = [
'keterangan' => $keterangan,
'dlp' => $dlp,
'analis' => $analis,
'nmanalis' => $cekanalis->nama ?? null,
'dokter_id' => Session('id'),
'nmdokter' => Session('nama'),
'ppdssenior' => $ppds3,
'nmppdssenior' => $cekppds3->nama ?? null,
'tandatangan' => '',
'verifikasi' => $tglverifikasi,
'nmexcutor' => Session('nama'),
'excutor' => Session('id'),
'status' => 'Preliminary Results',
];
$periksa->update($updateData);
$surat = self::genSurat($periksa->id, 'dengan kop');
Riwayat::create([
'nofoto' => $nofoto,
'jawaban' => $surat,
'inputor' => Session('nama'),
'verifikasi' => 'Accepted',
'keterangan' => 'Preliminary Results',
]);
$pesan = 'Preliminary Results Saved';
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan]);
case 'Permohonan Verifikasi':
$updateData = [
'keterangan' => $keterangan,
@@ -3649,7 +3676,7 @@ class DokterController extends Controller
$keterangan = $status;
$status = 'Batal';
} else {
if ($status == 'Arsip' OR $status == 'Selesai'){
if ($status == 'Arsip' OR $status == 'Selesai' OR $status == 'Preliminary Results'){
$status = 'Selesai';
} elseif ($status == 'Decliend'){
$status = 'Ulang';
@@ -3695,7 +3722,7 @@ class DokterController extends Controller
$keterangan = $status;
$status = 'Batal';
} else {
if ($status == 'Arsip' OR $status == 'Selesai'){
if ($status == 'Arsip' OR $status == 'Selesai' OR $status == 'Preliminary Results'){
$status = 'Selesai';
} elseif ($status == 'Decliend'){
$status = 'Ulang';
@@ -682,7 +682,7 @@ class FrontpageController extends Controller
if (!Session::has('previlage')) {
return redirect('/login');
}
$periksa = Periksa::select('id', 'poli_id')->find($periksaId);
$periksa = Periksa::select('id', 'poli_id', 'daftar')->find($periksaId);
if (!$periksa) {
abort(404);
}
@@ -693,11 +693,15 @@ class FrontpageController extends Controller
? $requestedMaster
: $this->resolveMikroMasterFromPoliId($periksa->poli_id);
$returnUrl = $this->resolveExpertiseReturnUrl($request, $master);
$periksaDate = $periksa->daftar ? Carbon::parse($periksa->daftar)->format('Y-m-d') : null;
return view($this->mikroExpertiseViewName(), $this->buildMikroViewData($master, [
'focusPeriksaId' => (string) $periksaId,
'expertiseReturnUrl' => $returnUrl,
'openExpertiseOnLoad' => true,
'initialListMode' => 'searchbydate',
'initialStartDate' => $periksaDate,
'initialEndDate' => $periksaDate,
]));
}
public function cancelEarlyWarning(Request $request, $id)
@@ -10,6 +10,7 @@
@php
$data = [];
$keterangan = $periksa->keterangan;
$statuspemeriksaan = $periksa->status;
$data['keterangan'] = $periksa->keterangan;
if (!empty($komponens)) {
foreach ($komponens as $rows) {
@@ -440,49 +441,53 @@
$left = $items->slice(0, $half)->values();
$right = $items->slice($half)->values();
@endphp
@if ($cetakjudul)
<table style="width:100%; border-collapse: collapse;" border="1" cellpadding="3" cellspacing="0">
<thead>
<tr style="background-color: #f2f2f2;">
<th>No</th>
<th>Antibiotik</th>
<th>Value</th>
<th>Interpretation</th>
<th>&nbsp;</th>
<th>No</th>
<th>Antibiotik</th>
<th>Value</th>
<th>Interpretation</th>
</tr>
</thead>
<tbody>
@for ($i = 0; $i < $half; $i++)
<tr>
{{-- Kolom kiri --}}
@if (isset($left[$i]) AND $left[$i]->printrow)
<td>{{ $i + 1 }}</td>
<td>{{ $left[$i]->antibiotic }}</td>
<td>{{ $left[$i]->printcol == 1 ? $left[$i]->value : '' }}</td>
<td align="center">{{ $left[$i]->interpretation }}</td>
@else
<td colspan="4">&nbsp;</td>
@endif
<td>&nbsp;</td> {{-- Pemisah tengah --}}
{{-- Kolom kanan --}}
@if (isset($right[$i]) AND $right[$i]->printrow)
<td>{{ $i + 1 + $half }}</td>
<td>{{ $right[$i]->antibiotic }}</td>
<td>{{ $right[$i]->printcol == 1 ? $right[$i]->value : '' }}</td>
<td align="center">{{ $right[$i]->interpretation }}</td>
@else
<td colspan="4">&nbsp;</td>
@endif
@if ($statuspemeriksaan == 'Preliminary Results')
<p><em><strong>Uji Kepekaan antibiotik on going</strong></em></p>
@else
@if ($cetakjudul)
<table style="width:100%; border-collapse: collapse;" border="1" cellpadding="3" cellspacing="0">
<thead>
<tr style="background-color: #f2f2f2;">
<th>No</th>
<th>Antibiotik</th>
<th>Value</th>
<th>Interpretation</th>
<th>&nbsp;</th>
<th>No</th>
<th>Antibiotik</th>
<th>Value</th>
<th>Interpretation</th>
</tr>
@endfor
</tbody>
</table>
</thead>
<tbody>
@for ($i = 0; $i < $half; $i++)
<tr>
{{-- Kolom kiri --}}
@if (isset($left[$i]) AND $left[$i]->printrow)
<td>{{ $i + 1 }}</td>
<td>{{ $left[$i]->antibiotic }}</td>
<td>{{ $left[$i]->printcol == 1 ? $left[$i]->value : '' }}</td>
<td align="center">{{ $left[$i]->interpretation }}</td>
@else
<td colspan="4">&nbsp;</td>
@endif
<td>&nbsp;</td> {{-- Pemisah tengah --}}
{{-- Kolom kanan --}}
@if (isset($right[$i]) AND $right[$i]->printrow)
<td>{{ $i + 1 + $half }}</td>
<td>{{ $right[$i]->antibiotic }}</td>
<td>{{ $right[$i]->printcol == 1 ? $right[$i]->value : '' }}</td>
<td align="center">{{ $right[$i]->interpretation }}</td>
@else
<td colspan="4">&nbsp;</td>
@endif
</tr>
@endfor
</tbody>
</table>
@endif
@endif
@endforeach
@endif
@@ -2385,7 +2385,8 @@
</div>
</div>
<div class="col-auto">
<button type="button" id="btnsendexpertisetopacs" class="btn btn-warning pull-right">Save Final Result</button>
<button type="button" id="btnsavepreliminary" class="btn btn-danger pull-left">Save Preliminary result</button>
<button type="button" id="btnsendexpertisetopacs" class="btn btn-warning pull-left">Save Final Result</button>
@else
<div class="col-auto">
<button type="button" id="btnSavePeriksa" class="btn btn-warning pull-right">Save and Send To SPV</button>
@@ -6149,6 +6150,101 @@
});
}
});
$("#btnsavepreliminary").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
var viralload = CKEDITOR.instances['viralload'].getData();
var periksa_id = document.getElementById('periksa_id').value;
var template_jenis = document.getElementById('template_jenis').value;
var id_dokter = document.getElementById('dokter').value;
var acc_number = document.getElementById('nofoto').value;
var nostatus = document.getElementById('nostatus').value;
var addendumketerangan = CKEDITOR.instances['addendumketerangan'].getData();
if (id_dokter == 'Pilih' || id_dokter == '' || id_dokter == '0' || id_dokter == null){
swal({
title : 'Stop',
text : 'Please Select SPV',
type : 'warning',
})
return false;
} else if (addendumketerangan == '' && nostatus == 'Selesai'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else if (addendumketerangan == '' && nostatus == 'Arsip'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else {
const checkboxMap = {
inlineCheckbox1: 'TBC SO',
inlineCheckbox2: 'TBC RO',
inlineCheckbox3: 'Anak',
inlineCheckbox4: 'HIV',
inlineCheckbox5: 'DM',
inlineCheckbox6: 'Nanah Lendir',
inlineCheckbox7: 'Bercak darah',
inlineCheckbox8: 'Air liur',
inlineCheckbox9: 'Nanah Lendir',
inlineCheckbox10: 'Bercak darah',
inlineCheckbox11: 'Air liur',
};
const checkboxValues = {};
$.each(checkboxMap, function (id, label) {
checkboxValues[id] = $(`#${id}`).is(':checked') ? label : '';
});
var formdata = new FormData($('#kt_form')[0]);
formdata.set('periksa_id', periksa_id);
formdata.set('acc_number', acc_number);
formdata.set('val01', 'preliminary');
formdata.set('val10', template_jenis);
formdata.set('keterangan', keterangan);
formdata.set('addendumketerangan', addendumketerangan);
formdata.set('lsg_pewarnaanlain', lsg_pewarnaanlain);
formdata.set('viralload', viralload);
formdata.set('nilai_kritis', $('#nilai_kritis').is(':checked') ? '1' : '0');
formdata.set('_token', '{{ csrf_token() }}');
$.each(checkboxValues, (key, val) => formdata.set(key, val));
$.ajax({
url : '{{ route("exexpertisepacs") }}',
data : formdata,
type : 'POST',
contentType : false,
processData : false,
success: function (data) {
$("#gridpemeriksaan").jqxGrid('updatebounddata','filter');
$("#gridadendum").jqxGrid('updatebounddata','filter');
var status = data.status;
var message = data.message;
var warna = data.warna;
var icon = data.icon;
$.toast({
heading : status,
text : message,
position : 'top-right',
loaderBg : warna,
icon : icon,
hideAfter : 5000,
stack : 1
});
return false;
},
error: function (xhr, status, error) {
swal({
title : 'Stop',
text : xhr.responseText,
type : 'warning',
})
}
});
}
});
$("#btnSavePeriksa").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
+105 -7
View File
@@ -2423,16 +2423,16 @@
<textarea id="addendumketerangan" style="width: 100%; height: 300px;"></textarea>
</div>
</div>
<div class="form-row align-items-center">
<div class="col-auto">
<div class="form-row">
<div class="col-lg-2">
<input type="hidden" id="periksa_id" name="periksa_id">
<button type="button" id="btnkembali" class="btn btn-primary">Back</button>
</div>
<div class="col-auto setelahdipilihtemplate">
<div class="col-lg-2 setelahdipilihtemplate">
<button type="button" id="btnsavedraft" class="btn btn-success pull-right">Save as Draft</button>
</div>
@if (Session('previlage') == 'supervisor' OR Session('previlage') == 'developer')
<div class="col-auto">
<div class="col-lg-2">
<div class="form-check mb-2">
<input class="form-check-input" type="checkbox" id="nilai_kritis" name="nilai_kritis">
<label class="form-check-label" for="nilai_kritis">
@@ -2440,10 +2440,11 @@
</label>
</div>
</div>
<div class="col-auto">
<button type="button" id="btnsendexpertisetopacs" class="btn btn-warning pull-right">Save Final Result</button>
<div class="col-lg-4 btn-group">
<button type="button" id="btnsavepreliminary" class="btn btn-danger pull-left">Save Preliminary result</button>
<button type="button" id="btnsendexpertisetopacs" class="btn btn-warning pull-left">Save Final Result</button>
@else
<div class="col-auto">
<div class="col-lg-4">
<button type="button" id="btnSavePeriksa" class="btn btn-warning pull-right">Save and Send To SPV</button>
@endif
</div>
@@ -6168,6 +6169,103 @@
});
}
});
$("#btnsavepreliminary").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
var viralload = CKEDITOR.instances['viralload'].getData();
var periksa_id = document.getElementById('periksa_id').value;
var template_jenis = document.getElementById('template_jenis').value;
var id_dokter = document.getElementById('dokter').value;
var acc_number = document.getElementById('nofoto').value;
var nostatus = document.getElementById('nostatus').value;
var addendumketerangan = CKEDITOR.instances['addendumketerangan'].getData();
if (id_dokter == 'Pilih' || id_dokter == '' || id_dokter == '0' || id_dokter == null){
swal({
title : 'Stop',
text : 'Please Select SPV',
type : 'warning',
})
return false;
} else if (addendumketerangan == '' && nostatus == 'Selesai'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else if (addendumketerangan == '' && nostatus == 'Arsip'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else {
const checkboxMap = {
inlineCheckbox1: 'TBC SO',
inlineCheckbox2: 'TBC RO',
inlineCheckbox3: 'Anak',
inlineCheckbox4: 'HIV',
inlineCheckbox5: 'DM',
inlineCheckbox6: 'Nanah Lendir',
inlineCheckbox7: 'Bercak darah',
inlineCheckbox8: 'Air liur',
inlineCheckbox9: 'Nanah Lendir',
inlineCheckbox10: 'Bercak darah',
inlineCheckbox11: 'Air liur',
};
const checkboxValues = {};
$.each(checkboxMap, function (id, label) {
checkboxValues[id] = $(`#${id}`).is(':checked') ? label : '';
});
var formdata = new FormData($('#kt_form')[0]);
formdata.set('periksa_id', periksa_id);
formdata.set('acc_number', acc_number);
formdata.set('val01', 'preliminary');
formdata.set('val10', template_jenis);
formdata.set('keterangan', keterangan);
formdata.set('addendumketerangan', addendumketerangan);
formdata.set('lsg_pewarnaanlain', lsg_pewarnaanlain);
formdata.set('viralload', viralload);
formdata.set('nilai_kritis', $('#nilai_kritis').is(':checked') ? '1' : '0');
formdata.set('master_mikro', $('#master_lokasi').val());
formdata.set('_token', '{{ csrf_token() }}');
$.each(checkboxValues, (key, val) => formdata.set(key, val));
$.ajax({
url : '{{ route("exexpertisepacs") }}',
data : formdata,
type : 'POST',
contentType : false,
processData : false,
success: function (data) {
$("#gridpemeriksaan").jqxGrid('updatebounddata','filter');
$("#gridadendum").jqxGrid('updatebounddata','filter');
var status = data.status;
var message = data.message;
var warna = data.warna;
var icon = data.icon;
$.toast({
heading : status,
text : message,
position : 'top-right',
loaderBg : warna,
icon : icon,
hideAfter : 5000,
stack : 1
});
//window.location.href = "{{ url('/mikro') }}";
return false;
},
error: function (xhr, status, error) {
swal({
title : 'Stop',
text : xhr.responseText,
type : 'warning',
})
}
});
}
});
$("#btnSavePeriksa").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
@@ -47,10 +47,10 @@
<p class="m-b-0"></p>
<div class="form-row">
<div class="form-group col-lg-4">
<input type="text" name="mulai" id="mulai" class="form-control" placeholder="Start Date" data-mask="9999-99-99">
<input type="text" name="mulai" id="mulai" class="form-control" placeholder="Start Date" data-mask="9999-99-99" value="{{ $initialStartDate ?? '' }}">
</div>
<div class="form-group col-lg-4">
<input type="text" name="akhir" id="akhir" class="form-control" placeholder="End Date" data-mask="9999-99-99">
<input type="text" name="akhir" id="akhir" class="form-control" placeholder="End Date" data-mask="9999-99-99" value="{{ $initialEndDate ?? '' }}">
</div>
<div class="form-group col-lg-4">
<button type="button" class="btn btn-warning" id="btnviewcustom"><i class="fa fa-search"></i></button>
@@ -2423,16 +2423,16 @@
<textarea id="addendumketerangan" style="width: 100%; height: 300px;"></textarea>
</div>
</div>
<div class="form-row align-items-center">
<div class="col-auto">
<div class="form-row">
<div class="col-lg-2">
<input type="hidden" id="periksa_id" name="periksa_id">
<button type="button" id="btnkembali" class="btn btn-primary">Back</button>
</div>
<div class="col-auto setelahdipilihtemplate">
<button type="button" id="btnsavedraft" class="btn btn-success pull-right">Save as Draft</button>
<div class="col-lg-2 setelahdipilihtemplate">
<button type="button" id="btnsavedraft" class="btn btn-success pull-left">Save as Draft</button>
</div>
@if (Session('previlage') == 'supervisor' OR Session('previlage') == 'developer')
<div class="col-auto">
<div class="col-lg-2">
@if ($master === 'buku03')
<div class="form-check mb-2">
<input class="form-check-input" type="checkbox" id="nilai_kritis" name="nilai_kritis">
@@ -2444,10 +2444,11 @@
<small class="text-danger d-inline-block mt-2">Nilai kritis hanya berlaku di sample darah.</small>
@endif
</div>
<div class="col-auto">
<div class="col-lg-4 btn-group">
<button type="button" id="btnsavepreliminary" class="btn btn-danger pull-right">Save Preliminary result</button>
<button type="button" id="btnsendexpertisetopacs" class="btn btn-warning pull-right">Save Final Result</button>
@else
<div class="col-auto">
<div class="col-lg-4">
<button type="button" id="btnSavePeriksa" class="btn btn-warning pull-right">Save and Send To SPV</button>
@endif
</div>
@@ -3128,7 +3129,7 @@
<input type="hidden" id="master_lokasi" name="master_lokasi" value="{{ $master }}">
<input type="hidden" id="master_userid" name="master_userid" value="{{ Session('id') }}">
<input type="hidden" id="master_kelompok" name="master_kelompok" value="{{ Session('previlage') }}">
<input type="hidden" id="master_set01" name="master_set01" value="ThisDay">
<input type="hidden" id="master_set01" name="master_set01" value="{{ $initialListMode ?? 'ThisDay' }}">
<input type="hidden" id="master_set02" name="master_set02" value="">
<input type="hidden" id="master_set03" name="master_set03" value="">
<input type="hidden" id="master_set04" name="master_set04" value="">
@@ -3574,22 +3575,6 @@
text : statuse,
type : 'warning',
})
} else if (statuse == 'Selesai' || statuse == 'Arsip') {
var hakakses = "{{Session('previlage')}}";
if (hakakses == 'supervisor'){
$('#divreadonly').hide();
$('#divperiksa').show();
$('#divawal').hide();
$('#btnsavedraft').hide();
$('#divadendumketerangan').show();
openlamanekpertise();
} else {
swal({
title : 'Ekspertise Final',
text : 'Hanya Akun SPV yang diperkenankan mengubah data Arsip',
type : 'warning',
})
}
} else {
$('#divreadonly').hide();
$('#divperiksa').show();
@@ -5353,17 +5338,6 @@
text : statuse,
type : 'warning',
})
} else if (statuse == 'Selesai' || statuse == 'Arsip') {
var hakakses = "{{Session('previlage')}}";
if (hakakses == 'supervisor'){
window.location.href = mikroExpertiseBaseUrl + '/' + dataRecord.id + '/expertise?from=' + encodeURIComponent(mikroMaster);
} else {
swal({
title : 'Ekspertise Final',
text : 'Hanya Akun SPV yang diperkenankan mengubah data Arsip',
type : 'warning',
})
}
} else {
window.location.href = mikroExpertiseBaseUrl + '/' + dataRecord.id + '/expertise?from=' + encodeURIComponent(mikroMaster);
}
@@ -6242,6 +6216,103 @@
});
}
});
$("#btnsavepreliminary").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
var viralload = CKEDITOR.instances['viralload'].getData();
var periksa_id = document.getElementById('periksa_id').value;
var template_jenis = document.getElementById('template_jenis').value;
var id_dokter = document.getElementById('dokter').value;
var acc_number = document.getElementById('nofoto').value;
var nostatus = document.getElementById('nostatus').value;
var addendumketerangan = CKEDITOR.instances['addendumketerangan'].getData();
if (id_dokter == 'Pilih' || id_dokter == '' || id_dokter == '0' || id_dokter == null){
swal({
title : 'Stop',
text : 'Please Select SPV',
type : 'warning',
})
return false;
} else if (addendumketerangan == '' && nostatus == 'Selesai'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else if (addendumketerangan == '' && nostatus == 'Arsip'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else {
const checkboxMap = {
inlineCheckbox1: 'TBC SO',
inlineCheckbox2: 'TBC RO',
inlineCheckbox3: 'Anak',
inlineCheckbox4: 'HIV',
inlineCheckbox5: 'DM',
inlineCheckbox6: 'Nanah Lendir',
inlineCheckbox7: 'Bercak darah',
inlineCheckbox8: 'Air liur',
inlineCheckbox9: 'Nanah Lendir',
inlineCheckbox10: 'Bercak darah',
inlineCheckbox11: 'Air liur',
};
const checkboxValues = {};
$.each(checkboxMap, function (id, label) {
checkboxValues[id] = $(`#${id}`).is(':checked') ? label : '';
});
var formdata = new FormData($('#kt_form')[0]);
formdata.set('periksa_id', periksa_id);
formdata.set('acc_number', acc_number);
formdata.set('val01', 'preliminary');
formdata.set('val10', template_jenis);
formdata.set('keterangan', keterangan);
formdata.set('addendumketerangan', addendumketerangan);
formdata.set('lsg_pewarnaanlain', lsg_pewarnaanlain);
formdata.set('viralload', viralload);
formdata.set('nilai_kritis', $('#nilai_kritis').is(':checked') ? '1' : '0');
formdata.set('master_mikro', $('#master_lokasi').val());
formdata.set('_token', '{{ csrf_token() }}');
$.each(checkboxValues, (key, val) => formdata.set(key, val));
$.ajax({
url : '{{ route("exexpertisepacs") }}',
data : formdata,
type : 'POST',
contentType : false,
processData : false,
success: function (data) {
$("#gridpemeriksaan").jqxGrid('updatebounddata','filter');
$("#gridadendum").jqxGrid('updatebounddata','filter');
var status = data.status;
var message = data.message;
var warna = data.warna;
var icon = data.icon;
$.toast({
heading : status,
text : message,
position : 'top-right',
loaderBg : warna,
icon : icon,
hideAfter : 5000,
stack : 1
});
//window.location.href = "{{ url('/mikro') }}";
return false;
},
error: function (xhr, status, error) {
swal({
title : 'Stop',
text : xhr.responseText,
type : 'warning',
})
}
});
}
});
$("#btnSavePeriksa").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
+1 -1
View File
@@ -73,7 +73,7 @@ GENEXPERT_TEST_MAPPING = {
# Mapping untuk IP 10.10.120.74 (Khusus)
# Catatan: Di dokumen Anda tertulis Assay 'HBV' tapi kodenya 'HCV'.
# Pastikan ini benar, atau sesuaikan jika itu typo di dokumen.
"HBV VL": "HCV",
"HBV VL": "HCV",
}
GENEXPERT_IP_CAPABILITIES = {
"10.10.120.75": ["MTB-RIF", "MTB-RIF_ULTRA2", "MTB-XDR", "HIV-1_VL", "COV-2 2"],