This commit is contained in:
Dwi Swandhana
2026-08-01 17:02:31 +07:00
parent a3a98b13e3
commit 0891978d46
4 changed files with 393 additions and 0 deletions
@@ -1542,6 +1542,234 @@ class FrontpageController extends Controller
}
return response()->json(['status' => 'Sukses', 'message' => $pesan], 201);
}
public function registerApiUlang(Request $request) {
$decodedData = $request->json()->all();
$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;
$diagnosa = $decodedData['diagnosa'] ?? null;
$statusbayar = $decodedData['statusbayar'] ?? null;
$notransaksi = $decodedData['nomor_lab'] ?? null;
$insurance = $decodedData['jenispembayaran'] ?? 'UMM';
$klinis = $decodedData['diagnosa'] ?? $decodedData['klinisi'] ?? null;
$klinisi = $decodedData['klinisi'] ?? $drpeminta;
$rekues = $decodedData['jenispemeriksaan'] ?? null;
$nm_spesimen = $decodedData['spesimen'] ?? null;
$kd_spesimen = $decodedData['kodespesimen'] ?? null;
$pengambilan = $decodedData['pengambilan'] ?? null;
$nmrs = $decodedData['keteranganrujukan'] ?? $decodedData['namarspengirim'] ?? 'RSSA Malang';
$tanggalregis = $decodedData['tanggalregis'] ?? date('Y-m-d');
$tanggalsampel = $decodedData['tanggalsampel'] ?? date('Y-m-d');
$asalpengirim = $decodedData['asalpengirim'] ?? null;
$nofoto = $decodedData['nomorlab'] ?? '';
$telpon = str_replace('_', '', $nohap);
$tlsasal = str_replace('_', ' ', $tlsasal);
$klinisi = str_replace('_', ' ', $klinisi);
$nama = str_replace('_', ' ', $nama);
$alamat = str_replace('_', ' ', $alamat);
$getkodespesimen= Organisms::where('name', $nm_spesimen)->where('kelompok', 'listkodespesimen')->first();
if (isset($getkodespesimen->category)){
$kd_spesimen= $getkodespesimen->category;
} else {
Organisms::create([
'name' => $nm_spesimen,
'category' => $kd_spesimen,
'kelompok' => 'listkodespesimen'
]);
}
$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';
$pasien_id = 0;
$tgllahir = \Carbon\Carbon::createFromFormat('Y-m-d', $tgllahir);
$pasien = Pasien::where('norm', $noregister)->first();
try {
if (isset($pasien->id)) {
$pasien_id = $pasien->id;
Pasien::where('norm', $noregister)->update([
'nama' => $nama,
'jk' => $jk,
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
'nik' => $nik,
'bpjs' => $bpjs,
]);
} else {
$alamatbaru = substr($alamat, 0, 100);
$pasien_id = Pasien::insertGetId([
'norm' => $noregister,
'nama' => $nama,
'jk' => $jk,
'tgl_lahir' => $tgllahir,
'kota' => $kota,
'telpon' => $telpon,
'alamat' => $alamatbaru,
'nik' => $nik,
'bpjs' => $bpjs,
]);
}
} catch (\Exception $e) {
Log::error('Error in register Pasien: '.$e->getMessage());
}
$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");
$noloketsaja = explode('-', $nofoto);
$noloket = $noloketsaja[1] ?? 0;
$noloket = int($noloket);
$code_poli = 'Mikrobiologi';
$dlp = '';
$check = Poli::where('subpoli', $rekues)->first();
if (isset($check->id)){
$poli_id = $check->id;
$kd_spesimen= $check->subsubpoli;
$nm_spesimen= $check->modaliti;
$dlp = $check->kelompok;
} else {
$poli_id = Poli::insertGetId([
'poli' => 'Mikrobiologi',
'subpoli' => $rekues,
'subsubpoli' => $kd_spesimen,
'modaliti' => $nm_spesimen,
]);
}
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);
if ($nofoto == ''){
return response()->json(['status' => 'Gagal', 'message' => 'Nomor Sample Tidak Boleh Kosong'], 500);
} else {
$ceksudahada = Periksa::where('noregister', $noregister)->where('orderid', $notransaksi)->where('poli_id', $poli_id)->first();
if (isset($ceksudahada->id)){
$pesan = $ceksudahada->nofoto;
} else {
$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' => $decodedData['spesimen'] ?? $nm_spesimen ?? null,
'asuransi' => $insurance,
'urgensi' => $urgensi,
'daftar' => $mulai,
'dlp' => $dlp,
'pengambilan' => $pengambilan,
'tanggalregis' => $tanggalregis,
'tanggalsampel' => $tanggalsampel,
'pendaftar' => $clientIpNumeric,
'nmpendaftar' => $clientIp,
'asalpengirim' => $asalpengirim,
'orderid' => $notransaksi,
]);
$pesan = $nofoto;
$daftaridtcm = [79,80,81,82,83,84,203, 14,28,55,62,94,104,105,124,138,146];
if (in_array($poli_id, $daftaridtcm)){
$genexpert = false;
} else {
$genexpert = true;
}
Paslab::updateOrCreate(
[
'rnoreg' => $nofoto,
],
[
'nama' => $nama,
'norm' => $noregister,
'rtglast' => $mulai,
'alamat' => $alamat,
'rjenis' => $jk,
'umur' => $usia,
'namadok' => $nik,
'ruangan' => $tlsasal,
'tes' => $rekues,
'alat' => 'ALL',
'kd_spesimen' => $kd_spesimen,
'nm_spesimen' => $nm_spesimen,
'tgllahir' => $tgllahir,
'flg_vitek1' => false,
'flg_vitek2' => false,
'flg_bd1' => false,
'flg_bd2' => true,
'flg_gxp1' => $genexpert,
'flg_gxp2' => $genexpert,
'flg_gxp3' => $genexpert,
'flg_vitek3' => false,
]
);
}
return response()->json(['status' => 'Sukses', 'message' => $pesan], 201);
}
}
public function register(Request $request) {
$validator = Validator::make($request->all(), [