pdnorec) > 8) ? 'pdnorec' : 'nocm'; $getDataPD = PartialController::identitasPasien($filter_identitas_pasien, $request->pdnorec); if(empty($getDataPD)){ Session::flash('message', "Special message goes here"); return Redirect::back(); } $dataHistoryResep = DB::connection('smart')->select(" select t_resep_dokter.strukorderfk, strukorder_t.tglorder, pegawai_m.namalengkap, jeniskemasan_m.jeniskemasan, t_resep_dokter.namaobat, t_resep_dokter.keteranganpakai, t_resep_dokter.keteranganlainnya, t_resep_dokter.racikanke, t_resep_dokter.qtyproduk from t_resep_dokter inner join strukorder_t on t_resep_dokter.strukorderfk = strukorder_t.norec inner join pegawai_m on strukorder_t.objectpegawaiorderfk = pegawai_m.id inner join jeniskemasan_m on jeniskemasan_m.id = t_resep_dokter.jeniskemasanfk where t_resep_dokter.statusenabled is true and strukorder_t.statusenabled is true and strukorder_t.nocmfk = ? order by strukorder_t.tglorder desc limit 10 ", array($getDataPD[0]->nocmfk)); if(!empty($dataHistoryResep)){ foreach($dataHistoryResep as $key => $value){ array_push($listNorecOrderan, $value->strukorderfk); $dataRacikenke[$value->strukorderfk]['racikanke'][] = $value->racikanke; $dataRacikenke[$value->strukorderfk][$value->racikanke]['jeniskemasan'][] = $value->jeniskemasan; $dataRacikenke[$value->strukorderfk][$value->racikanke]['keterangan'][] = $value->keteranganpakai; $dataRacikenke[$value->strukorderfk][$value->racikanke]['keteranganlainnya'][] = $value->keteranganlainnya; $dataHead[$value->strukorderfk]['namalengkap'] = $value->namalengkap; $dataHead[$value->strukorderfk]['tglorder'] = $value->tglorder; $dataHead[$value->strukorderfk]['tglorder'] = $value->tglorder; } $listNorecOrderan = array_unique($listNorecOrderan); foreach($listNorecOrderan as $perResep){ $dataRacikanKeUniq = array_unique($dataRacikenke[$perResep]['racikanke']); $detailResep = []; foreach($dataRacikanKeUniq as $dataRacikanKe => $valRacikanKe){ $dataJenisKemasanUniq = array_unique($dataRacikenke[$perResep][$valRacikanKe]['jeniskemasan']); $dataKeteranganUniq = array_unique($dataRacikenke[$perResep][$valRacikanKe]['keterangan']); $dataKeteranganLainnyaUniq = array_unique($dataRacikenke[$perResep][$valRacikanKe]['keteranganlainnya']); $afterFilterDetails = array_filter($dataHistoryResep, function ($val) use ($perResep, $valRacikanKe) { return ($val->strukorderfk == $perResep && $val->racikanke == $valRacikanKe); }); array_push($detailResep, array( 'racikanke' => $valRacikanKe, 'jeniskemasan' => $dataJenisKemasanUniq[0], 'keteranganpakai' => $dataKeteranganUniq[0], 'keteranganlainnya' => $dataKeteranganLainnyaUniq[0], 'details' => $afterFilterDetails )); } array_push($returnData, array( 'norecOrder' => $perResep, 'namalengkap' => $dataHead[$perResep]['namalengkap'], 'tglorder' => $dataHead[$perResep]['tglorder'], 'detail' => $detailResep )); } } $dataMasterObat = DB::connection('smart')->select(" select produk_m.id, produk_m.namaproduk from produk_m inner join detailjenisproduk_m on produk_m.objectdetailjenisprodukfk = detailjenisproduk_m.id where detailjenisproduk_m.objectjenisprodukfk = 97 AND produk_m.statusenabled IS true order by namaproduk limit 20 "); $dataReturn['pdnorec'] = $request->pdnorec; $dataReturn['pasien_identitas'] = $getDataPD[0]; $dataReturn['his_resep'] = $returnData; $dataReturn['master_obat'] = $dataMasterObat; $dataReturn['type'] = $filter_identitas_pasien; //dd($dataReturn); return view('dokter.order.form.resep')->with("data", $dataReturn); } public function formPeresepanObat(Request $request) { $filter_identitas_pasien = (strlen($request->pdnorec) > 8) ? 'pdnorec' : 'nocm'; $getDataPD = PartialController::identitasPasien($filter_identitas_pasien, $request->pdnorec); if(empty($getDataPD)){ Session::flash('message', "Ops!, Data Tidak Ditemukan."); return Redirect::back(); } $dataHistoryResep = DB::connection('smart')->select(" select strukorder_t.tglorder, pegawai_m.namalengkap from t_resep_dokter inner join strukorder_t on t_resep_dokter.strukorderfk = strukorder_t.norec inner join pegawai_m on strukorder_t.objectpegawaiorderfk = pegawai_m.id where t_resep_dokter.statusenabled is true and strukorder_t.statusenabled is true and strukorder_t.nocmfk = ? order by strukorder_t.tglorder desc limit 10 ", array($getDataPD[0]->nocmfk)); $dataMasterObat = DB::connection('smart')->select(" select produk_m.id, produk_m.namaproduk, detailjenisproduk_m.id as detid, detailjenisproduk_m.detailjenisproduk from produk_m inner join detailjenisproduk_m on produk_m.objectdetailjenisprodukfk = detailjenisproduk_m.id where detailjenisproduk_m.objectjenisprodukfk = 97 AND produk_m.statusenabled IS true and detailjenisproduk_m.statusenabled is true and detailjenisproduk_m.id in (474,1474,1346) order by namaproduk "); $dataReturn['pdnorec'] = $request->pdnorec; $dataReturn['pasien_identitas'] = $getDataPD[0]; $dataReturn['his_resep'] = $dataHistoryResep; $dataReturn['master_obat'] = $dataMasterObat; $dataReturn['type'] = $filter_identitas_pasien; $assets = ['pro','select2']; return view('dokter.order.form.resep-form', compact('assets'))->with("data", $dataReturn); } public function SimpanPeresepanObat(Request $request) { $filter_identitas_pasien = (strlen($request->pdnorec) > 8) ? 'pdnorec' : 'nocm'; DB::connection('smart')->beginTransaction(); try { $now = date('Y-m-d H:i:s'); $registrasiDetail = DB::connection('smart')->table('antrianpasiendiperiksa_t as apd') ->JOIN('pasiendaftar_t as pd','pd.norec','=','apd.noregistrasifk') ->select('pd.norec','pd.nocmfk','apd.objectruanganfk','pd.objectkelasfk','apd.norec as apdnorec') ->where('apd.norec',$request->noregistrasifk) ->first(); $newId = DB::connection('smart')->table('strukorder_t')->where('noorder','like',date('ym').'%')->max('noorder'); $newId = substr(trim($newId),4); $newId = (int)$newId + 1; $noOrder = date('ym'). str_pad($newId, 6, "0", STR_PAD_LEFT); $strukOrder = [ 'norec' => $this->generateNorecSmartV1(), 'kdprofile' => 0, 'statusenabled' => 't', 'nocmfk' => $registrasiDetail->nocmfk, 'kddokter' => $request->penulisresepfk, 'objectjenisorderfk' => 5, 'isdelivered' => 1, 'objectkelompoktransaksifk' => 4, 'keteranganorder' => 'Order Farmasi', 'noorder' => $noOrder, 'noregistrasifk' => $registrasiDetail->norec, 'objectpegawaiorderfk' => $request->penulisresepfk, 'qtyproduk' => 0, 'qtyjenisproduk' => 0, 'objectruanganfk' => $registrasiDetail->objectruanganfk, 'objectruangantujuanfk' => $this->getRuanganTujuanOrderFarmasi($registrasiDetail->objectruanganfk), 'statusorder' => 0, 'tglorder' => $now, 'totalbeamaterai' => 0, 'totalbiayakirim' => 0, 'totalbiayatambahan' => 0, 'totaldiscount' => 0, 'totalhargasatuan' => 0, 'totalharusdibayar' => 0, 'totalpph' => 0, 'totalppn' => 0, 'masalah' => $request->riwayatalergi, 'diagnosis' => $request->beratbadan, 'cito' => (isset($request->cito) && $request->cito == 'on') ? true : false, 'ispickup' => (isset($request->pulang) && $request->pulang == 'on') ? true : false, 'alamattempattujuan' => 'Tidak', ]; DB::connection('smart')->table('strukorder_t')->insert($strukOrder); foreach($request->resepdokter as $listItemObat){ $resepDokter = [ 'norec' => $this->generateNorecSmartV1(), 'statusenabled' => 't', 'noorderfk' => $strukOrder['norec'], 'qtyproduk' => $listItemObat['jumlah'], 'objectruanganfk' => $registrasiDetail->objectruanganfk, 'strukorderfk' => $strukOrder['norec'], 'racikanke' => $listItemObat['rke'], 'jenisobatfk' => 5, 'jeniskemasanfk' => $listItemObat['jeniskemasanfk'], 'keteranganlainnya' => $listItemObat['keteranganlainnya'], 'keteranganpakai' =>$listItemObat['keteranganpakai'], 'namaobat' => $listItemObat['namaobat'], ]; DB::connection('smart')->table('t_resep_dokter')->insert($resepDokter); } DB::connection('smart')->commit(); return redirect()->route('dokter.order.resep.view', [$filter_identitas_pasien => $request->pdnorec])->with('success','Resep Berhasil Disimpan.'); } catch (\Exception $e) { DB::connection('smart')->rollBack(); return back()->with('error', 'Data gagal disimpan, mohon periksa kembali inputan anda.'); } } public function generateNorecSmartV1(){ return str_replace("-","",strtolower(Str::uuid()->toString())); } public function getRuanganTujuanOrderFarmasi($asalOrder){ if($asalOrder==491){ return 116; } elseif ($asalOrder==510) { return 116; } elseif ($asalOrder==511) { return 116; } elseif ($asalOrder==512) { return 116; } elseif ($asalOrder==514) { return 116; } elseif ($asalOrder==517) { return 116; } elseif ($asalOrder==518) { return 116; } elseif ($asalOrder==519) { return 116; } elseif ($asalOrder==520) { return 116; } elseif ($asalOrder==521) { return 116; } elseif ($asalOrder==522) { return 116; } elseif ($asalOrder==523) { return 116; } elseif ($asalOrder==525) { return 116; } elseif ($asalOrder==531) { return 116; } elseif ($asalOrder==533) { return 116; } elseif ($asalOrder==534) { return 116; } else { return 94; } } }