Exemplo n.º 1
0
        public Doctor AddDoctor(AddDoctorRequest request)
        {
            _context = new DoctorsDbContext();
            var doctor = new Doctor {
                FirstName = request.FirstName,
                LastName  = request.LastName,
                Email     = request.Email
            };

            _context.Doctors.Add(doctor);
            _context.SaveChanges();
            return(doctor);
        }
Exemplo n.º 2
0
        public Doctor GetDoctor(int idDoctor)
        {
            _context = new DoctorsDbContext();
            Doctor doctor;

            try
            {
                doctor = _context.Doctors
                         .First(x => x.IdDoctor == idDoctor);
            }
            catch
            {
                return(null);
            }
            return(doctor);
        }
Exemplo n.º 3
0
        public bool DeleteDoctor(DeleteDoctorRequest request)
        {
            _context = new DoctorsDbContext();
            Doctor doctor;

            try
            {
                doctor = _context.Doctors.First(d => d.IdDoctor == Convert.ToInt32(request.IdDoctor));
            }
            catch
            {
                return(false);
            }
            _context.Remove(doctor);
            _context.SaveChanges();
            return(true);
        }
Exemplo n.º 4
0
        public Doctor ChangeDoctorEmail(ChangeDoctorEmailRequest request)
        {
            _context = new DoctorsDbContext();
            Doctor doctor;

            try
            {
                doctor = _context.Doctors.Where(x => x.FirstName == request.FirstName)
                         .First(x => x.LastName == request.LastName);
            }
            catch
            {
                return(null);
            }
            doctor.Email = request.Email;
            _context.SaveChanges();
            return(doctor);
        }
        public string Post()
        {
            DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>();
            RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser");

            try
            {
                string reqType = this.ReadQueryStringData("reqType");
                string ipStr   = this.ReadPostData();

                DoctorsDbContext dbContext = new DoctorsDbContext(connString);
                if (reqType == "addPatientData")
                {
                    List <VisitSummaryModel> patDataList = DanpheJSONConvert.
                                                           DeserializeObject <List <VisitSummaryModel> >(ipStr);
                    if (patDataList != null)
                    {
                        patDataList.ForEach(patData =>
                        {
                            patData.CreatedOn = DateTime.Now;
                            patData.CreatedBy = currentUser.CreatedBy;
                            dbContext.VisitSummary.Add(patData);
                        });

                        dbContext.SaveChanges();
                        responseData.Results = patDataList;
                    }
                    else
                    {
                        throw new Exception("Invalid Patient object.");
                    }
                }

                responseData.Status = "OK";
            }
            catch (Exception ex)
            {
                responseData.Status       = "Failed";
                responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString();
            }
            return(DanpheJSONConvert.SerializeObject(responseData, true));
        }
        public string Get(string reqType, int visitId)
        {
            DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>();

            try
            {
                DoctorsDbContext dbContext = new DoctorsDbContext(connString);
                if (reqType == "getPatientData")
                {
                    var patientDataList = (from data in dbContext.VisitSummary
                                           where data.VisitId == visitId
                                           select data).ToList();
                    responseData.Results = patientDataList;
                }

                responseData.Status = "OK";
            }
            catch (Exception ex)
            {
                responseData.Status       = "Failed";
                responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString();
            }
            return(DanpheJSONConvert.SerializeObject(responseData, true));
        }
        public string Put()
        {
            DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>();
            RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser");

            try
            {
                string reqType = this.ReadQueryStringData("reqType");
                string ipStr   = this.ReadPostData();

                DoctorsDbContext dbContext = new DoctorsDbContext(connString);
                if (reqType == "updatePatientData")
                {
                    List <VisitSummaryModel> patDataList = DanpheJSONConvert.DeserializeObject <List <VisitSummaryModel> >(ipStr);

                    patDataList.ForEach(data =>
                    {
                        data.ModifiedOn             = DateTime.Now;
                        data.ModifiedBy             = currentUser.CreatedBy;
                        dbContext.Entry(data).State = EntityState.Modified;
                        dbContext.Entry(data).Property(u => u.CreatedBy).IsModified = false;
                        dbContext.Entry(data).Property(u => u.CreatedOn).IsModified = false;
                    });

                    dbContext.SaveChanges();
                    responseData.Results = patDataList;
                }
                responseData.Status = "OK";
            }
            catch (Exception ex)
            {
                responseData.Status       = "Failed";
                responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString();
            }
            return(DanpheJSONConvert.SerializeObject(responseData, true));
        }
Exemplo n.º 8
0
 public IEnumerable <Doctor> GetDoctors()
 {
     _context = new DoctorsDbContext();
     return(_context.Doctors.ToList());
 }
Exemplo n.º 9
0
 public DoctorsContextDbService(DoctorsDbContext context)
 {
     _context = new DoctorsDbContext();
 }
Exemplo n.º 10
0
 public EfDbService(DoctorsDbContext dbContext)
 {
     Context = dbContext;
 }
Exemplo n.º 11
0
 public DoctorsDbService(DoctorsDbContext context)
 {
     _context = context;
 }
Exemplo n.º 12
0
 public DoctorsController(DoctorsDbContext db)
 {
     _db = db;
 }
Exemplo n.º 13
0
 SqlServerDbServices(DoctorsDbContext context)
 {
     _context = context;
 }
 public CodeFirstComunication(DoctorsDbContext dbc)
 {
     _dbc = dbc;
 }
Exemplo n.º 15
0
 public EfDoctorsDbServise(DoctorsDbContext context)
 {
     _context = context;
 }
Exemplo n.º 16
0
        public string Get(string reqType, string status, int patientId, int patientVisitId, DateTime?fromDate,
                          DateTime?toDate, int employeeId)
        {
            DanpheHTTPResponse <object> responseData = new DanpheHTTPResponse <object>();

            try
            {
                responseData.Status = "OK";
                DoctorsDbContext dbContext = new DoctorsDbContext(connString);


                if (reqType == "patientOverview" && patientId != 0)
                {
                    PatientModel       patientModel = new PatientModel();
                    PatientDbContext   patDbContext = new PatientDbContext(connString);
                    AdmissionDbContext admDbContext = new AdmissionDbContext(connString);

                    patientModel = (from pat in patDbContext.Patients
                                    where pat.PatientId == patientId
                                    select pat).Include(a => a.Visits.Select(v => v.Vitals))
                                   .Include(a => a.Problems)
                                   .Include(a => a.Allergies)
                                   .Include(a => a.Addresses)
                                   .Include(a => a.LabRequisitions)
                                   .Include(a => a.UploadedFiles)
                                   //.Include(a => a.ImagingReports)
                                   .Include(a => a.ImagingItemRequisitions)
                                   .Include(a => a.MedicationPrescriptions)
                                   .FirstOrDefault <PatientModel>();

                    //this will remove all other orders from past and only orders which matches visit-id will be shown (lab order / imaging order)
                    if (patientModel != null && patientModel.Visits != null && patientModel.Visits.Count > 0)
                    {
                        patientModel.LabRequisitions         = patientModel.LabRequisitions.Where(a => a.PatientVisitId == patientVisitId && a.BillingStatus != "returned").ToList();
                        patientModel.ImagingItemRequisitions = patientModel.ImagingItemRequisitions.Where(a => a.PatientVisitId == patientVisitId && a.BillingStatus != "returned").ToList();
                    }

                    //add vitals to patient
                    if (patientModel != null && patientModel.Visits != null && patientModel.Visits.Count > 0)
                    {
                        patientModel.Vitals = patientModel.Visits.SelectMany(a => a.Vitals).ToList();
                        //take last three vitals only..
                        patientModel.Vitals = patientModel.Vitals.OrderByDescending(a => a.CreatedOn).Take(3).ToList();
                    }

                    //add profilePic info to patient
                    if (patientModel != null && patientModel.UploadedFiles != null && patientModel.PatientId == patientId)
                    {
                        patientModel.ProfilePic = (from p in patientModel.UploadedFiles
                                                   where p.IsActive == true && p.FileType == "profile-pic"
                                                   select p).FirstOrDefault();
                        if (patientModel.ProfilePic != null)
                        {
                            patientModel.ProfilePic.FileBase64String = Convert.ToBase64String(patientModel.ProfilePic.FileBinaryData);
                        }
                    }

                    //remove resolved problems
                    if (patientModel != null && patientModel.Problems != null && patientModel.Problems.Count > 0)
                    {
                        patientModel.Problems = patientModel.Problems.Where(p => p.IsResolved == false).ToList();
                    }

                    MasterDbContext   masterDbContext = new MasterDbContext(connString);
                    PharmacyDbContext phrmDbContext   = new PharmacyDbContext(connString);

                    if (patientModel.CountrySubDivisionId != 0)
                    {
                        var subDiv = (from subdiv in masterDbContext.CountrySubDivision
                                      where subdiv.CountrySubDivisionId == patientModel.CountrySubDivisionId
                                      select subdiv.CountrySubDivisionName
                                      ).FirstOrDefault();

                        patientModel.CountrySubDivisionName = subDiv;
                    }

                    //add medication prescription if any.
                    //need to get it as pharmacy model later on, now we're mapping this as MedicationPrescription model only.
                    if (patientModel != null)
                    {
                        var patPrescriptions = phrmDbContext.PHRMPrescriptionItems.Where(p => p.PatientId == patientModel.PatientId).ToList();
                        if (patPrescriptions != null && patPrescriptions.Count > 0)
                        {
                            var allItems  = phrmDbContext.PHRMItemMaster.ToList();
                            var presItems = (from pres in patPrescriptions
                                             join itm in allItems
                                             on pres.ItemId equals itm.ItemId
                                             select new MedicationPrescriptionModel()
                            {
                                MedicationId = itm.ItemId,
                                MedicationName = itm.ItemName,
                                Frequency = pres.Frequency.HasValue ? pres.Frequency.Value.ToString() : "",
                                Duration = pres.HowManyDays.Value,
                                CreatedOn = pres.CreatedOn
                            }).ToList();

                            patientModel.MedicationPrescriptions = presItems;
                        }


                        //var presc = patPrescriptions[0];
                    }

                    //this is for getting current patients admission details (for current visit)
                    var bedInfo = (from txn in admDbContext.PatientBedInfos
                                   join bed in admDbContext.Beds on txn.BedId equals bed.BedId
                                   join ward in admDbContext.Wards on txn.WardId equals ward.WardId
                                   where txn.PatientId == patientId && txn.PatientVisitId == patientVisitId && txn.EndedOn == null
                                   select new
                    {
                        bed.BedNumber,
                        ward.WardName
                    }).FirstOrDefault();

                    if (bedInfo != null)
                    {
                        patientModel.BedNo    = bedInfo.BedNumber;
                        patientModel.WardName = bedInfo.WardName;
                    }

                    ////we're taking allergen from generic list: sud-15Jun'18
                    //List<PHRMGenericModel> genericList = phrmDbContext.PHRMGenericModel.ToList();
                    ////add name to allergies
                    //if (patientModel != null && patientModel.Allergies != null && patientModel.Allergies.Count > 0)
                    //{
                    //    foreach (var allergy in patientModel.Allergies)
                    //    {
                    //        if (allergy.AllergenAdvRecId != 0 && allergy.AllergenAdvRecId != null)
                    //        {
                    //            allergy.AllergenAdvRecName = genericList.Where(a => a.GenericId == allergy.AllergenAdvRecId)
                    //                                         .FirstOrDefault().GenericName;
                    //        }
                    //        if (allergy.AllergyType == "Others") {
                    //            allergy.AllergenAdvRecName = allergy.Others;
                    //        }

                    //    }
                    //}

                    responseData.Results = patientModel;
                }

                else if (reqType == "otherRequestsOfPatient")
                {
                    BillingDbContext billingDbContext = new BillingDbContext(base.connString);
                    var itemList = (from billItemRequisition in billingDbContext.BillItemRequisitions
                                    where (billItemRequisition.PatientId == patientId &&
                                           billItemRequisition.PatientVisitId == patientVisitId &&
                                           (billItemRequisition.DepartmentName.ToLower() != "lab" && billItemRequisition.DepartmentName.ToLower() != "radiology"))
                                    select billItemRequisition
                                    ).ToList();

                    responseData.Status  = "OK";
                    responseData.Results = itemList;
                }

                else if (reqType == "providertodaysvisit")
                {
                    if (toDate == null)
                    {
                        RbacUser currentUser = HttpContext.Session.Get <RbacUser>("currentuser");
                        int      providerId  = currentUser.EmployeeId;//check if we've to pass userid or employeeid--sudarshan 15mar'17
                        var      today       = DateTime.Today;
                        //show only today's visits for the provider.. and if the visittype is inpatient then  the addmission status shouled be admitted ..Dharam 9th Sept 2017..
                        var visitList = (from visit in dbContext.Visits.Include("Admission").Include("Patient")
                                         where visit.VisitStatus == status &&
                                         (DbFunctions.TruncateTime(visit.VisitDate) == DbFunctions.TruncateTime(today) || visit.Admission.AdmissionStatus == "admitted") &&
                                         visit.ProviderId == providerId && visit.BillingStatus != "returned"
                                         select visit).ToList()
                                        .OrderBy(v => v.VisitDate).ThenBy(v => v.VisitTime).ToList();
                        responseData.Results = visitList;
                    }
                    else // visit records according to selected Date
                    {
                        RbacUser currentUser  = HttpContext.Session.Get <RbacUser>("currentuser");
                        int      providerId   = currentUser.EmployeeId;//check if we've to pass userid or employeeid--sudarshan 15mar'17
                        var      departmentId = dbContext.Employees.Where(a => a.EmployeeId == providerId).Select(a => a).FirstOrDefault();
                        //show only today's visits for the provider.. and if the visittype is inpatient then  the addmission status shouled be admitted ..Dharam 9th Sept 2017..
                        var visitList = (from visit in dbContext.Visits.Include("Admission").Include("Patient")
                                         where DbFunctions.TruncateTime(visit.VisitDate) == DbFunctions.TruncateTime(toDate) && // visit.VisitStatus == status &&
                                         (DbFunctions.TruncateTime(visit.VisitDate) == DbFunctions.TruncateTime(toDate) || visit.Admission.AdmissionStatus == "admitted") &&
                                         visit.DepartmentId == departmentId.DepartmentId && visit.BillingStatus != "returned"
                                         select visit).ToList()
                                        .OrderBy(v => v.VisitDate).ThenBy(v => v.VisitTime).ToList().GroupBy(a => a.ProviderName)
                                        .Select(v => new { ProviderName = v.Select(p => p.ProviderName).FirstOrDefault(), visit = v }).ToList();

                        responseData.Results = visitList;
                    }
                }
                //get all the past visits of the provider
                else if (reqType == "providerpastvisits")
                {
                    RbacUser currentUser  = HttpContext.Session.Get <RbacUser>("currentuser");
                    int      providerId   = currentUser.EmployeeId;//check if we've to pass userid or employeeid--sudarshan 15mar'17
                    var      departmentId = dbContext.Employees.Where(a => a.EmployeeId == providerId).Select(a => a).FirstOrDefault();
                    //gets all visits earlier than today for this provider.. and if the visittype is inpatient then  the addmission status shouled be discharged ..Dharam 9th Sept 2017..
                    var visitList = (from visit in dbContext.Visits.Include("Admission").Include("Patient")
                                     where visit.DepartmentId == departmentId.DepartmentId
                                     //&& (visit.Admission == null || visit.Admission.AdmissionStatus == "discharged")
                                     select visit).ToList()
                                    .Where(v => v.VisitDate.Date >= fromDate && v.VisitDate <= toDate && v.BillingStatus != "returned")
                                    .OrderByDescending(v => v.VisitDate).ThenByDescending(v => v.VisitTime).ToList();
                    responseData.Results = visitList;
                }

                else if (reqType == "providerDeptVisits")
                {
                    RbacUser        currentUser  = HttpContext.Session.Get <RbacUser>("currentuser");
                    int             providerId   = currentUser.EmployeeId;
                    MasterDbContext mstDbContext = new MasterDbContext(base.connString);
                    int?            DeptId       = (from emp in mstDbContext.Employees
                                                    where emp.EmployeeId == providerId
                                                    select emp.DepartmentId).FirstOrDefault();
                    var empList = mstDbContext.Employees.ToList();
                    var visits  = (from visit in dbContext.Visits.Include("Admission").Include("Patient")
                                   where visit.ProviderId != providerId
                                   //&& (visit.Admission == null || visit.Admission.AdmissionStatus == "discharged")
                                   select visit).ToList()
                                  .Where(v => v.VisitDate.Date >= fromDate && v.VisitDate <= toDate)
                                  .OrderByDescending(v => v.VisitDate).ThenByDescending(v => v.VisitTime).ToList();

                    List <VisitModel> visitLists = (from v in visits
                                                    join e in empList on v.ProviderId equals e.EmployeeId
                                                    where e.DepartmentId == DeptId
                                                    select v).ToList();
                    responseData.Results = visitLists;
                }
                else if (reqType == "departmentByEmployeeId")
                {
                    var depid       = dbContext.Employees.Where(a => a.EmployeeId == employeeId).Select(a => a.DepartmentId).FirstOrDefault();
                    var department  = dbContext.Departments.Where(a => a.DepartmentId == depid).Select(a => a.DepartmentName).FirstOrDefault();
                    var deptDoctors = dbContext.Employees.Where(a => a.DepartmentId == depid && a.Salutation == "Dr")
                                      .Select(a => new
                    {
                        a.DepartmentId,
                        a.EmployeeId,
                        ProviderName = a.Salutation + ". " + a.FirstName + " " + (string.IsNullOrEmpty(a.MiddleName) ? " " : a.MiddleName + " ") + a.LastName
                    }).ToList();
                    responseData.Results = new
                    {
                        DepartmentId   = depid,
                        DepartmentName = department,
                        Providers      = deptDoctors
                    };
                }
                else if (reqType == "patientVisitType")
                {
                    var result = (from type in dbContext.Visits group type by type.VisitType into x select x.Select(a => a.VisitType).Distinct().ToList());
                    responseData.Results = result;
                }

                else
                {
                    responseData.Status       = "Failed";
                    responseData.ErrorMessage = "invalid patient id";
                }
            }
            catch (Exception ex)
            {
                responseData.Status       = "Failed";
                responseData.ErrorMessage = ex.Message + " exception details:" + ex.ToString();
            }

            return(DanpheJSONConvert.SerializeObject(responseData, true));
        }
Exemplo n.º 17
0
 public DoctorsDbService(DoctorsDbContext dbContext)
 {
     _dbContext = dbContext;
 }
Exemplo n.º 18
0
 public DoctorController(DoctorsDbContext context)
 {
     _context = context;
 }
Exemplo n.º 19
0
 public SqlServerDoctorsDbService(DoctorsDbContext context)
 {
     _context = context;
 }