233 lines
9.2 KiB
PHP
233 lines
9.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Dokter\EMR\CPPT;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Str;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Controllers\Dokter\Partial\PartialController;
|
|
|
|
use DB;
|
|
use Auth;
|
|
use Session;
|
|
use Redirect;
|
|
|
|
class CpptController extends Controller
|
|
|
|
{
|
|
public function viewSoapCPPT(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();
|
|
}
|
|
|
|
$dataHistoryCPPT = DB::connection('smart')->select("
|
|
select
|
|
pasiendaftar_t.norec as pd_norec,
|
|
pegawai_m.namalengkap,
|
|
pasiendaftar_t.noregistrasi,
|
|
ruangan_m.id as id_ruangan,
|
|
ruangan_m.namaruangan,
|
|
case when cppt_t.flag_ = 1 then 'SOAP' when cppt_t.flag_ = 3 then 'SOAPIE' else 'TBAK' end as keterangan,
|
|
cppt_t.norec as cpptnorec,
|
|
cppt_t.tglinput,
|
|
cppt_t.s,
|
|
cppt_t.o,
|
|
cppt_t.a,
|
|
cppt_t.p,
|
|
cppt_t.cppt_i,
|
|
cppt_t.cppt_e,
|
|
cppt_t.tbak,
|
|
cppt_t.pegawaifk
|
|
from
|
|
cppt_t inner join
|
|
pegawai_m on cppt_t.pegawaifk = pegawai_m.id inner join
|
|
antrianpasiendiperiksa_t on cppt_t.noregistrasifk = antrianpasiendiperiksa_t.norec inner join
|
|
pasiendaftar_t on antrianpasiendiperiksa_t.noregistrasifk = pasiendaftar_t.norec inner join
|
|
ruangan_m on cppt_t.ruanganfk = ruangan_m.id
|
|
where
|
|
cppt_t.statusenabled is true
|
|
and cppt_t.flag_ in (1,3,4)
|
|
and cppt_t.isverifikasi is true
|
|
and cppt_t.pasienfk = ?
|
|
order by
|
|
cppt_t.tglinput desc
|
|
limit 10
|
|
", array($getDataPD[0]->nocmfk));
|
|
|
|
$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
|
|
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_cppt'] = $dataHistoryCPPT;
|
|
$dataReturn['his_resep'] = $dataHistoryResep;
|
|
$dataReturn['master_obat'] = $dataMasterObat;
|
|
$dataReturn['type'] = $filter_identitas_pasien;
|
|
|
|
return view('dokter.emr.form.soap')->with("data", $dataReturn);
|
|
}
|
|
|
|
public function formSoapCPPT(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();
|
|
}
|
|
|
|
if(isset($request->cpptnorec)){
|
|
$dataHistoryCPPT = DB::connection('smart')->select("
|
|
select
|
|
pasiendaftar_t.norec as pd_norec,
|
|
pegawai_m.namalengkap,
|
|
pasiendaftar_t.noregistrasi,
|
|
ruangan_m.id as id_ruangan,
|
|
ruangan_m.namaruangan,
|
|
case when cppt_t.flag_ = 1 then 'SOAP' when cppt_t.flag_ = 3 then 'SOAPIE' else 'TBAK' end as keterangan,
|
|
cppt_t.norec as cpptnorec,
|
|
cppt_t.tglinput,
|
|
cppt_t.s,
|
|
cppt_t.o,
|
|
cppt_t.a,
|
|
cppt_t.p,
|
|
cppt_t.cppt_i,
|
|
cppt_t.cppt_e,
|
|
cppt_t.tbak,
|
|
cppt_t.pegawaifk
|
|
from
|
|
cppt_t inner join
|
|
pegawai_m on cppt_t.pegawaifk = pegawai_m.id inner join
|
|
antrianpasiendiperiksa_t on cppt_t.noregistrasifk = antrianpasiendiperiksa_t.norec inner join
|
|
pasiendaftar_t on antrianpasiendiperiksa_t.noregistrasifk = pasiendaftar_t.norec inner join
|
|
ruangan_m on cppt_t.ruanganfk = ruangan_m.id
|
|
where
|
|
cppt_t.statusenabled is true
|
|
and cppt_t.flag_ in (1,3,4)
|
|
and cppt_t.isverifikasi is true
|
|
and cppt_t.norec = ?
|
|
order by
|
|
cppt_t.tglinput desc
|
|
limit 10
|
|
", array($request->cpptnorec));
|
|
}
|
|
|
|
$dataReturn['pdnorec'] = $request->pdnorec;
|
|
$dataReturn['cpptnorec'] = (isset($request->cpptnorec) ? $request->cpptnorec : null);
|
|
$dataReturn['pasien_identitas'] = $getDataPD[0];
|
|
$dataReturn['his_cppt'] = (isset($request->cpptnorec)) ? $dataHistoryCPPT[0] : [];
|
|
$dataReturn['type'] = $filter_identitas_pasien;
|
|
|
|
return view('dokter.emr.form.soap-form')->with("data", $dataReturn);
|
|
}
|
|
|
|
public function simpanSoapCPPT(Request $request)
|
|
{
|
|
$filter_identitas_pasien = (strlen($request->pdnorec) > 8) ? 'pdnorec' : 'nocm';
|
|
DB::connection('smart')->beginTransaction();
|
|
try {
|
|
DB::connection('smart')->table('cppt_t')->insert([
|
|
'norec' => $this->generateNorecSmartV1(),
|
|
'kdprofile' => 0,
|
|
'statusenabled' => 't',
|
|
'tglinput' => date('Y-m-d H:i:s'),
|
|
'isverifikasi' => true,
|
|
'pasienfk' => $request->pasienfk,
|
|
'pegawaifk' => Auth::user()->smart_pk,
|
|
'noregistrasifk' => $request->noregistrasifk,
|
|
'ruanganfk' => $request->ruanganfk,
|
|
's' => $request->s,
|
|
'o' => $request->o,
|
|
'a' => $request->a,
|
|
'p' => $request->p,
|
|
'flag_' => 1,
|
|
]);
|
|
|
|
DB::connection('smart')->commit();
|
|
return redirect()->route('dokter.emr.soap.view', [$filter_identitas_pasien => $request->pdnorec])->with('success','SOAP Berhasil Disimpan.');
|
|
|
|
} catch (\Exception $e) {
|
|
DB::connection('smart')->rollBack();
|
|
return back()->with('error', 'Data gagal disimpan, mohon periksa kembali inputan anda.');
|
|
}
|
|
}
|
|
|
|
public function updateSoapCPPT(Request $request)
|
|
{
|
|
$filter_identitas_pasien = (strlen($request->pdnorec) > 8) ? 'pdnorec' : 'nocm';
|
|
DB::connection('smart')->beginTransaction();
|
|
try {
|
|
DB::connection('smart')->table('cppt_t')->where('norec', '=', $request->cpptnorec)->update([
|
|
's' => $request->s,
|
|
'o' => $request->o,
|
|
'a' => $request->a,
|
|
'p' => $request->p,
|
|
]);
|
|
|
|
DB::connection('smart')->commit();
|
|
return redirect()->route('dokter.emr.soap.view', [$filter_identitas_pasien => $request->pdnorec])->with('success','Edit SOAP Berhasil.');
|
|
|
|
} catch (\Exception $e) {
|
|
DB::connection('smart')->rollBack();
|
|
return back()->with('error', 'Data gagal disimpan, mohon periksa kembali inputan anda.');
|
|
}
|
|
}
|
|
|
|
public function deleteSoapCPPT(Request $request)
|
|
{
|
|
$filter_identitas_pasien = (strlen($request->pdnorec) > 8) ? 'pdnorec' : 'nocm';
|
|
DB::connection('smart')->beginTransaction();
|
|
try {
|
|
DB::connection('smart')->table('cppt_t')->where('norec', '=', $request->cpptnorec)->update([
|
|
'statusenabled' => false
|
|
]);
|
|
|
|
DB::connection('smart')->commit();
|
|
return redirect()->route('dokter.emr.soap.view', [$filter_identitas_pasien => $request->pdnorec])->with('success','Batal SOAP Berhasil.');
|
|
|
|
} catch (\Exception $e) {
|
|
DB::connection('smart')->rollBack();
|
|
return back()->with('error', 'Gagal Delete Data.');
|
|
}
|
|
}
|
|
|
|
public function generateNorecSmartV1(){
|
|
return str_replace("-","",strtolower(Str::uuid()->toString()));
|
|
}
|
|
}
|