1430 lines
52 KiB
PHP
1430 lines
52 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
use Illuminate\Http\Request;
|
||
use Illuminate\Support\Facades\DB;
|
||
use Illuminate\Support\Facades\Log;
|
||
use App\Services\AstmMessageService;
|
||
use App\Services\SerialCommunicationService;
|
||
use App\Http\Controllers\SendMail;
|
||
use App\Periksa;
|
||
use App\PeriksaTest;
|
||
use App\Pasien;
|
||
use App\Poli;
|
||
use App\Subpoli;
|
||
use App\Subsubpoli;
|
||
use App\Ruangan;
|
||
use App\User;
|
||
use App\Jadwalperiksa;
|
||
use App\Setting;
|
||
use App\PeriksaSYNC;
|
||
use App\Logbook;
|
||
use App\Worklist;
|
||
use App\Jawaban;
|
||
use App\PendaftaranOnListiner;
|
||
use App\Subjawaban;
|
||
use App\Organisms;
|
||
use Validator;
|
||
use Session;
|
||
use DateTime;
|
||
use Carbon\Carbon;
|
||
use Aranyasen\HL7\Message;
|
||
use Aranyasen\HL7\Connection;
|
||
use Aranyasen\HL7\Segment;
|
||
use Aranyasen\HL7\Segments\MSH;
|
||
use Aranyasen\HL7\Segments\PV1;
|
||
use Aranyasen\HL7\Segments\OBR;
|
||
use Aranyasen\HL7\Segments\ORC;
|
||
use Aranyasen\HL7\Segments\PID;
|
||
use Aranyasen\HL7\Segments\OBX;
|
||
use Aranyasen\HL7\Segments\NTE;
|
||
use Aranyasen\HL7\Segments\EVN;
|
||
class FrontpageController extends Controller
|
||
{
|
||
public function index() {
|
||
$data = [];
|
||
$data['antrkrmsitu']= PeriksaSYNC::where('created_by', Session('username'))->where('status', '')->count();
|
||
$i = 0;
|
||
$yesterday = date("Y-m-d", strtotime( '-1 days' ) );
|
||
$previlage = Session('previlage');
|
||
$iduser = Session('id');
|
||
$semua = 0;
|
||
$fnk = 0;
|
||
$fk = 0;
|
||
$mri = 0;
|
||
$ct = 0;
|
||
$usg = 0;
|
||
if ($previlage && $previlage != '') {
|
||
$getttd = User::where('id', $iduser)->first();
|
||
$tandatangan = $getttd->getTandatangan->xfile ?? '/boxed-bg.jpg';
|
||
$ppds = User::where('previlage', 'ppds')->count();
|
||
$unveri = Periksa::where('status', 'like', '%Un Verified%')->count();
|
||
$hariini = Periksa::whereDate('daftar', Carbon::today())->count();
|
||
$kemarin = Periksa::whereDate('daftar', $yesterday)->count();
|
||
if ($hariini > $kemarin){
|
||
$persen = $hariini - $kemarin;
|
||
$tulis = '+ '.$persen;
|
||
} else {
|
||
$persen = $kemarin - $hariini;
|
||
$tulis = '- '.$persen;
|
||
}
|
||
$data['tandatangan'] = $tandatangan;
|
||
$data['totalkasus'] = $semua;
|
||
$data['totalkasusfnk'] = $fnk;
|
||
$data['totalkasusfk'] = $fk;
|
||
$data['totalkasusmri'] = $mri;
|
||
$data['totalkasusct'] = $ct;
|
||
$data['totalkasususg'] = $usg;
|
||
$data['totalppds'] = $ppds;
|
||
$data['butuhverifikasi'] = $unveri;
|
||
$data['antrian'] = $hariini;
|
||
$data['persenantrian'] = $tulis;
|
||
return view('dokter.dashborad', $data);
|
||
} else {
|
||
$getdomain = url()->current();
|
||
$data['getdomain'] = $getdomain;
|
||
$data['kalender'] = Periksa::whereDate('daftar', Carbon::today())->get();
|
||
return view('jadwal', $data);
|
||
}
|
||
}
|
||
public function getKalenderlist() {
|
||
$data = [];
|
||
$idne = '';
|
||
$jadwals = Periksa::whereDate('daftar', '>=', Carbon::yesterday())->orderBy('daftar', 'ASC')->orderBy('ruangan_id', 'ASC')->get();
|
||
if (!empty($jadwals)){
|
||
foreach ($jadwals as $hcari) {
|
||
$nofoto = $hcari->nofoto;
|
||
$ruang = $hcari->ruangan;
|
||
$mulai = $hcari->mulai;
|
||
$akhir = $hcari->akhir;
|
||
$reques = $hcari->reques;
|
||
$arrayttl = explode(" ", $mulai);
|
||
$tanggal = $arrayttl[0];
|
||
$jam = $arrayttl[1];
|
||
$cnama = $hcari->getPasien->nama ?? 'Deleted Data Pasien';
|
||
$ctelpon = $hcari->getPasien->telpon ?? '';
|
||
$calam = $hcari->getPasien->alamat ?? '';
|
||
$ckota = $hcari->getPasien->kota ?? '';
|
||
$keperluan = 'On '.$ruang.' Request '.$reques.' for '.$cnama;
|
||
$start = Carbon::parse($mulai)->format('Y-m-d H:i:s');
|
||
$end = Carbon::parse($akhir)->format('Y-m-d H:i:s');
|
||
if ($idne == ''){ $idne = 'id1'; }
|
||
else { $idne = $hcari->id; }
|
||
$data[] = array(
|
||
'id' => $idne,
|
||
'description' => $reques,
|
||
'location' => $hcari->urgensi,
|
||
'subject' => $keperluan,
|
||
'calendar' => $ruang,
|
||
'start' => $start,
|
||
'end' => $end,
|
||
);
|
||
}
|
||
}
|
||
echo json_encode($data);
|
||
}
|
||
public function pendaftaran() {
|
||
if (Session::get('previlage') == ''){
|
||
return redirect('/login');
|
||
} else {
|
||
$polis = Ruangan::groupBy('poli')->select('poli')->get();
|
||
$data = [];
|
||
$i = 0;
|
||
foreach ($polis as $poli) {
|
||
$j = 0;
|
||
$poli = $poli->poli;
|
||
$rooms = Ruangan::where('poli', $poli)->orderBy('ruangan', 'ASC')->get();
|
||
foreach ($rooms as $room) {
|
||
$data['ruangans'][$i][$j]['id'] = $room->id;
|
||
$data['ruangans'][$i][$j]['ruangan']= $room->ruangan;
|
||
$j++;
|
||
}
|
||
$i++;
|
||
}
|
||
$x = 0;
|
||
foreach ($polis as $poli) {
|
||
$data['polis'][$x] = $poli->poli;
|
||
$x++;
|
||
}
|
||
if ($x == 0){
|
||
$data['ruangans'][0][0]['id'] = 0;
|
||
$data['ruangans'][0][0]['ruangan'] = 'No Data';
|
||
$data['polis'][0] = 'No Data';
|
||
}
|
||
$dokters = User::where('previlage', 'supervisor')->get();
|
||
$previlage = Session('previlage');
|
||
$data['lisspesimen']= Organisms::where('kelompok', 'listkodespesimen')->get();
|
||
$data['dokters'] = $dokters;
|
||
$data['polis'] = Poli::all();
|
||
return view('pendaftaran', $data);
|
||
}
|
||
}
|
||
public function viewMikro() {
|
||
if (Session::get('previlage') == ''){
|
||
return redirect('/login');
|
||
} else {
|
||
$data = [];
|
||
$dokters = User::where('previlage', 'supervisor')->get();
|
||
$allppds = User::where('previlage', 'ppds')->get();
|
||
$allanalis = User::where('previlage', 'analis')->get();
|
||
$organismslis = Organisms::where('kelompok', 'biakankultur')->groupBy('category')->select('category')->get();
|
||
$i = 0;
|
||
foreach ($organismslis as $rorganisme) {
|
||
$j = 0;
|
||
$category = $rorganisme->category;
|
||
$rooms = Organisms::where('kelompok', 'biakankultur')->where('category', $category)->orderBy('name', 'ASC')->get();
|
||
foreach ($rooms as $room) {
|
||
$data['organismes'][$i][$j]['id'] = $room->id;
|
||
$data['organismes'][$i][$j]['name'] = $room->name;
|
||
$j++;
|
||
}
|
||
$i++;
|
||
}
|
||
$x = 0;
|
||
foreach ($organismslis as $rows) {
|
||
$data['bacterycateggories'][$x] = $rows->category;
|
||
$x++;
|
||
}
|
||
if ($x == 0){
|
||
$data['organismes'][0][0]['id'] = 0;
|
||
$data['organismes'][0][0]['name'] = 'No Data';
|
||
$data['bacterycateggories'][0] = 'No Data';
|
||
}
|
||
$mikroorganismelist = Organisms::where('kelompok', 'mikroorganisme')->groupBy('category')->select('category')->get();
|
||
$i = 0;
|
||
foreach ($mikroorganismelist as $rorganisme) {
|
||
$j = 0;
|
||
$category = $rorganisme->category;
|
||
$rooms = Organisms::where('kelompok', 'mikroorganisme')->where('category', $category)->orderBy('name', 'ASC')->get();
|
||
foreach ($rooms as $room) {
|
||
$data['mikroorganismes'][$i][$j]['id'] = $room->id;
|
||
$data['mikroorganismes'][$i][$j]['name'] = $room->name;
|
||
$j++;
|
||
}
|
||
$i++;
|
||
}
|
||
$x = 0;
|
||
foreach ($mikroorganismelist as $rows) {
|
||
$data['mikroorganismestlist'][$x] = $rows->category;
|
||
$x++;
|
||
}
|
||
if ($x == 0){
|
||
$data['mikroorganismes'][0][0]['id'] = 0;
|
||
$data['mikroorganismes'][0][0]['name'] = 'No Data';
|
||
$data['mikroorganismestlist'][0] = 'No Data';
|
||
}
|
||
$data['allppds'] = $allppds;
|
||
$data['dokters'] = $dokters;
|
||
$data['allanalis'] = $allanalis;
|
||
$data['antrkrmsitu']= PeriksaSYNC::where('created_by', Session('username'))->where('status', '')->count();
|
||
$data['lokasi'] = 'Lab Mikrobiologi';
|
||
$data['master'] = 'mikro';
|
||
$previlage = Session('previlage');
|
||
return view('dokter.ppds', $data);
|
||
}
|
||
}
|
||
public function pengambilan() {
|
||
if (Session::get('previlage') == ''){
|
||
return redirect('/login');
|
||
} else {
|
||
$polis = Ruangan::groupBy('poli')->select('poli')->get();
|
||
$data = [];
|
||
return view('pengambilan', $data);
|
||
}
|
||
}
|
||
public function auto(Request $request) {
|
||
return response()->json(DB::table('pasien')->orderBy('id', 'asc')->get()->map(fn($pasien) => ['id' => $pasien->id, 'nama' => $pasien->nama, 'tulis' => $pasien->nama . ' ( ' . $pasien->alamat . ' ' . $pasien->kota . ' )']));
|
||
}
|
||
public function kirimWA(Request $request) {
|
||
$id = $request->input('set01');
|
||
$email = $request->input('set02');
|
||
$hape = $request->input('set03');
|
||
$getdata = Periksa::where('id', $id)->first();
|
||
$nofoto = $getdata->nofoto;
|
||
$norm = $getdata->noregister;
|
||
Pasien::where('norm', $norm)->update([
|
||
'telpon' => $hape
|
||
]);
|
||
$alamathasil = url('/').'/hasil/'.$nofoto;
|
||
$linke = 'Berikut%20kami%20kirimkan%20hasil%20dari%20pemeriksaan%20foto%20anda,%20silahkan%20klik%20tautan%20dibawah%20ini%0a'.$alamathasil;
|
||
$linke = 'https://api.whatsapp.com/send?phone='.$hape.'&text='.$linke;
|
||
echo $linke;
|
||
}
|
||
public function getListdoneonly(Request $request) {
|
||
$arraylist = [];
|
||
$jenis = $request->input('val01');
|
||
$mulai = $request->input('val02');
|
||
$akhir = $request->input('val03');
|
||
$data = $this->getDataBasedOnMaster('pengambilan', $jenis, $mulai, $akhir, '');
|
||
if (!empty($data)){
|
||
$dataArray = $data->get()->toArray();
|
||
$total = count($dataArray);
|
||
$arraylist = array_map(function ($list) use ($master) {
|
||
$tgl = $list['tgllahirpasien'];
|
||
$poli_id = $list['poli_id'];
|
||
$foto = $list['foto'];
|
||
$baca = $list['baca'];
|
||
$export = $list['export'];
|
||
$nofoto = $list['nofoto'];
|
||
$noregister = $list['noregister'];
|
||
$usia = $list['usia'];
|
||
$urgensi = $list['urgensi'];
|
||
$reques = $list['reques'];
|
||
$ruangan = $list['ruangan'];
|
||
$daftar = $list['daftar'];
|
||
$status = $list['status'];
|
||
$asalpasien = $list['asalpasien'];
|
||
$dokter_id = $list['dokter_id'];
|
||
$ppdssenior = $list['ppdssenior'];
|
||
$middleppds = $list['middleppds'];
|
||
$ppdsjunior = $list['ppdsjunior'];
|
||
$middleppds2= $list['ppdsmiddle2'];
|
||
$ppdsjunior2= $list['ppdsjunior2'];
|
||
$pasiedin = $list['pasien_id'];
|
||
$keterangan = $list['keterangan'];
|
||
$kesimpulan = $list['kesimpulan'];
|
||
$verifikasi = $list['verifikasi'];
|
||
$nama = $list['nmpasien'];
|
||
$jk = $list['jkpasien'];
|
||
$telpon = $list['tlppasien'];
|
||
$alamat = $list['alamatpasien'];
|
||
$tgllahir = $list['tgllahirpasien'];
|
||
$from = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi) : null;
|
||
$to = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->toString() : '';
|
||
if ($from && $from->isValid()) {
|
||
$durasi = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->diffForHumans($from) : 'On Progress';
|
||
} else {
|
||
$durasi = 'On Progress';
|
||
}
|
||
if ($middleppds2 != 0){
|
||
$ppdsas = 'Middle';
|
||
$otherppds = $list['nmppdsmiddle2'];
|
||
} else {
|
||
$ppdsas = 'Junior';
|
||
$otherppds = $ppdsjunior2;
|
||
$otherppds = $list['nmppdsjunior2'];
|
||
}
|
||
|
||
$arrdaftar = explode(" ", $daftar);
|
||
$tgldaftar = $arrdaftar[0];
|
||
$jamdaftar = $arrdaftar[1];
|
||
$daftar = $tgldaftar;
|
||
$tglfoto = $foto ?: date("Y-m-d H:i:s");
|
||
$datatampilan = $this->setStatusStyles($status, $nofoto, $noregister, $nama, $telpon, $jk, $usia, $urgensi, $reques, $ruangan, $daftar, $asalpasien);
|
||
return [
|
||
'asalpasien' => $list['asalpasien'],
|
||
'tlsnofoto' => $datatampilan['nofoto'],
|
||
'tlsnoregister' => $datatampilan['noregister'],
|
||
'tlsnama' => $datatampilan['nama'],
|
||
'tlsjk' => $datatampilan['jk'],
|
||
'tlsusia' => $datatampilan['usia'],
|
||
'tlsurgensi' => ($list['urgensi'] == 'CITO') ? '<span style="background-color: red;">C I T O</span>' : $datatampilan['urgensi'],
|
||
'tlsreques' => $datatampilan['reques'],
|
||
'tlsruangan' => $list['ruangan'],
|
||
'tlsdaftar' => $datatampilan['daftar'],
|
||
'tlsstatus' => $datatampilan['status'],
|
||
'id' => $list['id'],
|
||
'nofoto' => $nofoto,
|
||
'noregister' => $noregister,
|
||
'nama' => $nama,
|
||
'jk' => $jk,
|
||
'usia' => $usia,
|
||
'urgensi' => $urgensi,
|
||
'poli' => $reques,
|
||
'idpasien' => $pasiedin,
|
||
'ruangan' => $ruangan,
|
||
'daftar' => $list['daftar'],
|
||
'daftartgl' => $daftar,
|
||
'daftarjam' => $jamdaftar,
|
||
'status' => $status,
|
||
'dokter' => $master != 'kiriman' ? $list['nmdokter'] : '',
|
||
'ppds1' => $master != 'kiriman' ? $list['nmppdssenior'] : '',
|
||
'ppds2' => $master != 'kiriman' ? $list['nmmiddleppds'] : '',
|
||
'ppds3' => $master != 'kiriman' ? $list['nmppdsjunior'] : '',
|
||
'keterangan' => $keterangan,
|
||
'kesimpulan' => $kesimpulan,
|
||
'idruangan' => $list['ruangan_id'],
|
||
'iddokter' => $list['dokter_id'],
|
||
'ppdssenior' => $list['ppdssenior'],
|
||
'middleppds' => $list['middleppds'],
|
||
'ppdsjunior' => $list['ppdsjunior'],
|
||
'diagnosa' => $list['diagnosa'],
|
||
'diagnosa2' => $list['diagnosa2'],
|
||
'kd_spesimen' => $list['kd_spesimen'],
|
||
'nm_spesimen' => $list['nm_spesimen'],
|
||
'berat' => $list['berat'],
|
||
'klinis' => $list['klinis'],
|
||
'klinisi' => $list['klinisi'],
|
||
'filefoto' => $list['filefoto'],
|
||
'dlp' => $list['dlp'],
|
||
'analis' => $list['analis'],
|
||
'excutor' => $list['excutor'],
|
||
'modality' => $list['modality'],
|
||
'viewfoto' => $list['foto'],
|
||
'tglfoto' => $tglfoto,
|
||
'nmppdssenior' => $list['nmppdssenior'],
|
||
'nmmiddleppds' => $list['nmmiddleppds'],
|
||
'nmppdsjunior' => $list['nmppdsjunior'],
|
||
'nmppdsmiddle2' => $list['nmppdsmiddle2'],
|
||
'nmppdsjunior2' => $list['nmppdsjunior2'],
|
||
'nmanalis' => $list['nmanalis'],
|
||
'nmexcutor' => $list['nmexcutor'],
|
||
'telpon' => $list['tlppasien'],
|
||
'asuransi' => $list['asuransi'],
|
||
'tgllahir' => $list['tgllahirpasien'],
|
||
'alamat' => $list['alamatpasien'],
|
||
'timestamp1' => $from ? $from->toString() : null,
|
||
'timestamp2' => $to,
|
||
'durasi' => $durasi,
|
||
'ppdsas' => $ppdsas,
|
||
'otherppds' => $otherppds,
|
||
];
|
||
}, $dataArray);
|
||
}
|
||
$response = [
|
||
'message' => 'List Laporan',
|
||
'data' => $arraylist,
|
||
'total' => $total
|
||
];
|
||
return response()->json($response, 200);
|
||
}
|
||
public function viewCheckout() {
|
||
$data = [];
|
||
$api_access_key = '$2y$10$2DkIHkWoYvCH.U2U.2dCi.SrDITVitZrJhQGaSrFQ3Hcsn/RnwXOe';
|
||
$msg = array (
|
||
'fakultas' => ''
|
||
);
|
||
$headers = array
|
||
(
|
||
'Accept: application/json',
|
||
'Content-type: application/json',
|
||
'Authorization: Bearer '.$api_access_key,
|
||
);
|
||
$url = 'https://insitu.fk.ub.ac.id/api/auth/listallpejabat';
|
||
$ch = curl_init();
|
||
curl_setopt($ch, CURLOPT_URL, $url);
|
||
curl_setopt($ch, CURLOPT_POST, false); //POST Set True
|
||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
|
||
//curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($msg));
|
||
$result = curl_exec($ch);
|
||
curl_close($ch);
|
||
$response = json_decode($result);
|
||
$data['dosens'] = $response;
|
||
$url = 'https://insitu.fk.ub.ac.id/api/auth/listallkegiatan';
|
||
$ch = curl_init();
|
||
curl_setopt($ch, CURLOPT_URL, $url);
|
||
curl_setopt($ch, CURLOPT_POST, false); //POST Set True
|
||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
|
||
//curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($msg));
|
||
$result2 = curl_exec($ch);
|
||
curl_close($ch);
|
||
$response2 = json_decode($result2);
|
||
$data['jkegiatan'] = $response2;
|
||
$data['antrkrmsitu'] = PeriksaSYNC::where('created_by', Session('username'))->where('status', '')->count();
|
||
$data['allspv'] = User::where('previlage', 'supervisor')->get();
|
||
$data['biodata'] = [];
|
||
return view('dokter.synctoinsitu', $data);
|
||
}
|
||
public function exDatapenugasan(Request $request) {
|
||
$validator = Validator::make($request->all(), [
|
||
'val01' => 'required',
|
||
'val03' => 'required',
|
||
'val04' => 'required',
|
||
'val05' => 'required',
|
||
'val06' => 'required',
|
||
'val07' => 'required',
|
||
'val08' => 'required',
|
||
'val09' => 'required',
|
||
]);
|
||
if($validator->fails()) {
|
||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Mohon Lengkapi Data Anda']);
|
||
return back();
|
||
} else {
|
||
$arraylist = [];
|
||
$i = 0;
|
||
$lists = PeriksaSYNC::where('created_by', Session('username'))->where('status', '')->get();
|
||
if (!empty($lists)){
|
||
foreach ($lists as $list) {
|
||
$diagnosa = '';
|
||
$cekreques = Logbook::where('id', $list->diagnosa)->first();
|
||
if (isset($cekreques->kepanjangan)){
|
||
$diagnosa = $cekreques->kepanjangan;
|
||
}
|
||
$arraylist[] = array(
|
||
'diagnosa2' => $list->diagnosa2,
|
||
'id' => $list->id,
|
||
'telpon' => $list->tlppasien,
|
||
'diagnosa' => $diagnosa,
|
||
'kd_spesimen' => $list->kd_spesimen,
|
||
'nm_spesimen' => $list->nm_spesimen,
|
||
'berat' => $list->berat,
|
||
'klinis' => $list->klinis,
|
||
'klinisi' => $list->klinisi,
|
||
'dlp' => $list->dlp,
|
||
'modality' => $list->modality,
|
||
'tgl' => $list->tgllahirpasien,
|
||
'foto' => $list->foto,
|
||
'baca' => $list->baca,
|
||
'export' => $list->export,
|
||
'nofoto' => '<a href="'.url('/').'/hasil/'.$list->nofoto.'">'.$list->nofoto.'</a>',
|
||
'noregister' => $list->noregister,
|
||
'usia' => $list->usia,
|
||
'urgensi' => $list->urgensi,
|
||
'reques' => $list->reques,
|
||
'ruangan' => $list->ruangan,
|
||
'daftar' => $list->daftar,
|
||
'status' => $list->status,
|
||
'asalpasien' => $list->asalpasien,
|
||
'ppdssenior' => $list->nmppdssenior,
|
||
'middleppds' => $list->nmmiddleppds,
|
||
'ppdsjunior' => $list->nmppdsjunior,
|
||
'middleppds2' => $list->nmmiddleppds2,
|
||
'ppdsjunior2' => $list->nmppdsjunior2,
|
||
'analis' => $list->nmanalis,
|
||
'excutor' => $list->nmexcutor,
|
||
'keterangan' => $list->keterangan,
|
||
'kesimpulan' => $list->kesimpulan,
|
||
'verifikasi' => $list->verifikasi,
|
||
'nama' => $list->nmpasien,
|
||
'jk' => $list->jkpasien,
|
||
'dokter' => $list->nmdokter,
|
||
);
|
||
$i++;
|
||
}
|
||
}
|
||
if ($i == 0){
|
||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Sync Gagal, Mohon Pilih Dulu Kasus Yang Ingin di Laporkan di Menu Modalitas']);
|
||
return back();
|
||
} else {
|
||
$api_access_key = '$2y$10$2DkIHkWoYvCH.U2U.2dCi.SrDITVitZrJhQGaSrFQ3Hcsn/RnwXOe';
|
||
$msg = array (
|
||
'arraylist' => json_encode($arraylist),
|
||
'set01' => $request->input('file'),
|
||
'set02' => $request->input('file2'),
|
||
'nim' => $request->input('val01'),
|
||
'idps' => $request->input('val02'),
|
||
'tanggal' => $request->input('val03'),
|
||
'waktu' => $request->input('val04'),
|
||
'topik' => $request->input('val05'),
|
||
'masterno' => $request->input('val06'),
|
||
'deskripsi' => $request->input('val07'),
|
||
'kodejenis' => $request->input('val08'),
|
||
'durasi' => $request->input('val09'),
|
||
'rumahsakit' => $request->input('val10'),
|
||
'rumahsakitnama'=> $request->input('val11'),
|
||
'idne' => $request->input('val12'),
|
||
'laborat' => $request->input('val13'),
|
||
'spvlain' => $request->input('val14'),
|
||
'jumlah' => $request->input('val15'),
|
||
'spv2' => $request->input('val16'),
|
||
'spv3' => $request->input('val17'),
|
||
'role' => $request->input('val18'),
|
||
'role2' => $request->input('val19'),
|
||
'semester' => $request->input('val20'),
|
||
);
|
||
$headers = array
|
||
(
|
||
'Accept: application/json',
|
||
'Content-type: application/json',
|
||
'Authorization: Bearer '.$api_access_key,
|
||
);
|
||
|
||
$url = 'https://insitu.fk.ub.ac.id/api/auth/synckegiatandrris';
|
||
$ch = curl_init();
|
||
curl_setopt($ch, CURLOPT_URL, $url);
|
||
curl_setopt($ch, CURLOPT_POST, true); //POST Set True
|
||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
|
||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($msg));
|
||
//curl_setopt($ch, CURLOPT_VERBOSE, true);
|
||
//$letakfile= public_path('logfile.txt');
|
||
//$verbose = fopen($letakfile, 'w+');
|
||
//curl_setopt($ch, CURLOPT_STDERR, $verbose);
|
||
$result = curl_exec($ch);
|
||
curl_close($ch);
|
||
if ($result){
|
||
$result = json_decode($result, true);
|
||
if ($result['icon'] != 'error' AND $result != null){
|
||
PeriksaSYNC::where('created_by', Session('username'))->where('status', '')->update([
|
||
'status' => $result['icon']
|
||
]);
|
||
return response()->json(['icon' => 'success', 'warna' => $result['warna'], 'status' => $result['status'], 'message' => $result['message']]);
|
||
return back();
|
||
} else {
|
||
return response()->json(['icon' => 'error', 'warna' => $result['warna'], 'status' => $result['status'], 'message' => $result['message']]);
|
||
return back();
|
||
}
|
||
} else {
|
||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Sync Gagal, Hubungi TIM IT Kedua Belah Pihak']);
|
||
return back();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
public function jsonAllorderlist(){
|
||
$allpejabat = Poli::all();
|
||
echo json_encode($allpejabat);
|
||
}
|
||
public function registerApiFormatJSON(Request $request) {
|
||
$nama = $request->input('nama');
|
||
$noregister = $request->input('norm');
|
||
$jk = $request->input('kelamin') ?? 'L';
|
||
$tgllahir = $request->input('tgllahir') ?? date('Y-m-d');
|
||
$telpon = $request->input('nohap') ?? '0000000000';
|
||
$alamat = $request->input('alamat') ?? config('global.addressapps');
|
||
$kota = $request->input('kota') ?? config('global.subdomainapps');
|
||
$berat = $request->input('beratbadan') ?? 0;
|
||
$nik = $request->input('nik') ?? 0;
|
||
$bpjs = $request->input('bpjs') ?? 0;
|
||
$tlsasal = $request->input('asalpasien');
|
||
$nmrs = $request->input('namarspengirim') ?? 'RSSA Malang';
|
||
$klinisi = $request->input('drpeminta');
|
||
$insurance = $request->input('asuransi') ?? 'UMM';
|
||
$rekues = $request->input('layanan');
|
||
$urgensi = $request->input('urgensi') ?? 'Elective';
|
||
$kd_spesimen = $request->input('kd_spesimen') ?? '';
|
||
$nm_spesimen = $request->input('nm_spesimen') ?? '';
|
||
$klinis = $request->input('klinis');
|
||
$notransaksi = $request->input('notransaksi');
|
||
$telpon = str_replace('_', '', $telpon);
|
||
$rekues = str_replace('_', ' ', $rekues);
|
||
$tlsasal = str_replace('_', ' ', $tlsasal);
|
||
$iddokter = '';
|
||
$ruangan = 1;
|
||
$kelompok = 'admin';
|
||
$daftar = date('Y-m-d H:i:s');
|
||
$mulai = $daftar;
|
||
$tambah = ' + 360 second';
|
||
$akhir = date('Y-m-d h:i:s',strtotime($tambah,strtotime($daftar)));
|
||
$start = strtotime(date("Y-m-d H:i:s",strtotime($mulai)));
|
||
$finish = strtotime(date("Y-m-d H:i:s",strtotime($akhir)));
|
||
$tglsekarang = date('Y-m-d');
|
||
$noregister = strtoupper($noregister);
|
||
$yy = date("Y");
|
||
$mm = date("m");
|
||
$terjadwal = 'sekarang';
|
||
$kamar = 'Mikrobiologi';
|
||
$tgllahir = \Carbon\Carbon::createFromFormat('Y-m-d', $tgllahir);
|
||
$pasien = Pasien::where('norm', $noregister)->first();
|
||
if (isset($pasien->id)) {
|
||
$pasien_id = $pasien->id;
|
||
Pasien::where('norm', $noregister)->update([
|
||
'nama' => $nama,
|
||
'jk' => $jk,
|
||
'tgl_lahir' => $tgllahir,
|
||
'kota' => $kota,
|
||
'telpon' => $telpon,
|
||
'alamat' => $alamat,
|
||
'nik' => $nik,
|
||
'bpjs' => $bpjs,
|
||
]);
|
||
} else {
|
||
$pasien_id = Pasien::insertGetId([
|
||
'norm' => $noregister,
|
||
'nama' => $nama,
|
||
'jk' => $jk,
|
||
'tgl_lahir' => $tgllahir,
|
||
'kota' => $kota,
|
||
'telpon' => $telpon,
|
||
'alamat' => $alamat,
|
||
'nik' => $nik,
|
||
'bpjs' => $bpjs,
|
||
]);
|
||
}
|
||
$datetime = new DateTime($tgllahir);
|
||
$today = new DateTime();
|
||
$diff = $today->diff($datetime);
|
||
$tahun = $diff->y;
|
||
$bulan = $diff->m;
|
||
|
||
if ($tahun ==0) {
|
||
$usia = $bulan." Bulan";
|
||
} else {
|
||
$usia = $tahun." Tahun, ". $bulan. " Bulan";
|
||
}
|
||
$jruang = Ruangan::where('id', $ruangan)->first();
|
||
if (isset($jruang->ruangan)){
|
||
$kamar = $jruang->ruangan;
|
||
} else { $kamar = '-'; $ruangan = 1; }
|
||
$tahuncari = date("Y");
|
||
$cekloket = Periksa::whereNotNull('noloket')->where('daftar', 'LIKE', $tahuncari.'%')->count();
|
||
if ($cekloket == 0){
|
||
$noloket = 1;
|
||
} else {
|
||
$getloket = Periksa::whereNotNull('noloket')->where('daftar', 'LIKE', $tahuncari.'%')->orderBy('noloket', 'DESC')->first();
|
||
$noloket = $getloket->noloket;
|
||
$noloket = $noloket + 1;
|
||
}
|
||
$code_poli = 'Mikrobiologi';
|
||
if ($rekues == '' OR is_null($rekues)){
|
||
$poli_id = 0;
|
||
} else {
|
||
$check = Poli::where('subpoli', $rekues)->first();
|
||
if (isset($check->id)){
|
||
$poli_id = $check->id;
|
||
} else {
|
||
$poli_id = Poli::insertGetId([
|
||
'poli' => 'Mikrobiologi',
|
||
'subpoli' => $rekues,
|
||
]);
|
||
}
|
||
}
|
||
|
||
$nofoto = date('y').'-'.sprintf("% 06s", $noloket);
|
||
if ($iddokter == ''){
|
||
$iddokter = 0;
|
||
$dokter = null;
|
||
} else {
|
||
$getdokter = User::where('id', $iddokter)->first();
|
||
if (isset($getdokter->nama)){
|
||
$dokter = $getdokter->nama;
|
||
} else { $dokter = 'Dokter Spesialis'; }
|
||
}
|
||
$clientIp = $request->server('HTTP_X_FORWARDED_FOR') ?: $request->ip();
|
||
$clientIpNumeric = ip2long($clientIp);
|
||
$periksaid = Periksa::insertGetId([
|
||
'mulai' => $mulai,
|
||
'akhir' => $akhir,
|
||
'noloket' => $noloket,
|
||
'nofoto' => $nofoto,
|
||
'noregister' => $noregister,
|
||
'asalpasien' => $tlsasal,
|
||
'nmrs' => $nmrs,
|
||
'pasien_id' => $pasien_id,
|
||
'nmpasien' => $nama,
|
||
'jkpasien' => $jk,
|
||
'ktp' => $nik,
|
||
'bpjs' => $bpjs,
|
||
'tgllahirpasien'=> $tgllahir,
|
||
'tlppasien' => $telpon,
|
||
'alamatpasien' => $alamat,
|
||
'reques' => $rekues,
|
||
'usia' => $usia,
|
||
'berat' => $berat,
|
||
'ruangan_id' => $ruangan,
|
||
'ruangan' => $kamar,
|
||
'klinisi' => $klinisi,
|
||
'klinis' => $klinis,
|
||
'poli_id' => $poli_id,
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
'keterangan' => '',
|
||
'kesimpulan' => '',
|
||
'asuransi' => $insurance,
|
||
'urgensi' => $urgensi,
|
||
'daftar' => $mulai,
|
||
'pendaftar' => $clientIpNumeric,
|
||
'nmpendaftar' => $clientIp,
|
||
'orderid' => $notransaksi,
|
||
]);
|
||
$pesan = $nofoto;
|
||
if ($kd_spesimen != '' AND $nm_spesimen != ''){
|
||
PendaftaranOnListiner::updateOrCreate(
|
||
[
|
||
'rnoreg' => $nofoto,
|
||
],
|
||
[
|
||
'rtglast' => $tglsekarang,
|
||
'norm' => $noregister,
|
||
'nama' => $nama,
|
||
'alamat' => $alamat,
|
||
'telp' => $telpon,
|
||
'hp' => $telpon,
|
||
'tgllahir' => $tgllahir,
|
||
'umur' => $usia,
|
||
'rjenis' => $jk,
|
||
'kodedok' => $notransaksi,
|
||
'namadok' => $klinisi,
|
||
'ruangan' => $kamar,
|
||
'tes' => $rekues,
|
||
'alat' => 'All',
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
]
|
||
);
|
||
}
|
||
if ($pesan != ''){
|
||
return response()->json(['status' => 'Sukses', 'message' => $pesan], 201);
|
||
} else {
|
||
return response()->json(['status' => 'Failed', 'message' => 'Mohon Menentukan Layanan Yang di Inginkan'], 500);
|
||
}
|
||
}
|
||
public function registerApi(Request $request) {
|
||
//$dataJson = json_encode($request->input());
|
||
//$decodedFirst = json_decode($dataJson, true);
|
||
Log::info(' Incomming '.json_encode($request->input()));
|
||
$decodedData = $request->json()->all();
|
||
//$decodedData = $request->input();
|
||
//if (json_last_error() !== JSON_ERROR_NONE) {
|
||
// Log::error('JSON Decode Error (First): ' . json_last_error_msg());
|
||
// return response()->json(['error' => 'Invalid first-level JSON data'], 400);
|
||
//}
|
||
//$innerJson = key($decodedFirst);
|
||
//$decodedData = json_decode($innerJson, true);
|
||
//if (json_last_error() !== JSON_ERROR_NONE) {
|
||
// Log::error('JSON Decode Error (Second): ' . json_last_error_msg());
|
||
// return response()->json(['error' => 'Invalid second-level JSON data'], 400);
|
||
//}
|
||
$norm = $decodedData['norm'] ?? null;
|
||
$nama = $decodedData['nama'] ?? null;
|
||
$alamat = $decodedData['alamat'] ?? config('global.addressapps');
|
||
$kota = $decodedData['kota'] ?? config('global.subdomainapps');
|
||
$tgllahir = $decodedData['tgllahir'] ?? date('Y-m-d');
|
||
$nohap = $decodedData['nohap'] ?? '0000000000';
|
||
$jk = $decodedData['kelamin'] ?? 'L';
|
||
$urgensi = $decodedData['urgensi'] ?? 'Elective';
|
||
$berat = $decodedData['beratbadan'] ?? '0';
|
||
$nik = $decodedData['nik'] ?? '0';
|
||
$bpjs = $decodedData['nobpjs'] ?? '0';
|
||
$drpeminta = $decodedData['drpeminta'] ?? null;
|
||
$tlsasal = $decodedData['asalpasien'] ?? null;
|
||
$rekues = $decodedData['layanan'] ?? null;
|
||
$statusbayar = $decodedData['statusbayar'] ?? null;
|
||
$notransaksi = $decodedData['notransaksi'] ?? null;
|
||
$insurance = $decodedData['asuransi'] ?? 'UMM';
|
||
$klinis = $decodedData['klinis'] ?? null;
|
||
$klinisi = $decodedData['klinisi'] ?? $drpeminta;
|
||
$kd_spesimen = $decodedData['kd_spesimen'] ?? null;
|
||
$nm_spesimen = $decodedData['nm_spesimen'] ?? null;
|
||
$pengambilan = $decodedData['pengambilan'] ?? null;
|
||
$nmrs = $decodedData['namarspengirim'] ?? 'RSSA Malang';
|
||
$telpon = str_replace('_', '', $nohap);
|
||
$rekues = str_replace('_', ' ', $rekues);
|
||
$tlsasal = str_replace('_', ' ', $tlsasal);
|
||
$klinisi = str_replace('_', ' ', $klinisi);
|
||
$nama = str_replace('_', ' ', $nama);
|
||
$alamat = str_replace('_', ' ', $alamat);
|
||
|
||
$iddokter = '';
|
||
$ruangan = 1;
|
||
$kelompok = 'admin';
|
||
$daftar = date('Y-m-d H:i:s');
|
||
$mulai = $daftar;
|
||
$tambah = ' + 360 second';
|
||
$akhir = date('Y-m-d h:i:s',strtotime($tambah,strtotime($daftar)));
|
||
$start = strtotime(date("Y-m-d H:i:s",strtotime($mulai)));
|
||
$finish = strtotime(date("Y-m-d H:i:s",strtotime($akhir)));
|
||
$tglsekarang = date('Y-m-d');
|
||
$noregister = strtoupper($norm);
|
||
$yy = date("Y");
|
||
$mm = date("m");
|
||
$terjadwal = 'sekarang';
|
||
$kamar = 'Mikrobiologi';
|
||
$tgllahir = \Carbon\Carbon::createFromFormat('Y-m-d', $tgllahir);
|
||
$pasien = Pasien::where('norm', $noregister)->first();
|
||
if (isset($pasien->id)) {
|
||
$pasien_id = $pasien->id;
|
||
Pasien::where('norm', $noregister)->update([
|
||
'nama' => $nama,
|
||
'jk' => $jk,
|
||
'tgl_lahir' => $tgllahir,
|
||
'kota' => $kota,
|
||
'telpon' => $telpon,
|
||
'alamat' => $alamat,
|
||
'nik' => $nik,
|
||
'bpjs' => $bpjs,
|
||
]);
|
||
} else {
|
||
$pasien_id = Pasien::insertGetId([
|
||
'norm' => $noregister,
|
||
'nama' => $nama,
|
||
'jk' => $jk,
|
||
'tgl_lahir' => $tgllahir,
|
||
'kota' => $kota,
|
||
'telpon' => $telpon,
|
||
'alamat' => $alamat,
|
||
'nik' => $nik,
|
||
'bpjs' => $bpjs,
|
||
]);
|
||
}
|
||
$datetime = new DateTime($tgllahir);
|
||
$today = new DateTime();
|
||
$diff = $today->diff($datetime);
|
||
$tahun = $diff->y;
|
||
$bulan = $diff->m;
|
||
|
||
if ($tahun ==0) {
|
||
$usia = $bulan." Bulan";
|
||
} else {
|
||
$usia = $tahun." Tahun, ". $bulan. " Bulan";
|
||
}
|
||
$jruang = Ruangan::where('id', $ruangan)->first();
|
||
if (isset($jruang->ruangan)){
|
||
$kamar = $jruang->ruangan;
|
||
} else { $kamar = '-'; $ruangan = 1; }
|
||
$tahuncari = date("Y");
|
||
$cekloket = Periksa::whereNotNull('noloket')->where('daftar', 'LIKE', $tahuncari.'%')->count();
|
||
if ($cekloket == 0){
|
||
$noloket = 1;
|
||
} else {
|
||
$getloket = Periksa::whereNotNull('noloket')->where('daftar', 'LIKE', $tahuncari.'%')->orderBy('noloket', 'DESC')->first();
|
||
$noloket = $getloket->noloket;
|
||
$noloket = $noloket + 1;
|
||
}
|
||
$code_poli = 'Mikrobiologi';
|
||
$check = Poli::where('subpoli', $rekues)->first();
|
||
if (isset($check->id)){
|
||
$poli_id = $check->id;
|
||
} else {
|
||
$poli_id = Poli::insertGetId([
|
||
'poli' => 'Mikrobiologi',
|
||
'subpoli' => $rekues,
|
||
]);
|
||
}
|
||
$nofoto = date('y').'-'.sprintf("% 06s", $noloket);
|
||
if ($iddokter == ''){
|
||
$iddokter = 0;
|
||
$dokter = null;
|
||
} else {
|
||
$getdokter = User::where('id', $iddokter)->first();
|
||
if (isset($getdokter->nama)){
|
||
$dokter = $getdokter->nama;
|
||
} else { $dokter = 'Dokter Spesialis'; }
|
||
}
|
||
$clientIp = $request->server('HTTP_X_FORWARDED_FOR') ?: $request->ip();
|
||
$clientIpNumeric = ip2long($clientIp);
|
||
$periksaid = Periksa::insertGetId([
|
||
'mulai' => $mulai,
|
||
'akhir' => $akhir,
|
||
'noloket' => $noloket,
|
||
'nofoto' => $nofoto,
|
||
'noregister' => $noregister,
|
||
'asalpasien' => $tlsasal,
|
||
'nmrs' => $nmrs,
|
||
'pasien_id' => $pasien_id,
|
||
'nmpasien' => $nama,
|
||
'jkpasien' => $jk,
|
||
'ktp' => $nik,
|
||
'bpjs' => $bpjs,
|
||
'tgllahirpasien'=> $tgllahir,
|
||
'tlppasien' => $telpon,
|
||
'alamatpasien' => $alamat,
|
||
'reques' => $rekues,
|
||
'usia' => $usia,
|
||
'berat' => $berat,
|
||
'ruangan_id' => $ruangan,
|
||
'ruangan' => $kamar,
|
||
'klinisi' => $klinisi,
|
||
'klinis' => $klinis,
|
||
'poli_id' => $poli_id,
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
'keterangan' => '',
|
||
'kesimpulan' => '',
|
||
'asuransi' => $insurance,
|
||
'urgensi' => $urgensi,
|
||
'daftar' => $mulai,
|
||
'pendaftar' => $clientIpNumeric,
|
||
'nmpendaftar' => $clientIp,
|
||
'orderid' => $notransaksi,
|
||
]);
|
||
$pesan = $nofoto;
|
||
if ($kd_spesimen != '' AND $nm_spesimen != ''){
|
||
PendaftaranOnListiner::updateOrCreate(
|
||
[
|
||
'rnoreg' => $nofoto,
|
||
],
|
||
[
|
||
'rtglast' => $tglsekarang,
|
||
'norm' => $noregister,
|
||
'nama' => $nama,
|
||
'alamat' => $alamat,
|
||
'telp' => $telpon,
|
||
'hp' => $telpon,
|
||
'tgllahir' => $tgllahir,
|
||
'umur' => $usia,
|
||
'rjenis' => $jk,
|
||
'kodedok' => Session('id'),
|
||
'namadok' => Session('nama'),
|
||
'ruangan' => $kamar,
|
||
'tes' => $rekues,
|
||
'alat' => 'All',
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
]
|
||
);
|
||
}
|
||
if ($pesan != ''){
|
||
return response()->json(['status' => 'Sukses', 'message' => $pesan], 201);
|
||
} else {
|
||
return response()->json(['status' => 'Failed', 'message' => 'Mohon Menentukan Layanan Yang di Inginkan'], 500);
|
||
}
|
||
}
|
||
public function register(Request $request) {
|
||
$validator = Validator::make($request->all(), [
|
||
'nama' => 'required',
|
||
'jk' => 'required',
|
||
'insurance' => 'required',
|
||
'urgensi' => 'required',
|
||
'poli_id' => 'required'
|
||
]);
|
||
if($validator->fails()) {
|
||
return response()->json(['status' => 'Failed', 'message' => 'Periksa Kembali Isian Anda, Pastikan Nama, Jenis Kelamin, Asuransi, Urgensi, Kota, No. HP dan Jenis Pemeriksaan Telah Anda Isi']);
|
||
return back();
|
||
} else {
|
||
$jk = $request->input('jk');
|
||
$nik = $request->input('nik');
|
||
$bpjs = $request->input('bpjs');
|
||
$alamat = $request->input('alamat') ?? config('global.addressapps');
|
||
$kota = $request->input('kota') ?? config('global.subdomainapps');
|
||
$noregister = $request->input('noregister');
|
||
$pasien_id = $request->input('pasien_id');
|
||
$insurance = $request->input('insurance');
|
||
$ruangan = $request->input('ruangan');
|
||
$nmpoli = $request->input('nmpoli');
|
||
$nmruangan = $request->input('nmruangan');
|
||
$lainlain = $request->input('lainlain');
|
||
$asuransi = $request->input('asuransi');
|
||
$urgensi = $request->input('urgensi');
|
||
$nama = $request->input('nama');
|
||
$tgllahir = $request->input('tgl') ?? date ('d-m-Y');
|
||
$asalpasien = $request->input('asal');
|
||
$berat = $request->input('val01');
|
||
$nmrs = $request->input('val02');
|
||
$klinisi = $request->input('val03');
|
||
$jadwal = $request->input('val04');
|
||
$jammulai = $request->input('val05');
|
||
$jamselesai = $request->input('val06');
|
||
$telpon = $request->input('val07') ?? '0000000000';
|
||
$jeniskerja = $request->input('val08');
|
||
$iddokter = $request->input('val09');
|
||
$jenisgambar = $request->input('jenisgambar');
|
||
$file = $request->input('file');
|
||
$poli_id = $request->input('poli_id') ?? 1;
|
||
$kd_spesimen = $request->input('kd_spesimen') ?? '';
|
||
$nm_spesimen = $request->input('nm_spesimen') ?? '';
|
||
$reques = 'Specimen';
|
||
$kelompok = Session('previlage');
|
||
$daftar = date('Y-m-d H:i:s');
|
||
try {
|
||
$tgllahir = \Carbon\Carbon::createFromFormat('Y-m-d', $tgllahir);
|
||
} catch (Exception $e) {
|
||
|
||
}
|
||
if ($jeniskerja == 'tambahbaru'){
|
||
try {
|
||
if ($nmruangan != ''){
|
||
$tlsasal = $nmruangan;
|
||
} else if ($nmpoli != ''){
|
||
$tlsasal = $nmpoli;
|
||
} else {
|
||
$tlsasal = $lainlain;
|
||
}
|
||
if ($jammulai == ''){
|
||
$mulai = $daftar;
|
||
$tambah = ' + 360 second';
|
||
$akhir = date('Y-m-d h:i:s',strtotime($tambah,strtotime($daftar)));
|
||
$start = strtotime(date("Y-m-d H:i:s",strtotime($mulai)));
|
||
$finish = strtotime(date("Y-m-d H:i:s",strtotime($akhir)));
|
||
} else {
|
||
$mulai = $jadwal.' '.$jammulai.':00';
|
||
if ($jamselesai == ''){
|
||
$tambah = ' + 360 second';
|
||
$akhir = date('Y-m-d h:i:s',strtotime($tambah,strtotime($daftar)));
|
||
} else {
|
||
$akhir = $jadwal.' '.$jamselesai.':00';
|
||
}
|
||
$start = strtotime(date("Y-m-d H:i:s",strtotime($mulai)));
|
||
$finish = strtotime(date("Y-m-d H:i:s",strtotime($akhir)));
|
||
}
|
||
$tglsekarang = date('Y-m-d');
|
||
$noregister = strtoupper($noregister);
|
||
$yy = date("Y");
|
||
$mm = date("m");
|
||
$pesan = '';
|
||
$year_now = date("y");
|
||
if ($noregister == ''){
|
||
$getlastid = Pasien::orderBy('id', 'DESC')->count();
|
||
if ($getlastid == 0){
|
||
$noregister = 'LIS-1';
|
||
}else {
|
||
$getlastid = Pasien::orderBy('id', 'DESC')->first();
|
||
$lastid = $getlastid->id;
|
||
$lastid = $lastid + 1;
|
||
$noregister = 'LIS-'.$lastid;
|
||
}
|
||
}
|
||
|
||
$kota = config('global.subdomainapps');
|
||
$alamat = $request->input('alamat') ?? config('global.addressapps');
|
||
$nama = $request->input('nama');
|
||
$jk = $request->input('jk');
|
||
$cekid = Pasien::where('norm', $noregister)->count();
|
||
if ($cekid == 0) {
|
||
$pasien_id = Pasien::insertGetId([
|
||
'norm' => $noregister,
|
||
'nama' => $nama,
|
||
'jk' => $jk,
|
||
'tgl_lahir' => $tgllahir,
|
||
'kota' => $kota,
|
||
'telpon' => $telpon,
|
||
'alamat' => $alamat,
|
||
'nik' => $nik,
|
||
'bpjs' => $bpjs,
|
||
]);
|
||
} else {
|
||
$pasien = Pasien::where('norm', $noregister)->first();
|
||
$pasien_id = $pasien->id;
|
||
Pasien::where('norm', $noregister)->update([
|
||
'nama' => $nama,
|
||
'jk' => $jk,
|
||
'tgl_lahir' => $tgllahir,
|
||
'kota' => $kota,
|
||
'telpon' => $telpon,
|
||
'alamat' => $alamat,
|
||
'nik' => $nik,
|
||
'bpjs' => $bpjs,
|
||
]);
|
||
}
|
||
$datetime = new DateTime($tgllahir);
|
||
$today = new DateTime();
|
||
$diff = $today->diff($datetime);
|
||
$tahun = $diff->y;
|
||
$bulan = $diff->m;
|
||
|
||
if ($tahun ==0) {
|
||
$usia = $bulan." Bulan";
|
||
} else {
|
||
$usia = $tahun." Tahun, ". $bulan. " Bulan";
|
||
}
|
||
$kamar = 'Mikrobiologi';
|
||
$tahuncari = date("Y");
|
||
$cekloket = Periksa::whereNotNull('noloket')->where('daftar', 'LIKE', $tahuncari.'%')->count();
|
||
if ($cekloket == 0){
|
||
$noloket = 1;
|
||
} else {
|
||
$getloket = Periksa::whereNotNull('noloket')->where('daftar', 'LIKE', $tahuncari.'%')->orderBy('noloket', 'DESC')->first();
|
||
$noloket = $getloket->noloket;
|
||
$noloket = $noloket + 1;
|
||
}
|
||
$code_poli = 'mikro';
|
||
$check = Poli::where('id', $poli_id)->first();
|
||
$nmpoli = $check->poli ?? 'Mikrobiologi';
|
||
$subpoli = $check->subpoli ?? '';
|
||
$modality = $check->modaliti ?? 'OT';
|
||
$modaliti2 = $check->modaliti2 ?? '';
|
||
if (isset($check->subsubpoli)){
|
||
$rekues = $subpoli.' - '.$subsubpoli;
|
||
} else {
|
||
$rekues = $subpoli;
|
||
}
|
||
$nofoto = date('y').'-'.sprintf("% 06s", $noloket);
|
||
if ($iddokter == ''){
|
||
$iddokter = 0;
|
||
$dokter = null;
|
||
} else {
|
||
$getdokter = User::where('id', $iddokter)->first();
|
||
if (isset($getdokter->nama)){
|
||
$dokter = $getdokter->nama;
|
||
} else { $dokter = 'Dokter Spesialis'; }
|
||
}
|
||
$periksaid = Periksa::insertGetId([
|
||
'mulai' => $mulai,
|
||
'akhir' => $akhir,
|
||
'noloket' => $noloket,
|
||
'nofoto' => $nofoto,
|
||
'noregister' => $noregister,
|
||
'asalpasien' => $tlsasal,
|
||
'nmrs' => $nmrs,
|
||
'pasien_id' => $pasien_id,
|
||
'nmpasien' => $nama,
|
||
'jkpasien' => $jk,
|
||
'ktp' => $nik,
|
||
'bpjs' => $bpjs,
|
||
'tgllahirpasien'=> $tgllahir,
|
||
'tlppasien' => $telpon,
|
||
'alamatpasien' => $alamat,
|
||
'reques' => $rekues,
|
||
'usia' => $usia,
|
||
'berat' => $berat,
|
||
'ruangan_id' => $ruangan,
|
||
'ruangan' => $kamar,
|
||
'klinisi' => $klinisi,
|
||
'klinis' => $request->input('val10'),
|
||
'poli_id' => $poli_id,
|
||
'keterangan' => '',
|
||
'kesimpulan' => '',
|
||
'asuransi' => $insurance,
|
||
'urgensi' => $urgensi,
|
||
'daftar' => $mulai,
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
'pendaftar' => Session('previlage'),
|
||
'nmpendaftar' => Session('nama'),
|
||
]);
|
||
if ($kd_spesimen != '' AND $nm_spesimen != ''){
|
||
PendaftaranOnListiner::updateOrCreate(
|
||
[
|
||
'rnoreg' => $nofoto,
|
||
],
|
||
[
|
||
'rtglast' => $mulai,
|
||
'norm' => $noregister,
|
||
'nama' => $nama,
|
||
'alamat' => $alamat,
|
||
'telp' => $telpon,
|
||
'hp' => $telpon,
|
||
'tgllahir' => $tgllahir,
|
||
'umur' => $usia,
|
||
'rjenis' => $jk,
|
||
'kodedok' => Session('id'),
|
||
'namadok' => Session('nama'),
|
||
'ruangan' => $kamar,
|
||
'tes' => $rekues,
|
||
'alat' => 'All',
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
]
|
||
);
|
||
}
|
||
$pesan = $pesan.' Nomor Lokal '.$nofoto.' dengan No. Urut '.$noloket.' Berhasil di Simpan';
|
||
if ($pesan != ''){
|
||
if ($file != '' AND $jenisgambar != ''){
|
||
Xfiles::create([
|
||
'xmarking' => $nofoto,
|
||
'xtabel' => 'File Permintaan',
|
||
'xjenis' => $jenisgambar,
|
||
'xfile' => $file
|
||
]);
|
||
Periksa::where('nofoto', $nofoto)->update([
|
||
'filefoto' => $nofoto
|
||
]);
|
||
}
|
||
return response()->json(['status' => 'Status', 'message' => $pesan]);
|
||
return back();
|
||
} else {
|
||
return response()->json(['status' => 'Failed', 'message' => 'Mohon Memeriksa isian form pendaftaran kembali dan pastikan semua sudah terisi']);
|
||
return back();
|
||
}
|
||
} catch (Exception $e) {
|
||
$result = $e->getMessage();
|
||
return response()->json(['status' => 'Failed', 'message' => $result]);
|
||
return back();
|
||
}
|
||
} else {
|
||
try {
|
||
if ($nmruangan != ''){
|
||
$tlsasal = $nmruangan;
|
||
} else if ($nmpoli != ''){
|
||
$tlsasal = $nmpoli;
|
||
} else {
|
||
$tlsasal = $lainlain;
|
||
}
|
||
if ($jammulai == ''){
|
||
$mulai = $daftar;
|
||
$tambah = ' + 360 second';
|
||
$akhir = date('Y-m-d h:i:s',strtotime($tambah,strtotime($daftar)));
|
||
$start = strtotime(date("Y-m-d H:i:s",strtotime($mulai)));
|
||
$finish = strtotime(date("Y-m-d H:i:s",strtotime($akhir)));
|
||
} else {
|
||
$mulai = $jadwal.' '.$jammulai.':00';
|
||
if ($jamselesai == ''){
|
||
$tambah = ' + 360 second';
|
||
$akhir = date('Y-m-d h:i:s',strtotime($tambah,strtotime($daftar)));
|
||
} else {
|
||
$akhir = $jadwal.' '.$jamselesai.':00';
|
||
}
|
||
$start = strtotime(date("Y-m-d H:i:s",strtotime($mulai)));
|
||
$finish = strtotime(date("Y-m-d H:i:s",strtotime($akhir)));
|
||
}
|
||
$tglsekarang = date('Y-m-d');
|
||
$noregister = strtoupper($noregister);
|
||
$yy = date("Y");
|
||
$mm = date("m");
|
||
$pesan = '';
|
||
$year_now = date("y");
|
||
$check = Poli::where('id', $poli_id)->first();
|
||
$nmpoli = $check->poli ?? 'Mikrobiologi';
|
||
$subpoli = $check->subpoli ?? '';
|
||
$modality = $check->modaliti ?? 'OT';
|
||
$modaliti2 = $check->modaliti2 ?? '';
|
||
if (isset($check->subsubpoli)){
|
||
$rekues = $subpoli.' - '.$subsubpoli;
|
||
} else {
|
||
$rekues = $subpoli;
|
||
}
|
||
$getdata = Periksa::where('id', $jeniskerja)->first();
|
||
$nofoto = $getdata->nofoto;
|
||
$usia = $getdata->usia;
|
||
$periksaid = Periksa::where('id', $jeniskerja)->update([
|
||
'nmpasien' => $nama,
|
||
'jkpasien' => $jk,
|
||
'ktp' => $nik,
|
||
'bpjs' => $bpjs,
|
||
'tgllahirpasien'=> $tgllahir,
|
||
'tlppasien' => $telpon,
|
||
'alamatpasien' => $alamat,
|
||
'asalpasien' => $tlsasal,
|
||
'nmrs' => $nmrs,
|
||
'reques' => $rekues,
|
||
'ruangan_id' => $ruangan,
|
||
'klinisi' => $klinisi,
|
||
'klinis' => $request->input('val10'),
|
||
'poli_id' => $poli_id,
|
||
'asuransi' => $insurance,
|
||
'urgensi' => $urgensi,
|
||
'daftar' => $mulai,
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
]);
|
||
$pesan = $pesan.' Data Berhasil di Update';
|
||
if ($kd_spesimen != '' AND $nm_spesimen != ''){
|
||
PendaftaranOnListiner::updateOrCreate(
|
||
[
|
||
'rnoreg' => $nofoto,
|
||
],
|
||
[
|
||
'rtglast' => $mulai,
|
||
'norm' => $noregister,
|
||
'nama' => $nama,
|
||
'alamat' => $alamat,
|
||
'telp' => $telpon,
|
||
'hp' => $telpon,
|
||
'tgllahir' => $tgllahir,
|
||
'umur' => $usia,
|
||
'rjenis' => $jk,
|
||
'kodedok' => Session('id'),
|
||
'namadok' => Session('nama'),
|
||
'ruangan' => $kamar,
|
||
'tes' => $rekues,
|
||
'alat' => 'All',
|
||
'kd_spesimen' => $kd_spesimen,
|
||
'nm_spesimen' => $nm_spesimen,
|
||
]
|
||
);
|
||
}
|
||
if ($pesan != ''){
|
||
if ($file != '' AND $jenisgambar != ''){
|
||
Xfiles::create([
|
||
'xmarking' => $nofoto,
|
||
'xtabel' => 'File Permintaan',
|
||
'xjenis' => $jenisgambar,
|
||
'xfile' => $file
|
||
]);
|
||
Periksa::where('nofoto', $nofoto)->update([
|
||
'filefoto' => $nofoto
|
||
]);
|
||
}
|
||
return response()->json(['status' => 'Status', 'message' => $pesan]);
|
||
return back();
|
||
} else {
|
||
return response()->json(['status' => 'Failed', 'message' => 'Mohon Memeriksa isian form pendaftaran kembali dan pastikan semua sudah terisi']);
|
||
return back();
|
||
}
|
||
} catch (Exception $e) {
|
||
$result = $e->getMessage();
|
||
return response()->json(['status' => 'Failed', 'message' => $result]);
|
||
return back();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
public function exMoveApiRegister(
|
||
Request $request,
|
||
AstmMessageService $astmMessageService,
|
||
SerialCommunicationService $serialCommunicationService
|
||
) {
|
||
$nofoto = $request->input('nofoto');
|
||
$modality = $request->input('reques');
|
||
$cekdata = Periksa::where('nofoto', $nofoto)->first();
|
||
if (isset($cekdata->id)){
|
||
$senderName = 'LIS_System';
|
||
$versionNumber = 'V1.0';
|
||
$nama = $cekdata->nmpasien;
|
||
$jk = $cekdata->jkpasien;
|
||
$urgensi = $cekdata->urgensi ?? 'Elective';
|
||
$alamat = $cekdata->alamatpasien ?? 'Malang';
|
||
$arrayttl = explode(" ", $nama);
|
||
$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 = '';
|
||
}
|
||
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 ($urgensi == 'Elective'){ $urgensi = 'INPATIENT'; $prioritas = 'R'; }
|
||
else if ($urgensi == 'CITO'){ $urgensi = 'EMERGENCY'; $prioritas = 'A'; }
|
||
else { $urgensi = 'OUTPATIENT'; $prioritas = 'A'; }
|
||
$patient = [
|
||
'id' => $cekdata->id,
|
||
'last_name' => $fname,
|
||
'first_name' => $blakang,
|
||
'middle_name' => $tengah,
|
||
'suffix' => $panggilan,
|
||
'dob' => $cekdata->noregister,
|
||
'sex' => $jk,
|
||
'address' => $alamat.'^^MALANG^^ID^65123',
|
||
'phone' => $cekdata->tlppasien,
|
||
'admitting_physician' => $cekdata->klinisi ?? 'Dokter Pengirim'
|
||
];
|
||
$order = [
|
||
'accession_number' => $cekdata->nofoto,
|
||
'isolate_number' => 'MGIT^TestName',
|
||
'organism' => $cekdata->reques ?? 'Mycobacterium tuberculosis',
|
||
'exclude_isolate' => 'No',
|
||
'priority' => $prioritas,
|
||
'collection_date_time' => date("YmdHi"),
|
||
'collected_by' => $cekdata->nmradiografer ?? Session('nama'),
|
||
'received_by' => Session('nama'),
|
||
'specimen_action_code' => '',
|
||
'isolate_source_test' => 'Blood',
|
||
'isolate_source_test_start_time'=> date("YmdHi"),
|
||
'receipt_date_time' => date("YmdHi"),
|
||
'specimen_type' => 'Blood Culture',
|
||
'body_site' => 'Lung',
|
||
'ordering_physician' => $cekdata->klinisi ?? 'Dokter Pengirim',
|
||
'ordering_physician_phone' => '',
|
||
'ordering_physician_fax' => '',
|
||
'ordering_physician_pager' => '',
|
||
'specimen_user_field_1' => '',
|
||
'specimen_user_field_2' => '',
|
||
'specimen_user_field_3' => '',
|
||
'specimen_user_field_4' => '',
|
||
'specimen_user_field_5' => '',
|
||
'finalized_date_time' => date("YmdHi"),
|
||
'specimen_reimbursement_value' => '100',
|
||
'test_reimbursement_value' => '50',
|
||
'isolate_classification' => 'Nosocomial'
|
||
];
|
||
Periksa::where('nofoto', $nofoto)->update([
|
||
'excutor' => Session('id'),
|
||
'nmexcutor' => Session('nama'),
|
||
]);
|
||
try {
|
||
if ($modality == 'genexpert01' OR $modality == 'genexpert02' OR $modality == 'genexpert03'){
|
||
$pesan = $this->Hl7Register($cekdata->id, $modality);
|
||
} else {
|
||
$pesan = 'Cannot send on Serial Port From Server';
|
||
}
|
||
}catch (Exception $e) {
|
||
$pesan = $e->getMessage();
|
||
}
|
||
|
||
return response()->json(['status' => 'Status', 'message' => $pesan ?? 'Unkown Error']);
|
||
return back();
|
||
} else {
|
||
return response()->json(['status' => 'Failed', 'message' => $nofoto.' Tidak di Temukan']);
|
||
return back();
|
||
}
|
||
}
|
||
}
|