From 4d025dc57d663c12b7c20159d55930ebd7062e94 Mon Sep 17 00:00:00 2001 From: Dwi Swandhana Date: Fri, 10 Apr 2026 22:15:49 +0700 Subject: [PATCH] update --- .../app/Http/Controllers/DokterController.php | 31 +++- .../Http/Controllers/FrontpageController.php | 6 +- .../views/cetak/ekspertisekultur.blade.php | 89 ++++++----- .../views/dokter/pemeriksaan.blade.php | 98 +++++++++++- htdocs/resources/views/dokter/ppds.blade.php | 112 +++++++++++++- .../views/dokter/ppdsdeveloper.blade.php | 145 +++++++++++++----- listener/app.py | 2 +- 7 files changed, 392 insertions(+), 91 deletions(-) diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php index e15ed13f..a70c790f 100644 --- a/htdocs/app/Http/Controllers/DokterController.php +++ b/htdocs/app/Http/Controllers/DokterController.php @@ -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'; diff --git a/htdocs/app/Http/Controllers/FrontpageController.php b/htdocs/app/Http/Controllers/FrontpageController.php index 33f749c0..44b1488e 100644 --- a/htdocs/app/Http/Controllers/FrontpageController.php +++ b/htdocs/app/Http/Controllers/FrontpageController.php @@ -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) diff --git a/htdocs/resources/views/cetak/ekspertisekultur.blade.php b/htdocs/resources/views/cetak/ekspertisekultur.blade.php index 24521b3c..12822970 100644 --- a/htdocs/resources/views/cetak/ekspertisekultur.blade.php +++ b/htdocs/resources/views/cetak/ekspertisekultur.blade.php @@ -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) - - - - - - - - - - - - - - - - @for ($i = 0; $i < $half; $i++) - - {{-- Kolom kiri --}} - @if (isset($left[$i]) AND $left[$i]->printrow) - - - - - @else - - @endif - - {{-- Pemisah tengah --}} - - {{-- Kolom kanan --}} - @if (isset($right[$i]) AND $right[$i]->printrow) - - - - - @else - - @endif + @if ($statuspemeriksaan == 'Preliminary Results') +

Uji Kepekaan antibiotik on going

+ @else + @if ($cetakjudul) +
NoAntibiotikValueInterpretation NoAntibiotikValueInterpretation
{{ $i + 1 }}{{ $left[$i]->antibiotic }}{{ $left[$i]->printcol == 1 ? $left[$i]->value : '' }}{{ $left[$i]->interpretation }}  {{ $i + 1 + $half }}{{ $right[$i]->antibiotic }}{{ $right[$i]->printcol == 1 ? $right[$i]->value : '' }}{{ $right[$i]->interpretation }} 
+ + + + + + + + + + + - @endfor - -
NoAntibiotikValueInterpretation NoAntibiotikValueInterpretation
+ + + @for ($i = 0; $i < $half; $i++) + + {{-- Kolom kiri --}} + @if (isset($left[$i]) AND $left[$i]->printrow) + {{ $i + 1 }} + {{ $left[$i]->antibiotic }} + {{ $left[$i]->printcol == 1 ? $left[$i]->value : '' }} + {{ $left[$i]->interpretation }} + @else +   + @endif + +   {{-- Pemisah tengah --}} + + {{-- Kolom kanan --}} + @if (isset($right[$i]) AND $right[$i]->printrow) + {{ $i + 1 + $half }} + {{ $right[$i]->antibiotic }} + {{ $right[$i]->printcol == 1 ? $right[$i]->value : '' }} + {{ $right[$i]->interpretation }} + @else +   + @endif + + @endfor + + + @endif @endif @endforeach @endif diff --git a/htdocs/resources/views/dokter/pemeriksaan.blade.php b/htdocs/resources/views/dokter/pemeriksaan.blade.php index 0f0adfa1..f96faee3 100644 --- a/htdocs/resources/views/dokter/pemeriksaan.blade.php +++ b/htdocs/resources/views/dokter/pemeriksaan.blade.php @@ -2385,7 +2385,8 @@
- + + @else
@@ -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(); diff --git a/htdocs/resources/views/dokter/ppds.blade.php b/htdocs/resources/views/dokter/ppds.blade.php index 62624f3a..92192f28 100644 --- a/htdocs/resources/views/dokter/ppds.blade.php +++ b/htdocs/resources/views/dokter/ppds.blade.php @@ -2423,16 +2423,16 @@
-
-
+
+
-
+
@if (Session('previlage') == 'supervisor' OR Session('previlage') == 'developer') -
+
-
- +
+ + @else -
+
@endif
@@ -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(); diff --git a/htdocs/resources/views/dokter/ppdsdeveloper.blade.php b/htdocs/resources/views/dokter/ppdsdeveloper.blade.php index 32217397..1c5959d5 100644 --- a/htdocs/resources/views/dokter/ppdsdeveloper.blade.php +++ b/htdocs/resources/views/dokter/ppdsdeveloper.blade.php @@ -47,10 +47,10 @@

- +
- +
@@ -2423,16 +2423,16 @@
-
-
+
+
-
- +
+
@if (Session('previlage') == 'supervisor' OR Session('previlage') == 'developer') -
+
@if ($master === 'buku03')
@@ -2444,10 +2444,11 @@ Nilai kritis hanya berlaku di sample darah. @endif
-
+
+ @else -
+
@endif
@@ -3128,7 +3129,7 @@ - + @@ -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(); diff --git a/listener/app.py b/listener/app.py index 8ad2b164..0fb08ac4 100644 --- a/listener/app.py +++ b/listener/app.py @@ -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"],