public async Task <IHttpActionResult> PutRegisterKasus(string regNo, RegisterKasusRequest registerKasusRequest) { try { if (!ModelState.IsValid) { return(BadRequest("Data yang dikirim tidak lengkap")); } var registerKasusInDB = db.REGISTER_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var transactKasusInDB = db.T_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var kasusInDB = db.KASUS.Where(x => x.ID_KASUS == transactKasusInDB.ID_KASUS).FirstOrDefault(); if (kasusInDB.STATUS_KASUS != Kasus.StatusKasus.Registered.ToString()) { return(BadRequest("Kasus sudah di admisi")); } registerKasusInDB.NAMA = registerKasusRequest.Nama; registerKasusInDB.KELUHAN = registerKasusRequest.Keluhan; registerKasusInDB.TINGGI_BADAN = registerKasusRequest.TinggiBadan; registerKasusInDB.BERAT_BADAN = registerKasusRequest.BeratBadan; registerKasusInDB.TENSI_DARAH = registerKasusRequest.TensiDarah; registerKasusInDB.ID_KLINIK = registerKasusRequest.Klinik; var pasienInDB = db.PASIENs.Where(x => x.ID_PASIEN == transactKasusInDB.ID_PASIEN).FirstOrDefault(); var userInDB = db.USERS.Where(x => x.ID_USER == pasienInDB.ID_USER).FirstOrDefault(); pasienInDB.ALAMAT = registerKasusRequest.Alamat; pasienInDB.NAMA = registerKasusRequest.Nama; pasienInDB.TGL_LAHIR = registerKasusRequest.TglLahir; pasienInDB.TEMPAT_LAHIR = registerKasusRequest.TempatLahir; pasienInDB.TELP = registerKasusRequest.Telp; pasienInDB.JENIS_KELAMIN = registerKasusRequest.JenisKelamin; userInDB.EMAIL = registerKasusRequest.Email; var indexAt = registerKasusRequest.Email.IndexOf("@"); if (indexAt == -1) { return(BadRequest("Email Tidak Valid")); } userInDB.USERNAME = registerKasusRequest.Email.Substring(0, indexAt); userInDB.FULL_NAME = registerKasusRequest.Nama; await db.SaveChangesAsync(); return(Ok()); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IHttpActionResult> DeleteRegisterKasusByRegNo(string regNo) { var result = new RegisterKasusRequest(); var registerKasusInDB = db.REGISTER_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var transactKasusInDB = db.T_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var kasusInDB = db.KASUS.Where(x => x.ID_KASUS == transactKasusInDB.ID_KASUS).FirstOrDefault(); if (kasusInDB.STATUS_KASUS != Kasus.StatusKasus.Registered.ToString()) { return(BadRequest("Kasus yang sudah berjalan tidak dapat diahapus")); } var pasienInDB = db.PASIENs.Where(x => x.ID_PASIEN == transactKasusInDB.ID_PASIEN).FirstOrDefault(); var userInDB = db.USERS.Where(x => x.ID_USER == pasienInDB.ID_USER).FirstOrDefault(); result.Alamat = pasienInDB.ALAMAT; result.BeratBadan = registerKasusInDB.BERAT_BADAN.GetValueOrDefault(); result.Email = userInDB.EMAIL; result.JenisKelamin = pasienInDB.JENIS_KELAMIN; result.Keluhan = registerKasusInDB.KELUHAN; result.Klinik = registerKasusInDB.ID_KLINIK.GetValueOrDefault(); result.Nama = pasienInDB.NAMA; result.Telp = pasienInDB.TELP; result.TempatLahir = pasienInDB.TEMPAT_LAHIR; result.TensiDarah = registerKasusInDB.TENSI_DARAH.GetValueOrDefault(); result.TglLahir = pasienInDB.TGL_LAHIR; result.TinggiBadan = registerKasusInDB.TINGGI_BADAN.GetValueOrDefault(); db.REGISTER_KASUS.Remove(registerKasusInDB); db.T_KASUS.Remove(transactKasusInDB); db.KASUS.Remove(kasusInDB); db.PASIENs.Remove(pasienInDB); db.USERS.Remove(userInDB); try { await db.SaveChangesAsync(); db.Database.ExecuteSqlCommand($"DELETE FROM ROLE_USERS WHERE ID_USER = {userInDB.ID_USER}"); } catch (Exception e) { BadRequest(e.Message); } return(Ok(result)); }
public IHttpActionResult GetRegisterKasusByRegNo(string regNo) { var result = new RegisterKasusRequest(); var registerKasusInDB = db.REGISTER_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var transactKasusInDB = db.T_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var kasusInDB = db.KASUS.Where(x => x.ID_KASUS == transactKasusInDB.ID_KASUS).FirstOrDefault(); var pasienInDB = db.PASIENs.Where(x => x.ID_PASIEN == transactKasusInDB.ID_PASIEN).FirstOrDefault(); var userInDB = db.USERS.Where(x => x.ID_USER == pasienInDB.ID_USER).FirstOrDefault(); result.Alamat = pasienInDB.ALAMAT; result.BeratBadan = registerKasusInDB.BERAT_BADAN.GetValueOrDefault(); result.Email = userInDB.EMAIL; result.JenisKelamin = pasienInDB.JENIS_KELAMIN; result.Keluhan = registerKasusInDB.KELUHAN; result.Klinik = registerKasusInDB.ID_KLINIK.GetValueOrDefault(); result.Nama = pasienInDB.NAMA; result.Telp = pasienInDB.TELP; result.TempatLahir = pasienInDB.TEMPAT_LAHIR; result.TensiDarah = registerKasusInDB.TENSI_DARAH.GetValueOrDefault(); result.TglLahir = pasienInDB.TGL_LAHIR; result.TinggiBadan = registerKasusInDB.TINGGI_BADAN.GetValueOrDefault(); return(Ok(result)); }
public async Task <IHttpActionResult> PutAdmisiKasus(string regNo, RegisterKasusRequest registerKasusRequest) { try { if (!ModelState.IsValid) { return(BadRequest("Data yang dikirim tidak lengkap")); } var pemeriksaan = new PEMERIKSAAN(); var kasusStat = new KASUS_STAT(); var registerKasus = db.REGISTER_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var transactKasus = db.T_KASUS.Where(x => x.REG_NO == regNo).FirstOrDefault(); var kasusInDB = db.KASUS.Where(x => x.ID_KASUS == transactKasus.ID_KASUS).FirstOrDefault(); string registerNumber = string.Empty; while (true) { pemeriksaan.ID_PEMERIKSAAN = _random.Next(1, 999999999); var count = db.PEMERIKSAANs.Where(k => k.ID_PEMERIKSAAN == pemeriksaan.ID_PEMERIKSAAN).Count(); if (count == 0) { break; } } transactKasus.VRF_DATA_PASIEN = transactKasus.PASIEN.NAMA; transactKasus.VRF_KELUHAN_PASIEN = registerKasus.KELUHAN; kasusInDB.ID_PEMERIKSAAN = pemeriksaan.ID_PEMERIKSAAN; kasusStat.ID_KASUS = kasusInDB.ID_KASUS; kasusStat.TGL = DateTime.Now; // get available dokter dengan spesialisasi sesuai dengan kasus var dokterList = db.DOKTERs.Where(x => x.ID_SPESIALISASI == registerKasus.KLINIK.ID_SPESIALISASI); //var minPemeriksaan = 0; var dokterDictionary = new Dictionary <int, int>(); foreach (var item in dokterList) { var countPemeriksaan = db.Database.SqlQuery <PEMERIKSAAN>(@"SELECT * FROM PEMERIKSAAN WHERE ID_PEMERIKSAAN IN(SELECT ID_PEMERIKSAAN FROM KASUS WHERE LOWER(STATUS_KASUS) IN ('queuing', 'checkup')) AND ID_DOKTER = @Id", new SqlParameter("@Id", item.ID_DOKTER)).Count(); //if (countPemeriksaan == 0) pemeriksaan.ID_DOKTER = item.ID_DOKTER; dokterDictionary.Add(item.ID_DOKTER, countPemeriksaan); //if (minPemeriksaan > countPemeriksaan) //{ // minPemeriksaan = countPemeriksaan; // pemeriksaan.ID_DOKTER = item.ID_DOKTER; //} } pemeriksaan.ID_DOKTER = dokterDictionary.OrderBy(x => x.Value).FirstOrDefault().Key; if (dokterDictionary.Where(x => x.Key == pemeriksaan.ID_DOKTER).FirstOrDefault().Value == 0) { kasusInDB.STATUS_KASUS = Kasus.StatusKasus.Checkup.ToString(); } else { kasusInDB.STATUS_KASUS = Kasus.StatusKasus.Queuing.ToString(); } kasusStat.STATUS_KASUS = kasusInDB.STATUS_KASUS; // cek masing-masing beban dokter //var idDokter = db.Database.SqlQuery<Nullable<int>>($@"SELECT a.ID_DOKTER FROM ( // SELECT a.ID_DOKTER, MIN(a.COUNT_PEMERIKSAAN) MIN_COUNT_PEMERIKSAAN FROM ( // SELECT a.ID_DOKTER, COUNT(a.ID_PEMERIKSAAN) COUNT_PEMERIKSAAN FROM ( // SELECT ID_DOKTER, ID_PEMERIKSAAN FROM PEMERIKSAAN WHERE // ID_PEMERIKSAAN IN (SELECT ID_PEMERIKSAAN FROM KASUS WHERE LOWER(STATUS_KASUS) = 'checkup') // AND ID_SPESIALISASI = @Id // ) a GROUP BY a.ID_DOKTER // ) a GROUP BY a.ID_DOKTER) a", new SqlParameter("@Id", registerKasus.KLINIK.ID_SPESIALISASI)).FirstOrDefault().GetValueOrDefault(); pemeriksaan.TGL = DateTime.Now; pemeriksaan.RUANGAN = GenerateRuangan(); db.PEMERIKSAANs.Add(pemeriksaan); db.KASUS_STAT.Add(kasusStat); await db.SaveChangesAsync(); return(Ok()); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IHttpActionResult> PostRegisterKasus(RegisterKasusRequest registerKasusRequest) { try { if (!ModelState.IsValid) { return(BadRequest("Data yang dikirim tidak lengkap")); } var registerKasus = new REGISTER_KASUS(); var transactKasus = new T_KASUS(); var kasus = new KASU(); var kasusStat = new KASUS_STAT(); registerKasus.NAMA = registerKasusRequest.Nama; string registerNumber = string.Empty; while (true) { registerNumber = GenerateRegisterNumber(); var count = db.REGISTER_KASUS.Where(rk => rk.REG_NO == registerNumber).Count(); if (count == 0) { break; } } while (true) { kasus.ID_KASUS = _random.Next(1, 999999999); var count = db.KASUS.Where(k => k.ID_KASUS == kasus.ID_KASUS).Count(); if (count == 0) { break; } } registerKasus.REG_NO = registerNumber; registerKasus.KELUHAN = registerKasusRequest.Keluhan; registerKasus.TINGGI_BADAN = registerKasusRequest.TinggiBadan; registerKasus.BERAT_BADAN = registerKasusRequest.BeratBadan; registerKasus.TENSI_DARAH = registerKasusRequest.TensiDarah; registerKasus.ID_KLINIK = registerKasusRequest.Klinik; transactKasus.REG_NO = registerKasus.REG_NO; transactKasus.ID_KASUS = kasus.ID_KASUS; transactKasus.TGL_MASUK = DateTime.Now; db.REGISTER_KASUS.Add(registerKasus); var pasien = new PASIEN(); var user = new USER(); if (registerKasusRequest.JenisPasien == "1") { while (true) { pasien.ID_PASIEN = _random.Next(1, 999999999); var count = db.PASIENs.Where(rk => rk.ID_PASIEN == pasien.ID_PASIEN).Count(); if (count == 0) { break; } } while (true) { user.ID_USER = _random.Next(1, 999999999); var count = db.USERS.Where(rk => rk.ID_USER == user.ID_USER).Count(); if (count == 0) { break; } } pasien.ID_USER = user.ID_USER; pasien.ALAMAT = registerKasusRequest.Alamat; pasien.NAMA = registerKasusRequest.Nama; pasien.TGL_LAHIR = registerKasusRequest.TglLahir; pasien.TEMPAT_LAHIR = registerKasusRequest.TempatLahir; pasien.TELP = registerKasusRequest.Telp; pasien.JENIS_KELAMIN = registerKasusRequest.JenisKelamin; db.PASIENs.Add(pasien); user.ACTIVE_YN = "Y"; user.EMAIL = registerKasusRequest.Email; var indexAt = registerKasusRequest.Email.IndexOf("@"); if (indexAt == -1) { return(BadRequest("Email Tidak Valid")); } user.USERNAME = registerKasusRequest.Email.Substring(0, indexAt); user.FULL_NAME = registerKasusRequest.Nama; var tempPassword = "******"; user.PASSWORD = Encryptor.Base64Encode(Encryptor.MD5Hash(tempPassword)); db.USERS.Add(user); transactKasus.ID_PASIEN = pasien.ID_PASIEN; kasus.STATUS_KASUS = Kasus.StatusKasus.Registered.ToString(); kasusStat.ID_KASUS = kasus.ID_KASUS; kasusStat.STATUS_KASUS = kasus.STATUS_KASUS; kasusStat.TGL = DateTime.Now; db.T_KASUS.Add(transactKasus); db.KASUS.Add(kasus); db.KASUS_STAT.Add(kasusStat); await db.SaveChangesAsync(); db.Database.ExecuteSqlCommand($"INSERT INTO ROLE_USERS (ID_USER, ID_ROLE) VALUES ({user.ID_USER}, 4)"); await db.SaveChangesAsync(); SendEmail(registerKasusRequest.Email, user.USERNAME, tempPassword); return(Ok()); } pasien = db.PASIENs.Where(x => x.ID_PASIEN == registerKasusRequest.IdPasien).FirstOrDefault(); user = db.USERS.Where(x => x.ID_USER == registerKasusRequest.IdUser).FirstOrDefault(); transactKasus.ID_PASIEN = pasien.ID_PASIEN; kasus.STATUS_KASUS = Kasus.StatusKasus.Registered.ToString(); kasusStat.ID_KASUS = kasus.ID_KASUS; kasusStat.STATUS_KASUS = kasus.STATUS_KASUS; kasusStat.TGL = DateTime.Now; db.T_KASUS.Add(transactKasus); db.KASUS.Add(kasus); db.KASUS_STAT.Add(kasusStat); await db.SaveChangesAsync(); return(Ok()); } catch (Exception e) { return(BadRequest(e.Message)); } }