This commit is contained in:
Duidev Software House
2025-10-30 13:09:35 +07:00
parent c0c7c1b5fd
commit 34d324c886
17 changed files with 7963 additions and 8650 deletions
+220 -409
View File
@@ -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.'<br />'.$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.'<br />'.$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.', [