diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php
index 5a222001..14089bdc 100644
--- a/htdocs/app/Http/Controllers/DokterController.php
+++ b/htdocs/app/Http/Controllers/DokterController.php
@@ -59,7 +59,7 @@ class DokterController extends Controller
{
protected $lisServiceUrl;
public function __construct() {
- $this->lisServiceUrl = env('LIS_SERVICE_URL', 'http://localhost:5000');
+ $this->lisServiceUrl = env('LIS_SERVICE_URL', 'http://10.10.120.72:5000');
}
protected static function genSurat($id, $tabel){
if ($tabel == 'dengan kop' OR $tabel == 'PDF'){
@@ -170,7 +170,7 @@ class DokterController extends Controller
$data['nik'] = $nik;
$data['bpjs'] = $bpjs;
if ($dlp == 'TBC'){
- $cekjenis = KomponenJawaban::where('accnumber', $periksa->nofoto)->where('komponen', 'id_jenispemeriksaantb')->first();
+ $cekjenis = KomponenJawaban::where('accnumber', $periksa->nofoto)->where('komponen', 'id_jenispemeriksaantb')->first();
$template = $cekjenis->isidata ?? '';
$data['template'] = $template;
if ($template == 'TCM MTB Rif (Xpert)' OR $template == 'TCM MTB Rif (Truenat)' OR $template == 'TCM MTB Rif INH (BDMAX)'){
@@ -243,8 +243,6 @@ class DokterController extends Controller
} else {
return $generatesurat;
}
-
-
}
public function index() {
if (Session::get('previlage') == ''){
@@ -448,64 +446,37 @@ class DokterController extends Controller
}
public function exexpertisePacs(Request $request) {
$keterangan = $request->input('keterangan');
- $kesimpulan = $request->input('kesimpulan');
$iddokter = $request->input('dokter');
- $jumlah = $kesimpulan;
- $kesimpulan = '';
+ $kerja = $request->input('val01');
+ $dlp = $request->input('val10');
+ $idperiksa = $request->input('periksa_id');
+ $nofoto = $request->input('acc_number');
+
+ if ($kerja == 'Draft'){
+ $iddokter = Session('id');
+ }
if ($iddokter == 'Pilih' OR $iddokter == ''){
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error..!!', 'message' => 'Please Select Doctor Names']);
return back();
} else {
- $idperiksa = $request->input('periksa_id');
- $nofoto = $request->input('nofoto');
- $ruangan = $request->input('ruangan');
- $kerja = $request->input('val01');
- $jenisfont = $request->input('val07');
- $modality = $request->input('val09');
- $dlp = $request->input('val10');
- $ppds1 = $request->input('val11');
- $ppds2 = $request->input('val12');
- $ppds3 = $request->input('val13');
- $berat = $request->input('val16');
- $klinis = $request->input('val17');
- $klinisi = $request->input('val18');
- $diagnosa2 = $request->input('val19');
- $otheras = $request->input('val20');
- $otherppds = $request->input('val21');
+ KomponenJawaban::updateOrCreate(
+ [
+ 'accnumber' => $nofoto,
+ 'template' => $dlp,
+ 'komponen' => 'keterangan',
+ ],
+ [
+ 'isidata' => $keterangan,
+ 'created_by' => Session('nama')
+ ]
+ );
$analis = $request->input('analis');
- if ($keterangan != ''){
- KomponenJawaban::updateOrCreate(
- [
- 'accnumber' => $nofoto,
- 'template' => $dlp,
- 'komponen' => 'keterangan',
- ],
- [
- 'isidata' => $keterangan,
- 'created_by' => Session('nama')
- ]
- );
- }
-
+ $ppds3 = $request->input('ppds3');
$today = date('Y-m-d H:i:s');
$periksa = Periksa::with(['getPasien', 'getPoli'])->find($idperiksa);
$cekdokter = optional(User::find($iddokter));
$cekanalis = optional(User::find($analis));
- $cekppds1 = optional(User::find($ppds1));
- $cekppds2 = optional(User::find($ppds2));
$cekppds3 = optional(User::find($ppds3));
- if ($otherppds) {
- $cekOtherPPDS = User::where('nama', $otherppds)->first();
- if ($cekOtherPPDS) {
- $otherppdsId = $cekOtherPPDS->id;
- $updateData['ppdsjunior2'] = ($otheras === 'Junior') ? $otherppdsId : 0;
- $updateData['ppdsmiddle2'] = ($otheras === 'Middle') ? $otherppdsId : 0;
- $periksa->update([
- 'nmppdsjunior2' => $otheras === 'Junior' ? $cekOtherPPDS->nama : null,
- 'nmppdsmiddle2' => $otheras === 'Middle' ? $cekOtherPPDS->nama : null,
- ]);
- }
- }
switch ($kerja) {
case 'verifikasi':
$updateData = [
@@ -515,13 +486,9 @@ class DokterController extends Controller
'nmanalis' => $cekanalis->nama ?? null,
'dokter_id' => $iddokter,
'nmdokter' => $cekdokter->nama ?? null,
- 'ppdsjunior' => $ppds1,
- 'nmppdsjunior' => $cekppds1->nama ?? null,
- 'middleppds' => $ppds2,
- 'nmmiddleppds' => $cekppds2->nama ?? null,
'ppdssenior' => $ppds3,
'nmppdssenior' => $cekppds3->nama ?? null,
- 'tandatangan' => $cekdokter->tandatangan ?? '',
+ 'tandatangan' => '',
'verifikasi' => $today,
'nmexcutor' => Session('nama'),
'excutor' => Session('id'),
@@ -550,13 +517,9 @@ class DokterController extends Controller
'nmanalis' => $cekanalis->nama ?? null,
'dokter_id' => $iddokter,
'nmdokter' => $cekdokter->nama ?? null,
- 'ppdsjunior' => $ppds1,
- 'nmppdsjunior' => $cekppds1->nama ?? null,
- 'middleppds' => $ppds2,
- 'nmmiddleppds' => $cekppds2->nama ?? null,
'ppdssenior' => $ppds3,
'nmppdssenior' => $cekppds3->nama ?? null,
- 'tandatangan' => $cekdokter->tandatangan ?? '',
+ 'tandatangan' => '',
'baca' => $today,
'nmexcutor' => Session('nama'),
'excutor' => Session('id'),
@@ -579,6 +542,59 @@ class DokterController extends Controller
'verifikasi' => 'Declined',
]);
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Addendum Declined']);
+ case 'Draft':
+ $periksa->update([
+ 'keterangan' => $keterangan,
+ 'dlp' => $dlp,
+ 'analis' => $analis,
+ 'nmanalis' => $cekanalis->nama ?? null,
+ 'tgldraft' => $today,
+ 'nmdrafter' => Session('nama'),
+ 'nmexcutor' => Session('nama'),
+ 'excutor' => Session('id'),
+ 'status' => 'Proses Analisis Sampel'
+ ]);
+ $data = $request->except(['_token', 'periksa_id', 'val01', 'val10', 'acc_number']);
+ foreach ($data as $key => $value) {
+ if (empty($value)) continue;
+
+ if (is_array($value)) {
+ // Misal: simpan sebagai JSON agar tidak hilang struktur
+ KomponenJawaban::updateOrCreate(
+ [
+ 'accnumber' => $nofoto,
+ 'komponen' => $key,
+ ],
+ [
+ 'isidata' => json_encode($value), // simpan dalam bentuk JSON
+ 'template' => $dlp,
+ 'created_by' => session('nama'),
+ ]
+ );
+ } else {
+ // Value tunggal
+ KomponenJawaban::updateOrCreate(
+ [
+ 'accnumber' => $nofoto,
+ 'komponen' => $key,
+ ],
+ [
+ 'isidata' => $value,
+ 'template' => $dlp,
+ 'created_by' => session('nama'),
+ ]
+ );
+ }
+ }
+ $surat = self::genSurat($periksa->id, 'dengan kop');
+ Riwayat::create([
+ 'nofoto' => $nofoto,
+ 'jawaban' => $surat,
+ 'inputor' => Session('nama'),
+ 'verifikasi' => '',
+ 'keterangan' => 'Draft',
+ ]);
+ return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Draft Expertise Saved']);
case 'terimadendum':
$getid = Riwayat::where('keterangan', 'Adendum')->where('nofoto', $nofoto)->whereNull('verifikasi')->first();
if (isset($getid->id)){
@@ -598,16 +614,11 @@ class DokterController extends Controller
default:
$periksa->update([
'keterangan' => $keterangan,
- 'kesimpulan' => $kesimpulan,
'dlp' => $dlp,
'analis' => $analis,
'nmanalis' => $cekanalis->nama ?? null,
'dokter_id' => $iddokter,
'nmdokter' => $cekdokter->nama ?? null,
- 'ppdsjunior' => $ppds1,
- 'nmppdsjunior' => $cekppds1->nama ?? null,
- 'middleppds' => $ppds2,
- 'nmmiddleppds' => $cekppds2->nama ?? null,
'ppdssenior' => $ppds3,
'nmppdssenior' => $cekppds3->nama ?? null,
'tgldraft' => $today,
@@ -644,313 +655,6 @@ class DokterController extends Controller
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Error '.$pesan]);
return back();
}
- }
- public function sendOrder(Request $request) {
- $val09 = $request->input('val09');
- $dokter = $request->input('dokter');
- $ruangan = $request->input('ruangan');
- if($val09 == '' OR $dokter == '' OR $ruangan == ''){
- return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error..!!', 'message' => 'Nama Dokter, Modality dan Ruangan Wajib di Isi']);
- return back();
- } else {
- $emailbody = '';
- $idperiksa = $request->input('periksa_id');
- $nofoto = $request->input('nofoto');
- $ruangan = $request->input('ruangan');
- $iddokter = $request->input('dokter');
- $worklist = $request->input('keterangan');
- $jumlah = $request->input('kesimpulan');
- $tanggal = $request->input('val01');
- $rekuese = $request->input('val07');
- $modality = $request->input('val09');
- $dlp = $request->input('val10');
- $berat = $request->input('val11');
- $klinisi = $request->input('val12');
- $klinis = $request->input('val13');
- if ($iddokter == 'Pilih' OR $iddokter == ''){
- return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error..!!', 'message' => 'Please Select Doctor Names']);
- return back();
- }
- else {
- $periksa = Periksa::where('id', $idperiksa)->first();
- $idpasien = $periksa->pasien_id;
- $keterangan = $periksa->keterangan;
- $daftar = $periksa->daftar;
- $idruang = $periksa->ruangan_id;
- $kamar = $periksa->ruangan;
- $urgensi = $periksa->urgensi;
- $idpoli = $periksa->poli_id;
- $statuse = $periksa->status;
- $noregister = $periksa->noregister;
- $asalpasien = $periksa->asalpasien;
- $reques = $periksa->reques;
- $asuransi = $periksa->asuransi;
- $foto = $periksa->foto;
- $kirimemail = 'TIDAK';
- $ex_nofoto = substr($nofoto, 8);
- $kamar = $periksa->getRuangan->poli ?? 'Deleted Data Ruang';
- $diagnosa = $periksa->getLogbook->kepanjangan ?? $periksa->diagnosa;
- $tandatangan= $periksa->getTandatangan->tandatangan ?? url('/').'/boxed-bg.png';
- $dokter = $periksa->nmdokter ?? 'Dokter Penanggung Jawab';
- $tanggal = date("Y-m-d H:i:s");
- if ($statuse == 'Selesai' OR $statuse == 'Arsip'){
- Periksa::where('id', $idperiksa)->update([
- 'ruangan_id' => $ruangan,
- 'ruangan' => $kamar,
- 'dokter_id' => $iddokter,
- 'berat' => $berat,
- 'klinisi' => $klinisi,
- 'klinis' => $klinis,
- 'dlp' => $dlp,
- 'modality' => $modality,
- 'jumlah' => $jumlah,
- 'foto' => $tanggal,
- 'nmanalis' => Session('nama'),
- 'analis' => Session('id'),
- ]);
- } else {
- Periksa::where('id', $idperiksa)->update([
- 'ruangan_id' => $ruangan,
- 'ruangan' => $kamar,
- 'dokter_id' => $iddokter,
- 'berat' => $berat,
- 'klinisi' => $klinisi,
- 'klinis' => $klinis,
- 'dlp' => $dlp,
- 'modality' => $modality,
- 'jumlah' => $jumlah,
- 'analis' => Session('id'),
- 'nmanalis' => Session('nama'),
- 'foto' => $tanggal,
- 'status' => 'Telah di kirim ke worklist/modalitas',
- 'excutor' => null,
- ]);
- Periksa::where('noregister', $noregister)
- ->where('daftar', $daftar)
- ->where('status', 'LIKE', '%Diperiksa%')
- ->where('id', '!=', $idperiksa)
- ->update([
- 'status' => null,
- 'excutor' => null,
- ]);
- $kirimemail = 'YES';
- }
- $today = str_replace('-', '', $tanggal);
- $today = str_replace(':', '', $today);
- $today = str_replace(' ', '', $today);
-
- $arrayttl = explode("-", $nofoto);
- $jenis = $arrayttl[0];
- $jk = $periksa->jkpasien;
- $tgllahir = $periksa->tgllahirpasien;
- $kota = '';
- $alamat = $periksa->alamatpasien;
- $nama = $periksa->nmpasien;
- $norm = $periksa->noregister;
- $poli = $periksa->getPoli->poli ?? 'EMI Primary';
- $tgllahir = str_replace('-', '', $tgllahir);
- $arrayttl = explode(" ", $nama);
- $blakang = '';
- $tengah = '';
- $fname = iconv("UTF-8", "tis-620", $arrayttl[0]);
- if (isset($arrayttl[1])){
- $tengah = iconv("UTF-8", "tis-620", $arrayttl[1]);
- }
- if (isset($arrayttl[2])){
- $blakang = iconv("UTF-8", "tis-620", $arrayttl[2]);
- } else {
- $blakang = $tengah;
- $tengah = '';
- }
- $daftar = str_replace(':', '', $daftar);
- $tanggal = str_replace('-', '', $daftar);
- $tanggal = str_replace(' ', '', $tanggal);
- $berita = '';
- //PV1.2 = value nya I (Inpatient), O (Outpatient), E (Emergency).
- if ($urgensi == 'Elective'){ $urgensi = 'INPATIENT'; $prioritas = 'Routine'; }
- else if ($urgensi == 'CITO'){ $urgensi = 'EMERGENCY'; $prioritas = 'Cito'; }
- else { $urgensi = 'OUTPATIENT'; $prioritas = 'Routine'; }
-
- if ($jk == 'L'){ $panggilan = 'TN'; $jk = 'M'; }
- else if ($jk == 'P') { $panggilan = 'NY'; $jk = 'F'; }
- else { $panggilan = 'UNK'; $jk = 'O'; }
- $panggilan = '';
- if ($blakang == ''){ $blakang = $fname; }
- if ($worklist == 'pacs'){
- $getsetting = Setting::where('id', '1')->first();
- $pacsaddr = $getsetting->pacs;
- $port = $getsetting->port;
- //$recievingfas = 'OESEND_PROD';
- $portupdate = '10020';
- } else {
- $getsetting = Worklist::where('id', $worklist)->first();
- if (isset($getsetting->ipaddress)){
- $pacsaddr = $getsetting->ipaddress;
- $port = $getsetting->portnumber;
- $portupdate = $getsetting->portnumber;
- //$recievingfas = $getsetting->aetitle;
- } else{
- $getsetting = Setting::where('id', '1')->first();
- $pacsaddr = $getsetting->pacs;
- $port = $getsetting->port;
- //$recievingfas = 'OESEND_PROD';
- $portupdate = '10020';
- }
- }
- $recievingfas = 'OESEND_PROD';
- if (is_null($foto)){
- $msg = new Message();
- $msh = new MSH();
- //$msh->setField(1, '|');
- //$msh->setField(2, '^~\&');
- $msh->setField(3, 'RIS');
- $msh->setField(4, 'RSSA MALANG');
- //$msh->setField(5, $recievingfas);
- $msh->setField(5, 'OESEND_PROD');
- $msh->setField(6, 'EMR');
- $msh->setField(7, $today);
- $msh->setField(9, ['ORM', 'O01']);
- $msg->addSegment($msh);
-
- $pid = new PID();
- $pid->setField(2, [$norm, '', '11', $poli]);
- $pid->setField(3, [$norm, 'C', '11', $jenis]);
- $pid->setPatientName([$blakang, $fname, $tengah, $panggilan]);
- $pid->setField(7, $tgllahir);
- $pid->setField(8, $jk);
- $pid->setField(10, 'IN');
- $pid->setField(18, [$idperiksa, '', 'M11', 'Visit']);
- $pid->setField(19, 'IN');
- $msg->addSegment($pid);
-
- $pv1 = new PV1();
- $pv1->setField(2, $urgensi);
- $pv1->setField(3, [$jenis,'','', $kamar]);
- $pv1->setField(10, $poli);
- $pv1->setField(18, $asuransi);
- $pv1->setField(19, [$idperiksa, '', 'M11', 'Visit']);
- $pv1->setField(44, $today);
- $msg->addSegment($pv1);
-
- $orc = new ORC();
- $orc->setField(1, 'NW');
- $orc->setField(2, [$nofoto, $poli]);
- $orc->setField(3, [$nofoto, $poli]);
- $orc->setField(5, 'SC');
- $orc->setField(7, ['', '', '', '', '', $prioritas]);
- $orc->setField(15, $today);
- $orc->setField(16, $klinis);
- $orc->setField(17, 'Radiologi RSSA');
- $msg->addSegment($orc);
-
- $obr = new OBR();
- $obr->setField(2, [$nofoto, $poli]);
- $obr->setField(3, [$nofoto, $poli]);
- $obr->setField(4, [$modality, $rekuese, $poli]);
- $obr->setField(5, $prioritas);
- $obr->setField(6, $today);
- $obr->setField(16, [$iddokter, $dokter]);
- $obr->setField(18, $nofoto);
- $obr->setField(19, $modality);
- $obr->setField(21, $modality);
- $obr->setField(24, $modality);
- $obr->setField(27, ['1', 'once', $tanggal, $prioritas]);
- $obr->setField(36, $today);
- $msg->addSegment($obr);
- $result = null;
- $tes = 'tcp://'.$pacsaddr.':'.$port;
- try {
- $fp = stream_socket_client($tes, $errno, $errstr, 1);
- }catch (Exception $e) {
- $result = $e->getMessage();
- }
- if ($result !== null AND strpos($result, 'unable to connect') !== false) {
- return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Connect to PACS Failed', 'message' => 'Saved to RIS Only']);
- return back();
- } else {
- $connection = new Connection($pacsaddr, $port);
- $ack = $connection->send($msg);
- $hasilkrm = $ack->toString(true);
- $msa = $ack->getSegmentsByName('MSA')[0];
- $ackCode = $msa->getAcknowledgementCode();
- if ($ackCode[1] === 'A') {
- $emailbody = 'Pasien atas nama '.$nama.' Dengan Order Pemeriksaan '.$rekuese.' Dari '.$asalpasien.' Terkirim ke Modality';
- $pesan = SendMail::mobilenotif('all', 'ppds', 'Pasien Terkirim ke PACS', $emailbody);
- return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan.'
'.$emailbody]);
- return back();
- }
- else {
- $pesan = "Error text: " . $msa->getTextMessage();
- return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error..!!', 'message' => $pesan]);
- return back();
- }
- }
- } else {
- $msg = new Message();
- $msh = new MSH();
- $msh->setField(3, 'RIS');
- $msh->setField(4, 'RSSA MALANG');
- $msh->setField(5, 'OESEND_PROD');
- $msh->setField(6, 'EMR');
- $msh->setField(7, $today);
- $msh->setField(9, ['ADT', 'A08']);
- $msg->addSegment($msh);
-
- $evn = new EVN();
- $evn->setField(1, 'A01');
- $evn->setField(2, $tanggal);
- $evn->setField(5, 'QAO_AE_TL');
- $evn->setField(6, 'NV44I0');
- $msg->addSegment($evn);
- $pid = new PID();
- $pid->setField(2, [$norm, '', '11', $poli]);
- $pid->setField(3, [$norm, 'C', '11', $jenis]);
- $pid->setPatientName([$blakang, $fname, $tengah, $panggilan]);
- $pid->setField(7, $tgllahir);
- $pid->setField(8, $jk);
- $pid->setField(10, 'IN');
- $pid->setField(18, [$idperiksa, '', 'M11', 'Visit']);
- $pid->setField(19, 'IN');
- $msg->addSegment($pid);
- $pv1 = new PV1();
- $pv1->setField(2, $urgensi);
- $pv1->setField(3, [$jenis,'','', $kamar]);
- $pv1->setField(10, $poli);
- $pv1->setField(18, $asuransi);
- $pv1->setField(19, [$idperiksa, '', 'M11', 'Visit']);
- $pv1->setField(44, $today);
- $msg->addSegment($pv1);
- $result = null;
- $portupdate = '10020';
- $tes = 'tcp://'.$pacsaddr.':'.$portupdate;
- try {
- $fp = stream_socket_client($tes, $errno, $errstr, 1);
- }catch (Exception $e) {
- $result = $e->getMessage();
- }
- if ($result !== null AND strpos($result, 'unable to connect') !== false) {
- return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Connect to PACS Failed', 'message' => 'Saved to RIS Only']);
- return back();
- } else {
- $connection = new Connection($pacsaddr, $portupdate);
- $ack = $connection->send($msg);
- $msa = $ack->getSegmentsByName('MSA')[0];
- $ackCode = $msa->getAcknowledgementCode();
- if ($ackCode[1] === 'A') {
- $emailbody = 'Pasien atas nama '.$nama.' Dengan Order Pemeriksaan '.$rekuese.' Dari '.$asalpasien.' Terupdate ke Modality';
- $pesan = SendMail::mobilenotif('all', 'ppds', 'Pasien Terkirim ke PACS', $emailbody);
- return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan.'
'.$emailbody]);
- return back();
- }
- else {
- $pesan = "Error text: " . $msa->getTextMessage();
- return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error..!!', 'message' => $pesan]);
- return back();
- }
- }
- }
- }
- }
}
public function getResult(Request $request) {
$emailbody = '';
@@ -1037,7 +741,8 @@ class DokterController extends Controller
}
}
$cekdatanmaddendum = Periksa::where('nofoto', $nofoto)->first();
- $getdatapasangannya = Periksa::whereNotNull('nmadendum')->where('dlp', '!=', $ruangan)->where('daftar', $cekdatanmaddendum->daftar)->where('nofoto', '!=', $nofoto)->get();
+ $tgldaftarpasangan = $cekdatanmaddendum->daftar ?? '';
+ $getdatapasangannya = Periksa::whereNotNull('nmadendum')->where('dlp', '!=', $ruangan)->where('daftar', $tgldaftarpasangan)->where('nofoto', '!=', $nofoto)->get();
foreach ($getdatapasangannya as $item){
$datayangperludicloning = KomponenJawaban::where('accnumber', $item->nofoto)->get();
foreach ($datayangperludicloning as $rclone){
@@ -1089,6 +794,9 @@ class DokterController extends Controller
}
}
}
+ KomponenJawaban::where('accnumber', $nofoto)->where('komponen', 'bakteri')->update([
+ 'template' => $ruangan,
+ ]);
$getkomponen = KomponenJawaban::where('accnumber', $nofoto)->where('template', $ruangan)->get();
return response()->json(['komponens' => $getkomponen]);
return back();
@@ -1437,39 +1145,15 @@ class DokterController extends Controller
$getdataawal = Periksa::where('id', $nofoto)->first();
$id = $getdataawal->id ?? $nofoto;
$nofoto = $getdataawal->nofoto ?? 0;
- $cekdulu = RekapAntibiotik::where('orderid', $id)->count();
- if ($cekdulu == 0){
+ $cekdulu = RekapAntibiotik::where('orderid', $id)->whereNull('kuman')->count();
+ if ($cekdulu != 0){
$cekada = ResultSample::where('accession_number', 'LIKE', $nofoto.'%')->get();
if (!empty($cekada)){
foreach($cekada as $rows){
if (!empty($rows->additional_result)) {
- $firstDecode = json_decode($rows->additional_result, true);
- if (is_string($firstDecode)) {
- $data = json_decode($firstDecode, true);
- } else {
- $data = $firstDecode;
- }
- if (is_array($data)) {
- foreach ($data as $item) {
- $glassreportname = in_array($item['antibiotic_name'], $jsonantibiotik);
- RekapAntibiotik::updateOrCreate(
- [
- 'orderid' => $orderid,
- 'antibiotic' => $item['antibiotic_name'],
- ],
- [
- 'resistance' => $item['resistance_note'] ?? null,
- 'value' => $item['value'] ?? null,
- 'interpretation' => $item['interpretation'] ?? null,
- 'glassreportname' => $glassreportname,
- 'printrow' => true,
- 'printcol' => false,
- 'created_at' => date('Y-m-d H:i:s'),
- 'updated_at' => date('Y-m-d H:i:s'),
- ]
- );
- }
- }
+ RekapAntibiotik::where('orderid', $id)->whereNull('kuman')->update([
+ 'kuman' => $rows->organism
+ ]);
}
}
}
@@ -1477,9 +1161,17 @@ class DokterController extends Controller
$i = 0;
$data = new RekapAntibiotik();
- $limit = ($request->input('limit') == null ? '20' : $request->input('limit'));
- $order = ($request->input('order') == null ? 'id asc' : $request->input('order'));
$data = $data->where('orderid', $id);
+ $limit = ($request->input('limit') == null ? '30' : $request->input('limit'));
+ $order = ($request->input('order') == null ? 'id asc' : $request->input('order'));
+ $komponen = $request->input('komponen');
+ $kuman = $request->input('isi');
+ if ($komponen == 'otomatis' AND $kuman == ''){
+ $cekada = ResultSample::where('accession_number', 'LIKE', $nofoto.'%')->first();
+ $kuman = $cekada->organism ?? '';
+
+ }
+ $data = $data->where('kuman', $kuman);
$data = $data->orderByRaw($order)->paginate($limit);
$totaldata = $data->total();
if ($data) {
@@ -1488,7 +1180,7 @@ class DokterController extends Controller
$i++;
}
$response = [
- 'message' => 'List Data orderid '.$id,
+ 'message' => 'List Data orderid '.$id.' Kuman '.$kuman,
'total' => $totaldata,
'data' => $arraysurat
];
@@ -1498,6 +1190,100 @@ class DokterController extends Controller
'message' => 'No Data'
];
return response()->json($response, 500);
+ } else if ($worklist == 'kumanmanual'){
+ try {
+ $kuman = $request->input('isi');
+ $komponen = $request->input('komponen');
+ KomponenJawaban::updateOrCreate(
+ [
+ 'accnumber' => $nofoto,
+ 'template' => $dlp,
+ 'komponen' => $komponen,
+ ],
+ [
+ 'isidata' => $kuman,
+ 'created_by' => Session('nama')
+ ]
+ );
+ if ($kuman == 'Pilih Salah Satu' OR $kuman == 'undefined' OR $kuman == '' OR is_null($kuman)){
+ return response()->json(['icon' => 'success', 'warna' => '#1dcbbd', 'status' => 'Success', 'message' => 'Data Kuman Manual Dihapus']);
+ } else {
+ $cekdulu = RekapAntibiotik::where('orderid', $idperiksa)->where('kuman', $kuman)->count();
+ if ($cekdulu == 0){
+ $jsonantibiotikmanual = array(
+ 'Amoxycillin',
+ 'Amoxycillin & Clavulanic Acid',
+ 'Ampicillin',
+ 'Ampicillin/ Sulbactam',
+ 'Benzilpenicillin',
+ 'Piperacillin/ Tazobactam',
+ 'Cloxacillin',
+ 'Cefadroxil',
+ 'Cefotaxim',
+ 'Ceftriaxone',
+ 'Cefuroxime',
+ 'Cefazoline',
+ 'Cefixime',
+ 'Ceftazidime',
+ 'Cefoxitin',
+ 'Cefepime',
+ 'Cefoperazone/ sulbactam',
+ 'Aztreonam',
+ 'Meropenem',
+ 'Imipenem',
+ 'Ertapenem',
+ 'Gentamicin',
+ 'Amikacin',
+ 'Ciprofloxacin',
+ 'Levofloxacin',
+ 'Moxifloxacin',
+ 'Tetracyline',
+ 'Erythomycin',
+ 'Clindamycin',
+ 'Chloramphenicol',
+ 'Nitrofurantoin',
+ 'Colistine',
+ 'Co-trimoxazole',
+ 'Vancomycin',
+ 'Linezolid',
+ 'Tigecycline',
+ 'Fluconazole',
+ 'Voriconazole',
+ 'Micafungin',
+ 'Amphothericin B',
+ 'Caspofungin',
+ 'Flucytosine'
+ );
+ foreach($jsonantibiotikmanual as $antibiotic_name){
+ RekapAntibiotik::updateOrCreate(
+ [
+ 'orderid' => $idperiksa,
+ 'kuman' => $kuman,
+ 'antibiotic' => $antibiotic_name,
+ ],
+ [
+ 'resistance' => null,
+ 'value' => null,
+ 'interpretation' => null,
+ 'glassreportname' => in_array($antibiotic_name, $jsonantibiotik),
+ 'printrow' => false,
+ 'printcol' => false,
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_at' => date('Y-m-d H:i:s'),
+ ]
+ );
+ }
+ }
+ return response()->json(['icon' => 'success', 'warna' => '#1dcbbd', 'status' => 'Success', 'message' => 'Data Kuman Manual Disimpan']);
+ }
+ } catch (Exception $e) {
+ $pesan = $e->getMessage();
+ Log::error('Gagal Input Kuman Manual.', [
+ 'message' => $e->getMessage(),
+ ]);
+ return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error', 'message' => $pesan]);
+ return back();
+ }
} else if ($worklist == 'isitabelantibiotik'){
try {
$getdataawal = Periksa::where('nofoto', $nofoto)->first();
@@ -1559,6 +1345,7 @@ class DokterController extends Controller
[
'orderid' => $id,
'antibiotic' => $antibiotic_name,
+ 'kuman' => $request->input('kuman'),
],
[
'resistance' => $interpretation,
@@ -1617,6 +1404,7 @@ class DokterController extends Controller
[
'orderid' => $orderid,
'antibiotic' => $item['antibiotic_name'],
+ 'kuman' => $item['organism'] ?? null,
],
[
'resistance' => $item['resistance_note'] ?? null,
@@ -1632,10 +1420,35 @@ class DokterController extends Controller
$jumlah++;
}
}
-
+ if ($cekada->organism !== null){
+ $organism = $cekada->organism;
+ $ceksudah = KomponenJawaban::where('accnumber', $nofoto)->where('komponen', 'bakteri')->count();
+ if ($ceksudah == 0){
+ KomponenJawaban::updateOrCreate(
+ [
+ 'accnumber' => $nofoto,
+ 'isidata' => $organism,
+ 'komponen' => 'bakteri',
+ ],
+ [
+ 'template' => null,
+ 'created_by' => Session('nama')
+ ]
+ );
+ }
+
+ }
$pesan = $pesan.' Sejumlah '.$jumlah.' Antibiotik';
}
}
+ if ($request->input('isi') == 'unprintall'){
+ $getdataawal = Periksa::where('nofoto', $nofoto)->first();
+ $orderid = $getdataawal->id ?? $request->input('komponen');
+ RekapAntibiotik::where('orderid', $orderid)->update([
+ 'printrow' => false,
+ 'printcol' => false
+ ]);
+ }
if ($request->input('isi') == 'deletemic'){
$data = RekapAntibiotik::where('id', $nofoto)->first();
Log::info('Data Dihapus Oleh :', [
@@ -1670,8 +1483,6 @@ class DokterController extends Controller
'printcol'=> true
]);
}
-
-
} catch (Exception $e) {
$pesan = $e->getMessage();
Log::error('Gagal Arsipkan Data.', [
diff --git a/htdocs/app/Http/Controllers/FrontpageController.php b/htdocs/app/Http/Controllers/FrontpageController.php
index e9066fe0..fc9e9f2d 100644
--- a/htdocs/app/Http/Controllers/FrontpageController.php
+++ b/htdocs/app/Http/Controllers/FrontpageController.php
@@ -664,6 +664,7 @@ class FrontpageController extends Controller
$mm = date("m");
$terjadwal = 'sekarang';
$kamar = 'Mikrobiologi';
+ $pasien_id = 0;
$tgllahir = \Carbon\Carbon::createFromFormat('Y-m-d', $tgllahir);
$pasien = Pasien::where('norm', $noregister)->first();
try {
@@ -675,11 +676,11 @@ class FrontpageController extends Controller
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
- 'alamat' => $alamat,
'nik' => $nik,
'bpjs' => $bpjs,
]);
} else {
+ $alamatbaru = substr($alamat, 0, 100);
$pasien_id = Pasien::insertGetId([
'norm' => $noregister,
'nama' => $nama,
@@ -687,7 +688,7 @@ class FrontpageController extends Controller
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
- 'alamat' => $alamat,
+ 'alamat' => $alamatbaru,
'nik' => $nik,
'bpjs' => $bpjs,
]);
@@ -893,6 +894,7 @@ class FrontpageController extends Controller
$mm = date("m");
$terjadwal = 'sekarang';
$kamar = 'Mikrobiologi';
+ $pasien_id = 0;
$tgllahir = \Carbon\Carbon::createFromFormat('Y-m-d', $tgllahir);
$pasien = Pasien::where('norm', $noregister)->first();
try {
@@ -904,11 +906,11 @@ class FrontpageController extends Controller
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
- 'alamat' => $alamat,
'nik' => $nik,
'bpjs' => $bpjs,
]);
} else {
+ $alamatbaru = substr($alamat, 0, 100);
$pasien_id = Pasien::insertGetId([
'norm' => $noregister,
'nama' => $nama,
@@ -916,7 +918,7 @@ class FrontpageController extends Controller
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
- 'alamat' => $alamat,
+ 'alamat' => $alamatbaru,
'nik' => $nik,
'bpjs' => $bpjs,
]);
@@ -1180,9 +1182,11 @@ class FrontpageController extends Controller
$alamat = $request->input('alamat') ?? config('global.addressapps');
$nama = $request->input('nama');
$jk = $request->input('jk');
+ $pasien_id = 0;
try {
$cekid = Pasien::where('norm', $noregister)->count();
if ($cekid == 0) {
+ $alamatbaru = substr($alamat, 0, 100);
$pasien_id = Pasien::insertGetId([
'norm' => $noregister,
'nama' => $nama,
@@ -1190,7 +1194,7 @@ class FrontpageController extends Controller
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
- 'alamat' => $alamat,
+ 'alamat' => $alamatbaru,
'nik' => $nik,
'bpjs' => $bpjs,
]);
@@ -1203,7 +1207,6 @@ class FrontpageController extends Controller
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
- 'alamat' => $alamat,
'nik' => $nik,
'bpjs' => $bpjs,
]);
diff --git a/htdocs/app/Services/AstmMessageService.php b/htdocs/app/Services/AstmMessageService.php
index aa6fff4c..a20dfa27 100644
--- a/htdocs/app/Services/AstmMessageService.php
+++ b/htdocs/app/Services/AstmMessageService.php
@@ -443,6 +443,7 @@ class AstmMessageService
$glassreportname = in_array($item['antibiotic_name'], $jsonantibiotik);
RekapAntibiotik::updateOrCreate(
[
+ 'kuman' => $organism,
'orderid' => $cekdataperiksa->id,
'antibiotic' => $item['antibiotic_name'],
],
diff --git a/htdocs/database/migrations/2025_01_05_140423_create_rekapantibiotik_table.php b/htdocs/database/migrations/2025_01_05_140423_create_rekapantibiotik_table.php
index 2ab94920..027a384c 100644
--- a/htdocs/database/migrations/2025_01_05_140423_create_rekapantibiotik_table.php
+++ b/htdocs/database/migrations/2025_01_05_140423_create_rekapantibiotik_table.php
@@ -13,6 +13,7 @@ return new class extends Migration
{
Schema::create('rekapantibiotik', function (Blueprint $table) {
$table->id();
+ $table->string('kuman', 255)->nullable();
$table->string('antibiotic', 150)->nullable();
$table->string('resistance', 150)->nullable();
$table->string('value', 150)->nullable();
diff --git a/htdocs/resources/views/base/layout.blade.php b/htdocs/resources/views/base/layout.blade.php
index 5399226e..1fcf0dc4 100644
--- a/htdocs/resources/views/base/layout.blade.php
+++ b/htdocs/resources/views/base/layout.blade.php
@@ -9,6 +9,7 @@
@include('base.partials.css-plain')
+ @stack('styles')
+