public IActionResult GetAll(string year, int idService = 0, int iddoctor = 0)
        {
            DateTime from = MYHelper.DiffDate(year + "/01/01", true);
            DateTime to   = MYHelper.DiffDate(year + "/12/29", false);
            var      qq   = repository.GetAll(c =>
                                              c.VisitDate >= from &&
                                              c.VisitDate <= to &&
                                              (idService > 0 ? (c.tblReception.IdService == idService) : true) &&
                                              (iddoctor > 0 ? (c.tblReception.IdDoctor == iddoctor) : true)
                                              ).Result;

            List <chartvisit_result> result = new List <chartvisit_result>();

            for (int i = 1; i <= 12; i++)
            {
                string   month    = MYHelper.getMonthName(i);
                DateTime fromdate = MYHelper.DiffDate(year + "/" + i.ToString().PadLeft(2, '0') + "/01", true);
                DateTime todate   = MYHelper.DiffDate(year + "/" + i.ToString().PadLeft(2, '0') + "/" + (i == 12 ? "29" : "30"), false);
                var      query    = qq.Where(c => c.VisitDate >= fromdate && c.VisitDate <= todate).ToList();
                int      isdo     = query.Where(c => c.IdWaiting == 5).Count();
                int      isnotdo  = query.Where(c => c.IdWaiting == 7 || c.IdWaiting == 8).Count();

                result.Add(new chartvisit_result
                {
                    IsDo    = isdo,
                    IsNotDo = isnotdo,
                    Month   = month
                });
            }

            return(Ok(result));
        }
        public IActionResult GetAll(long IdReception)
        {
            List <string> lst       = new List <string>();
            ContextDb     db        = new ContextDb();
            var           reception = db.tblReceptions.FirstOrDefault(c => c.Id == IdReception);
            string        path      = string.Empty;
            string        base64    = string.Empty;

            if (!string.IsNullOrEmpty(reception.PenSatisfaction))
            {
                path = Path.Combine(_hostingEnvironment.WebRootPath, "FileUpload", reception.PenSatisfaction);
                // byte[] b = System.IO.File.ReadAllBytes(path);
                base64 = MYHelper.getbase64(path);
                lst.Add(base64);
            }
            var xx = db.tblVisits.Where(c => c.IdReception == IdReception).Select(c => c.Id).ToArray();

            foreach (var pic in db.tblPictures.Where(c => xx.Contains(c.IdVisit)).OrderBy(c => c.IdVisit))
            {
                path = Path.Combine(_hostingEnvironment.WebRootPath, "FileUpload", pic.Filepath);
                // byte[] b = System.IO.File.ReadAllBytes(path);
                base64 = MYHelper.getbase64(path);
                lst.Add(base64);
            }
            return(Ok(lst));
        }
        public async Task <ActionResult <JsonR> > changeStatus(long ReceptionId, int IdWaiting)//,string comment="")
        {
            string   today = MYHelper.PersianDate(MYHelper.GetDate());
            DateTime from  = MYHelper.DiffDate(today, true).AddDays(-7);
            DateTime to    = MYHelper.DiffDate(today, false);
            JsonR    result;
            var      lst   = repository.GetAll().Result;
            tblVisit model = lst.FirstOrDefault(c => c.IdReception == ReceptionId && c.VisitDate >= from && c.VisitDate <= to);

            if (model == null)
            {
                result = new JsonR {
                    Title = "error", Message = "ویزیت به تاریخ امروز وجود ندارد"
                };
                return(result);
            }
            model.IdWaiting = IdWaiting;
            ContextDb db = new ContextDb();

            db.tblReceptions.Find(ReceptionId).IdWaiting = IdWaiting;

            //if (!string.IsNullOrEmpty(comment))
            //    model.Comment = comment;
            db.SaveChanges();
            result = new JsonR {
                Title = "success", Message = "عملیات با موفقیت انجام شد"
            };
            return(result);
        }
        public async Task <IEnumerable <tblPicture> > GetAll(long IdReception, string date)
        {
            long idVisit = MYHelper.getIdVisitbyIdReception(IdReception, date);
            var  result  = await repository.GetAll(c => c.IdVisit == idVisit);

            result.ToList().ForEach(c => { c.Filepath = MYHelper.getbase64(Path.Combine(_hostingEnvironment.WebRootPath, "FileUpload", c.Filepath)); });
            return(result);
        }
        public async Task <ActionResult <bool> > Post(tblReception model)
        {
            try
            {
                ContextDb db = new ContextDb();
                model.Id = 0;
                tbl_patient patient = model.tbl_patient;

                if (patient.Id <= 0)
                {
                    string dossier = string.Empty;
                    if (db.tbl_patient.Count() > 0)
                    {
                        dossier = (Convert.ToInt64(db.tbl_patient.Max(c => c.DossierNumberPermanent)) + 1).ToString().PadLeft(6, '0');
                    }

                    else
                    {
                        dossier = "000001";
                    }
                    patient.DossierNumberPermanent = dossier;
                    db.tbl_patient.Add(patient);
                }
                else
                {
                    db.Entry(patient).State = EntityState.Modified;
                }
                db.SaveChanges();
                model.IdPatient      = patient.Id;
                model.tbl_patient    = null;
                model.IdWaiting      = 4;
                model.RegDate        = MYHelper.GetDate();
                model.IdGeneralGroup = 1;
                var service = db.tbl_Service.Find(model.IdService);
                model.tblVisits.ToList().ForEach(c =>
                {
                    c.Id          = 0;
                    c.IdWaiting   = 4;
                    c.DateRequest = MYHelper.GetDate();
                    c.IdReception = model.Id;
                    c.VisitDate   = MYHelper.GetDate(c.FarsiDate);
                    c.Count       = 1;
                    c.Percents    = 100;
                    c.FreePrices  = service.FreePrices;
                    c.Tariff      = service.FreePrices;
                });

                await repository.Add(model);

                return(true);
            }
            catch (Exception err)
            {
                return(false);
            }
        }
        public async Task <ActionResult <tblVisit> > Get(long idreception, DateTime date)
        {
            var tblVisit = await repository.Get(c => c.IdReception == idreception && c.VisitDate == date);

            if (tblVisit == null)
            {
                return(NotFound());
            }
            tblVisit.FarsiDate = MYHelper.PersianDate(tblVisit.VisitDate);
            return(tblVisit);
        }
        public IEnumerable <string> getyear()
        {
            var           lst     = repository.GetAll().Result;
            List <string> lstyear = new List <string>();

            foreach (DateTime item in lst.Select(c => c.VisitDate).OrderByDescending(c => c))
            {
                lstyear.Add(MYHelper.PersianDate(item).Substring(0, 4));
            }

            return(lstyear.Distinct());
        }
        public async Task <ActionResult <JsonR> > Post([FromForm] tblPicture model)
        {
            long idVisit = MYHelper.getIdVisitbyIdReception(model.IdReception, model.date);

            if (idVisit < 1)
            {
                return new JsonR {
                           Title = "error", Message = "چنین ویزیتی وجود ندارد"
                }
            }
            ;
            model.IdVisit = idVisit;


            try
            {
                string guidefile = string.Empty;

                if (model.Image.Length > 0)
                {
                    IFormFile files = model.Image;
                    if (string.IsNullOrEmpty(Path.GetExtension(files.FileName)))
                    {
                        guidefile = Guid.NewGuid() + ".jpg";
                    }
                    else
                    {
                        guidefile = Guid.NewGuid() + Path.GetExtension(files.FileName);
                    }
                    var filePath = Path.Combine(_hostingEnvironment.WebRootPath, "FileUpload", guidefile);
                    using (var fileStream = new FileStream(filePath, FileMode.Create))
                    {
                        await files.CopyToAsync(fileStream);

                        fileStream.Flush();
                        model.Filepath = guidefile;
                    }
                }

                await repository.Add(model);

                return(new JsonR {
                    Title = "success", Message = guidefile
                });
            }
            catch (Exception err)
            {
                return(new JsonR {
                    Title = "error", Message = err.Message
                });
            }
        }
        public async Task <ActionResult <bool> > Post(tblVisit model)
        {
            try
            {
                model.VisitDate = MYHelper.GetDate(model.FarsiDate);
                await repository.Add(model);

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public async Task <ActionResult <tblReception> > Get(long id)
        {
            var tblReception = await repository.Get(id);

            if (tblReception == null)
            {
                return(NotFound());
            }
            using (ContextDb db = new ContextDb())
            {
                tblReception.tbl_patient = db.tbl_patient.Find(tblReception.IdPatient);
                var lstvisit = db.tblVisits.Where(c => c.IdReception == tblReception.Id).ToList();
                lstvisit.ForEach(c => c.FarsiDate = MYHelper.PersianDate(c.VisitDate));
                tblReception.tblVisits            = lstvisit;
            }
            return(tblReception);
        }
        public async Task <ActionResult <bool> > Put(long id, tblVisit model)
        {
            if (id != model.Id)
            {
                return(BadRequest());
            }

            try
            {
                model.VisitDate = MYHelper.GetDate(model.FarsiDate);
                await repository.Update(model);

                return(true);
            }
            catch (DbUpdateConcurrencyException)
            {
                return(false);
            }
        }
        public IActionResult GetAll(string fromdate, string todate, int?idService)
        {
            fromdate = fromdate.Replace('_', '/');
            todate   = todate.Replace('_', '/');
            DateTime  from = MYHelper.DiffDate(fromdate, true);
            DateTime  to   = MYHelper.DiffDate(todate, false);
            ContextDb db   = new ContextDb();
            var       qq   = repository.GetAll(c =>
                                               c.VisitDate >= from &&
                                               c.VisitDate <= to &&
                                               (idService.HasValue ? (c.tblReception.IdService == idService) : true)
                                               ).Result;
            List <reportvisit_result> result = new List <reportvisit_result>();
            int i = 0;

            foreach (var item in qq)
            {
                i++;
                var reception = db.tblReceptions.Find(item.IdReception);
                var service   = db.tbl_Service.Find(reception.IdService);
                var patient   = db.tbl_patient.Find(reception.IdPatient);
                result.Add(new reportvisit_result
                {
                    Comment     = item.Comment,
                    Dossier     = patient.DossierNumberPermanent,
                    FullName    = patient.Name + ' ' + patient.LastName,
                    Payment     = item.FreePrices,
                    PersianDate = MYHelper.PersianDate(item.VisitDate),
                    service     = service.Name,
                    Tel         = patient.Tel,
                    total       = item.TotalMeeting,
                    Row         = i
                });
            }

            return(Ok(result));
        }
Example #13
0
        public async Task <IEnumerable <tblPicture> > GetAll(long IdReception, string date)
        {
            long idVisit = MYHelper.getIdVisitbyIdReception(IdReception, date);

            return(await repository.GetAll(c => c.IdVisit == idVisit));
        }
        public IActionResult GetAll(string LName, string fromdate, string todate)
        {
            fromdate = fromdate.Replace('_', '/');
            todate   = todate.Replace('_', '/');
            ContextDb db = new ContextDb();
            IEnumerable <GetVisitListResult> lst;

            if (!string.IsNullOrEmpty(LName))
            {
                lst = db.tblVisits.Join(db.tblReceptions.Where(c => c.tbl_patient.LastName.Contains(LName)), c => c.IdReception, d => d.Id, (c, d) => new GetVisitListResult
                {
                    Tel                    = d.tbl_patient.Tel,
                    service                = d.tbl_Service.Name,
                    ReceptionId            = c.IdReception,
                    VisitCurrentId         = c.Id,
                    patientId              = d.IdPatient,
                    DateCurrent            = c.VisitDate,
                    IdWaitingVisitCurrent  = c.IdWaiting,
                    FullName               = d.tbl_patient.Name + " " + d.tbl_patient.LastName,
                    DossierNumberPermanent = d.tbl_patient.DossierNumberPermanent
                });
            }
            else
            {
                if (string.IsNullOrEmpty(fromdate))
                {
                    lst = db.tblVisits.Join(db.tblReceptions, c => c.IdReception, d => d.Id, (c, d) => new GetVisitListResult
                    {
                        Tel                    = d.tbl_patient.Tel,
                        service                = d.tbl_Service.Name,
                        ReceptionId            = c.IdReception,
                        patientId              = d.IdPatient,
                        VisitCurrentId         = c.Id,
                        IdWaitingVisitCurrent  = c.IdWaiting,
                        DateCurrent            = c.VisitDate,
                        FullName               = d.tbl_patient.Name + " " + d.tbl_patient.LastName,
                        DossierNumberPermanent = d.tbl_patient.DossierNumberPermanent
                    });
                }
                else
                {
                    DateTime from = MYHelper.DiffDate(fromdate, true);
                    DateTime to   = MYHelper.DiffDate(todate, false);
                    lst = db.tblVisits.Where(c => c.VisitDate >= from && c.VisitDate <= to).Join(db.tblReceptions, c => c.IdReception, d => d.Id, (c, d) => new GetVisitListResult
                    {
                        Tel                    = d.tbl_patient.Tel,
                        service                = d.tbl_Service.Name,
                        ReceptionId            = c.IdReception,
                        VisitCurrentId         = c.Id,
                        patientId              = d.IdPatient,
                        DateCurrent            = c.VisitDate,
                        IdWaitingVisitCurrent  = c.IdWaiting,
                        FullName               = d.tbl_patient.Name + " " + d.tbl_patient.LastName,
                        DossierNumberPermanent = d.tbl_patient.DossierNumberPermanent
                    });
                }
            }
            lst = lst.GroupBy(d => d.ReceptionId).Select(d => new GetVisitListResult
            {
                Tel                    = d.FirstOrDefault().Tel,
                service                = d.FirstOrDefault().service,
                ReceptionId            = d.Key,
                DateCurrent            = d.OrderBy(z => z.DateCurrent).FirstOrDefault().DateCurrent,
                VisitCurrentId         = d.OrderBy(z => z.DateCurrent).FirstOrDefault().VisitCurrentId,
                patientId              = d.FirstOrDefault().patientId,
                IdWaitingVisitCurrent  = d.OrderBy(z => z.DateCurrent).FirstOrDefault().IdWaitingVisitCurrent,
                FullName               = d.FirstOrDefault().FullName,
                DossierNumberPermanent = d.FirstOrDefault().DossierNumberPermanent
            });
            lst = lst.Distinct().ToList();
            foreach (var item in lst)
            {
                var lstvisit = db.tblVisits.Where(c => c.IdReception == item.ReceptionId).OrderBy(c => c.VisitDate).ToList();//.Select(c => c.PersianDate);
                for (int i = 1; i <= lstvisit.Count(); i++)
                {
                    tblVisit visit = lstvisit.Skip((i - 1)).Take(1).FirstOrDefault();
                    switch (i)
                    {
                    case 1:
                        item.Date1      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting1 = visit.IdWaiting;
                        break;

                    case 2:
                        item.Date2      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting2 = visit.IdWaiting;
                        break;

                    case 3:
                        item.Date3      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting3 = visit.IdWaiting;
                        break;

                    case 4:
                        item.Date4      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting4 = visit.IdWaiting;
                        break;

                    case 5:
                        item.Date5      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting5 = visit.IdWaiting;
                        break;

                    case 6:
                        item.Date6      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting6 = visit.IdWaiting;
                        break;

                    case 7:
                        item.Date7      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting7 = visit.IdWaiting;
                        break;

                    case 8:
                        item.Date8      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting8 = visit.IdWaiting;
                        break;

                    case 9:
                        item.Date9      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting9 = visit.IdWaiting;
                        break;

                    case 10:
                        item.Date10      = MYHelper.PersianDate(visit.VisitDate);
                        item.IdWaiting10 = visit.IdWaiting;
                        break;

                    default:
                        break;
                    }
                }
            }
            return(Ok(lst));
        }