public IHttpActionResult GetRekamMedisById()
        {
            var result       = new RekamMedisRequest();
            var historyMedis = new VW_HISTORY_MEDIS_PASIEN();
            var rekamMedis   = new REKAM_MEDIS();

            var identity = (ClaimsIdentity)User.Identity;
            var roles    = identity.Claims.Where(c => c.Type == ClaimTypes.Role).FirstOrDefault();

            if (roles.Value == "Pasien")
            {
                var username = identity.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;
                var pasien   = db.PASIENs.Where(x => x.USER.USERNAME == username).FirstOrDefault();

                historyMedis = db.VW_HISTORY_MEDIS_PASIEN.Where(x => x.ID_PASIEN == pasien.ID_PASIEN).OrderByDescending(x => x.TGL_MASUK).FirstOrDefault();
                var tKasus = db.PEMERIKSAANs.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).FirstOrDefault();
                if (tKasus.ID_REKAM_MEDIS.HasValue)
                {
                    rekamMedis = db.REKAM_MEDIS.Where(x => x.ID_REKAM_MEDIS == tKasus.ID_REKAM_MEDIS).FirstOrDefault();
                }
            }
            else
            {
                historyMedis = db.VW_HISTORY_MEDIS_PASIEN.OrderByDescending(x => x.TGL_MASUK).ThenBy(x => x.PASIEN).FirstOrDefault();
                var tKasus = db.PEMERIKSAANs.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).FirstOrDefault();
                if (tKasus.ID_REKAM_MEDIS.HasValue)
                {
                    rekamMedis = db.REKAM_MEDIS.Where(x => x.ID_REKAM_MEDIS == tKasus.ID_REKAM_MEDIS).FirstOrDefault();
                }
            }


            if (rekamMedis == null)
            {
                return(Ok());
            }

            result.IdPemeriksaan = historyMedis.ID_PEMERIKSAAN.GetValueOrDefault();
            result.IdRekamMedis  = rekamMedis.ID_REKAM_MEDIS;
            result.Gejala        = rekamMedis.GEJALA;
            result.Tindakan      = rekamMedis.TINDAKAN;
            result.Diagnosa      = rekamMedis.DIAGNOSA;
            result.HasilTestLab  = rekamMedis.HASIL_TEST_LAB;

            return(Ok(result));
        }
        public IHttpActionResult GetOrderMedisList(string search, string sort, int limit, int offset)
        {
            var pageSize    = limit;
            var pageNumber  = offset;
            var totalRecord = 0;
            var result      = new List <VW_ORDER_MEDIS>();

            var historyMedis = new VW_HISTORY_MEDIS_PASIEN();
            var rekamMedis   = new REKAM_MEDIS();

            var identity = (ClaimsIdentity)User.Identity;
            var roles    = identity.Claims.Where(c => c.Type == ClaimTypes.Role).FirstOrDefault();

            if (roles.Value == "Pasien")
            {
                var username = identity.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;
                var pasien   = db.PASIENs.Where(x => x.USER.USERNAME == username).FirstOrDefault();

                historyMedis = db.VW_HISTORY_MEDIS_PASIEN.Where(x => x.ID_PASIEN == pasien.ID_PASIEN).OrderByDescending(x => x.TGL_MASUK).FirstOrDefault();
                result       = db.VW_ORDER_MEDIS.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN)
                               .OrderByDescending(x => x.ID_ORDER).ThenBy(x => x.ID_PEMERIKSAAN)
                               .Skip(GetSkip(pageNumber, pageSize))
                               .Take(pageSize).ToList();

                totalRecord = db.VW_ORDER_MEDIS.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).Count();
            }
            else
            {
                historyMedis = db.VW_HISTORY_MEDIS_PASIEN.OrderByDescending(x => x.TGL_MASUK).ThenBy(x => x.PASIEN).FirstOrDefault();
                result       = db.VW_ORDER_MEDIS.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN)
                               .OrderByDescending(x => x.ID_ORDER).ThenBy(x => x.ID_PEMERIKSAAN)
                               .Skip(GetSkip(pageNumber, pageSize))
                               .Take(pageSize).ToList();

                totalRecord = db.VW_ORDER_MEDIS.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).Count();
            }

            var totalPage = (totalRecord + pageSize - 1) / pageSize;

            return(Ok(new APIListResponse <VW_ORDER_MEDIS>(false, HttpStatusCode.OK.ToString(), HttpStatusCode.OK.ToString(), result, totalRecord, totalPage)));
        }
        public IHttpActionResult GetHistoryMedisRecent()
        {
            var result = new VW_HISTORY_MEDIS_PASIEN();

            var identity = (ClaimsIdentity)User.Identity;
            var roles    = identity.Claims.Where(c => c.Type == ClaimTypes.Role).FirstOrDefault();

            if (roles.Value == "Pasien")
            {
                var username = identity.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;
                var pasien   = db.PASIENs.Where(x => x.USER.USERNAME == username).FirstOrDefault();

                result = db.VW_HISTORY_MEDIS_PASIEN.Where(x => x.ID_PASIEN == pasien.ID_PASIEN).OrderByDescending(x => x.TGL_MASUK).FirstOrDefault();
            }
            else
            {
                result = db.VW_HISTORY_MEDIS_PASIEN.OrderByDescending(x => x.TGL_MASUK).ThenBy(x => x.PASIEN).FirstOrDefault();
            }

            result.STATUS_TUNGGU = GetStatusTunggu(result.ID_PEMERIKSAAN.GetValueOrDefault());

            return(Ok(result));
        }
Example #4
0
        public async Task <IHttpActionResult> PostPenjadwalanRecent(JadwalRequest jadwalRequest)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Data yang dikirim tidak lengkap"));
                }

                var historyMedis = new VW_HISTORY_MEDIS_PASIEN();
                var rekamMedis   = new REKAM_MEDIS();

                var identity = (ClaimsIdentity)User.Identity;
                var roles    = identity.Claims.Where(c => c.Type == ClaimTypes.Role).FirstOrDefault();
                if (roles.Value == "Pasien")
                {
                    var username = identity.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;
                    var pasien   = db.PASIENs.Where(x => x.USER.USERNAME == username).FirstOrDefault();

                    historyMedis = db.VW_HISTORY_MEDIS_PASIEN.Where(x => x.ID_PASIEN == pasien.ID_PASIEN).OrderByDescending(x => x.TGL_MASUK).FirstOrDefault();
                    var tKasus = db.PEMERIKSAANs.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).FirstOrDefault();
                    if (tKasus.ID_REKAM_MEDIS.HasValue)
                    {
                        rekamMedis = db.REKAM_MEDIS.Where(x => x.ID_REKAM_MEDIS == tKasus.ID_REKAM_MEDIS).FirstOrDefault();
                    }
                }
                else
                {
                    historyMedis = db.VW_HISTORY_MEDIS_PASIEN.OrderByDescending(x => x.TGL_MASUK).ThenBy(x => x.PASIEN).FirstOrDefault();
                    var tKasus = db.PEMERIKSAANs.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).FirstOrDefault();
                    if (tKasus.ID_REKAM_MEDIS.HasValue)
                    {
                        rekamMedis = db.REKAM_MEDIS.Where(x => x.ID_REKAM_MEDIS == tKasus.ID_REKAM_MEDIS).FirstOrDefault();
                    }
                }

                var jadwal = new JADWAL();
                jadwal.MULAI          = jadwalRequest.TglMulai;
                jadwal.SELESAI        = jadwalRequest.TglSelesai;
                jadwal.ID_PEMERIKSAAN = historyMedis.ID_PEMERIKSAAN.GetValueOrDefault();
                jadwal.KEPERLUAN      = jadwalRequest.Keperluan;
                jadwal.STATUS         = 1;

                while (true)
                {
                    jadwal.ID_JADWAL = _random.Next(1, 999999999);
                    var count = db.JADWALs.Where(k => k.ID_JADWAL == jadwal.ID_JADWAL).Count();

                    if (count == 0)
                    {
                        break;
                    }
                }
                jadwalRequest.IdJadwal = jadwal.ID_JADWAL;

                db.JADWALs.Add(jadwal);

                await db.SaveChangesAsync();

                return(Ok(jadwalRequest));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Example #5
0
        public IHttpActionResult GetListPenjadwalanRecent(string search, string sort, int limit, int offset)
        {
            var historyMedis = new VW_HISTORY_MEDIS_PASIEN();
            var rekamMedis   = new REKAM_MEDIS();

            var identity = (ClaimsIdentity)User.Identity;
            var roles    = identity.Claims.Where(c => c.Type == ClaimTypes.Role).FirstOrDefault();

            if (roles.Value == "Pasien")
            {
                var username = identity.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;
                var pasien   = db.PASIENs.Where(x => x.USER.USERNAME == username).FirstOrDefault();

                historyMedis = db.VW_HISTORY_MEDIS_PASIEN.Where(x => x.ID_PASIEN == pasien.ID_PASIEN).OrderByDescending(x => x.TGL_MASUK).FirstOrDefault();
                var tKasus = db.PEMERIKSAANs.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).FirstOrDefault();
                if (tKasus.ID_REKAM_MEDIS.HasValue)
                {
                    rekamMedis = db.REKAM_MEDIS.Where(x => x.ID_REKAM_MEDIS == tKasus.ID_REKAM_MEDIS).FirstOrDefault();
                }
            }
            else
            {
                historyMedis = db.VW_HISTORY_MEDIS_PASIEN.OrderByDescending(x => x.TGL_MASUK).ThenBy(x => x.PASIEN).FirstOrDefault();
                var tKasus = db.PEMERIKSAANs.Where(x => x.ID_PEMERIKSAAN == historyMedis.ID_PEMERIKSAAN).FirstOrDefault();
                if (tKasus.ID_REKAM_MEDIS.HasValue)
                {
                    rekamMedis = db.REKAM_MEDIS.Where(x => x.ID_REKAM_MEDIS == tKasus.ID_REKAM_MEDIS).FirstOrDefault();
                }
            }

            var pageSize    = limit;
            var pageNumber  = offset;
            var totalRecord = 0;
            var result      = new List <JadwalRequest>();

            var idPemeriksaan = historyMedis.ID_PEMERIKSAAN.GetValueOrDefault();

            //var appUser = db.USERS.Where(x => x.USERNAME == username).FirstOrDefault();
            var jadwalRequests = db.JADWALs.Where(x => x.ID_PEMERIKSAAN == idPemeriksaan)
                                 .OrderByDescending(x => x.MULAI).ThenBy(x => x.SELESAI)
                                 .Skip(GetSkip(pageNumber, pageSize))
                                 .Take(pageSize).ToList();

            foreach (var x in jadwalRequests)
            {
                var jadwal = new JadwalRequest
                {
                    IdJadwal         = x.ID_JADWAL,
                    IdPemeriksaan    = x.ID_PEMERIKSAAN,
                    TglMulai         = x.MULAI.GetValueOrDefault(),
                    TglSelesai       = x.SELESAI.GetValueOrDefault(),
                    Keperluan        = x.KEPERLUAN,
                    HasilPemeriksaan = x.HASIL_PEMERIKSAAN,
                    Status           = x.STATUS.GetValueOrDefault()
                };

                result.Add(jadwal);
            }

            totalRecord = db.JADWALs.Count();

            var totalPage = (totalRecord + pageSize - 1) / pageSize;

            return(Ok(new APIListResponse <JadwalRequest>(false, HttpStatusCode.OK.ToString(), HttpStatusCode.OK.ToString(), result, totalRecord, totalPage)));
        }
Example #6
0
        public async Task <IHttpActionResult> PutPemeriksaanToClosed(int idPemeriksaan, VW_HISTORY_MEDIS_PASIEN vwHistoryMedis)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Data yang dikirim tidak lengkap"));
                }

                var kasusStat       = new KASUS_STAT();
                var pemeriksaanInDB = db.KASUS.Where(x => x.ID_PEMERIKSAAN == idPemeriksaan).FirstOrDefault();
                pemeriksaanInDB.STATUS_KASUS = Kasus.StatusKasus.Closed.ToString();

                kasusStat.ID_KASUS     = pemeriksaanInDB.ID_KASUS;
                kasusStat.TGL          = DateTime.Now;
                kasusStat.STATUS_KASUS = pemeriksaanInDB.STATUS_KASUS;
                db.KASUS_STAT.Add(kasusStat);

                await db.SaveChangesAsync();

                // update data checkup dari dokter bersangkutan
                var pemeriksaan = db.PEMERIKSAANs.Where(x => x.ID_PEMERIKSAAN == idPemeriksaan).FirstOrDefault();

                // get data pemeriksaan tgl masuk awal
                var pemeriksaanGiliran = 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", pemeriksaan.ID_DOKTER))
                                         .OrderBy(x => x.TGL)
                                         .FirstOrDefault();

                if (pemeriksaanGiliran != null)
                {
                    var kasusGiliran = db.KASUS.Where(x => x.ID_PEMERIKSAAN == pemeriksaanGiliran.ID_PEMERIKSAAN).FirstOrDefault();
                    kasusGiliran.STATUS_KASUS = Kasus.StatusKasus.Checkup.ToString();

                    var kasusStatGiliran = new KASUS_STAT();
                    kasusStatGiliran.ID_KASUS     = kasusGiliran.ID_KASUS;
                    kasusStatGiliran.TGL          = kasusStat.TGL;
                    kasusStatGiliran.STATUS_KASUS = kasusGiliran.STATUS_KASUS;
                    db.KASUS_STAT.Add(kasusStatGiliran);

                    await db.SaveChangesAsync();
                }

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }