Update
This commit is contained in:
@@ -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.', [
|
||||
|
||||
Reference in New Issue
Block a user