示例#1
0
        public IHttpActionResult AddHospital(HospitalDetails _hospitalDetail)
        {
            HospitalDetails _HospitalDetail = _hospitalDetailsRepository.Find(
                x => x.HospitalName.ToLower() == _hospitalDetail.HospitalName.ToLower() ||
                x.HospitalName.ToLower() == _hospitalDetail.HospitalName.ToLower() ||
                x.Mobile == _hospitalDetail.Mobile ||
                x.Email.ToLower() == _hospitalDetail.Email.ToLower() ||
                x.Website.ToLower() == _hospitalDetail.Website.ToLower()
                ).FirstOrDefault();

            if (_HospitalDetail == null)
            {
                HospitalDetails hospitalDetail = new HospitalDetails
                {
                    HospitalName = _hospitalDetail.HospitalName,
                    Address      = _hospitalDetail.Address,
                    Mobile       = _hospitalDetail.Mobile,
                    Email        = _hospitalDetail.Email,
                    Website      = _hospitalDetail.Website,
                };
                return(Ok(_hospitalDetailsRepository.Insert(hospitalDetail)));
            }
            else
            {
                return(Ok(_HospitalDetail));
            }
        }
        private async Task <HospitalDetails> ExtractHospitalDetailsAsync(MigrationDbNotification rawNotification)
        {
            var details = new HospitalDetails();

            details.HospitalId          = rawNotification.NtbsHospitalId;
            details.CaseManagerUsername = rawNotification.CaseManager;
            var consultant = RemoveCharactersNotIn(ValidationRegexes.CharacterValidationWithNumbersForwardSlashExtended, rawNotification.Consultant);

            details.Consultant = consultant;
            // details.TBServiceCode is set below, based on the hospital

            if (details.HospitalId is Guid guid)
            {
                var tbService = (await _referenceDataRepository.GetTbServiceFromHospitalIdAsync(guid));
                if (tbService == null)
                {
                    Log.Error($"No TB service exists for hospital with guid {guid}");
                }
                else
                {
                    // It's OK to only set this where it exists
                    // - the service missing will come up in notification validation
                    details.TBServiceCode = tbService.Code;
                }
            }

            // we are not doing the same check to case manager here, because leaving it empty would make it pass
            // validation - it is not a mandatory field. we don't want to lose it where it exists, so that check
            // is explicitly done during the validation step

            return(details);
        }
示例#3
0
 public void AddHospitalDetail(HospitalDetails hospitalDetails)
 {
     using (MyWebApplicationContext db = new MyWebApplicationContext())
     {
         db.HospitalDetails.Add(hospitalDetails);
         db.SaveChanges();
     }
 }
        public async Task <ActionResult> InsertHospitalDetails()
        {
            List <Hospital>  hm = new List <Hospital>();
            IHospitalDetails hospitalDetails = new HospitalDetails();

            hm = await hospitalDetails.GetHospitalDetails();

            return(View(hm));
        }
示例#5
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var userStore       = new UserStore <ApplicationUser>(new ApplicationDbContext());
            var manager         = new UserManager <ApplicationUser>(userStore);
            var userFindByEmail = manager.FindByEmail(context.UserName);
            var user            = userFindByEmail != null ? await manager.FindAsync(userFindByEmail.UserName, context.Password)
                : await manager.FindAsync(context.UserName, context.Password);

            if (user == null)
            {
                context.SetError("Please check username and password");
            }
            else
            {
                if (user.JobType == 2)
                {
                    hospitalDetails  = _hospitalDetailsRepository.Find(x => x.HospitalId.Trim() == user.Id.Trim()).FirstOrDefault();
                    jobType          = hospitalDetails.jobType;
                    isEmailConfirmed = hospitalDetails.EmailConfirmed;
                }
                else if (user.JobType == 1)
                {
                    clientDetailRepo = _clientDetailRepo.Find(x => x.ClientId.Trim() == user.Id.Trim()).FirstOrDefault();
                    jobType          = clientDetailRepo.Jobtype;
                    isEmailConfirmed = clientDetailRepo.EmailConfirmed;
                }
                else if (user.JobType == 3)
                {
                    doctor           = _doctorRepository.Find(x => x.DoctorId.Trim() == user.Id.Trim()).FirstOrDefault();
                    jobType          = doctor.jobType;
                    isEmailConfirmed = true;
                }
                else if (user.JobType == 4)
                {
                    secretary        = _secretaryRepository.Find(x => x.SecretaryId.Trim() == user.Id.Trim()).FirstOrDefault();
                    jobType          = secretary.jobType;
                    isEmailConfirmed = true;
                }
                if (!isEmailConfirmed)
                {
                    context.SetError("Please verify your email address");
                }
                else
                {
                    var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                    identity.AddClaim(new Claim("UserId", user.Id));
                    identity.AddClaim(new Claim("Username", user.UserName));
                    identity.AddClaim(new Claim("Email", user.Email));
                    identity.AddClaim(new Claim("FirstName", user.FirstName));
                    identity.AddClaim(new Claim("LastName", user.LastName == null? "" : user.LastName));
                    identity.AddClaim(new Claim("LoggedOn", DateTime.Now.ToString()));
                    identity.AddClaim(new Claim("PhoneNo", user.PhoneNumber == null? " " : user.PhoneNumber));
                    identity.AddClaim(new Claim("JobType", user.JobType.ToString()));
                    context.Validated(identity);
                }
            }
        }
        public IHttpActionResult PostHospitalDetails(HospitalDetails hospitalDetails)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            dbQueryFetcher.AddHospitalDetail(hospitalDetails);
            return(CreatedAtRoute("DefaultApi", new { id = hospitalDetails.id }, hospitalDetails));
        }
        public IHttpActionResult GetHospitalDetails(int id)
        {
            HospitalDetails hospitalDetails = dbQueryFetcher.GetHospitalDetail(id);

            if (hospitalDetails == null)
            {
                return(NotFound());
            }

            return(Ok(hospitalDetails));
        }
示例#8
0
        // PUT: api/UpdateHospitalProfile/5
        public IHttpActionResult UpdateHospitalProfile(string hospitalId, Delta <HospitalDetails> obj)
        {
            HospitalDetails _hospitalDetails = _hospitaldetailsRepo.Find(x => x.HospitalId == hospitalId).FirstOrDefault();

            if (_hospitalDetails != null)
            {
                obj.Patch(_hospitalDetails);
                var result = _hospitaldetailsRepo.Update(_hospitalDetails);
                return(Ok(result));
            }

            return(Ok());
        }
示例#9
0
        public int AddHospitalDetail(string clientId, AccountModel model, IHospitalDetailsRepository _hospitalDetailsRepository)
        {
            HospitalDetails _hospitalDetail = new HospitalDetails
            {
                HospitalId   = clientId,
                HospitalName = model.FirstName,
                Email        = model.Email,
                jobType      = model.jobType,
                Mobile       = Convert.ToInt32(model.PhoneNumber),
                FacilityId   = model.FacilityId
            };

            return(_hospitalDetailsRepository.Insert(_hospitalDetail));
        }
        public IHttpActionResult PutHospitalDetails(int id, HospitalDetails hospitalDetails)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != hospitalDetails.id)
            {
                return(BadRequest());
            }

            dbQueryFetcher.ModifyHospitalDetail(id, hospitalDetails);
            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#11
0
        public bool DeleteHospitalDetail(int id)
        {
            using (MyWebApplicationContext db = new MyWebApplicationContext())
            {
                HospitalDetails hospitalDetails = db.HospitalDetails.Find(id);
                if (hospitalDetails == null)
                {
                    return(false);
                }

                db.HospitalDetails.Remove(hospitalDetails);
                db.SaveChanges();
                return(true);
            }
        }
示例#12
0
        public Doctors getDoctorDetailByDoctorId(string doctorid)
        {
            Doctors         _doctor          = new Doctors();
            List <Feedback> feedbacks        = new List <Feedback>();
            var             disease          = _diseaseDetailRepo.GetAll().OrderBy(x => x.DiseaseType).ToList();
            Doctor          d                = _doctorRepo.Find(x => x.DoctorId == doctorid).FirstOrDefault();
            var             feedback         = _feedbackRepo.Find(x => x.PageId == doctorid);
            var             hospitalService  = _hospitalServicesRepository.GetAll().OrderBy(x => x.HospitalServices).ToList();
            var             hospitalAmenitie = _hospitalAmenitieRepository.GetAll().OrderBy(x => x.HospitalAmenities).ToList();
            HospitalDetails hospitals        = _hospitaldetailsRepo.Find(x => x.HospitalId == d.HospitalId).FirstOrDefault();

            if (d != null)
            {
                _doctor = new Doctors
                {
                    DoctorId             = d.DoctorId,
                    FirstName            = d.FirstName,
                    LastName             = d.LastName,
                    Email                = d.Email,
                    PhoneNumber          = d.PhoneNumber,
                    AlternatePhoneNumber = d.AlternatePhoneNumber,
                    Gender               = d.Gender,
                    Experience           = d.Experience,
                    FeeMoney             = d.FeeMoney,
                    Language             = d.Language,
                    AgeGroupGender       = d.AgeGroupGender,
                    Degree               = d.Degree,
                    AboutUs              = d.AboutUs,
                    HospitalName         = hospitals.HospitalName,
                    HospitalId           = hospitals.HospitalId,
                    HospitalEmail        = hospitals.Email,
                    HospitalAddress      = hospitals.Address,
                    HospitalPicUrl       = $"{constant.imgUrl}/" + hospitals.ProfilePath,
                    aboutMe              = d.AboutUs,
                    DoctorAvilability    = _doctorAvailabilityRepo.Find(x => x.DoctorId == d.DoctorId),
                    Specialization       = getSpecialization(d.Specialization, disease),
                    Amenities            = getHospitalAmenities(hospitals.Amenities, hospitalAmenitie),
                    Services             = getHospitalService(hospitals.Services, hospitalService),
                    Feedback             = _feedbackRepo.Find(x => x.PageId == doctorid),
                    Likes                = _feedbackRepo.Find(x => x.PageId == doctorid && x.ILike == true).Count(),
                    location             = "",
                    ImgUrl               = $"{constant.imgUrl}/ProfilePic/Doctor/{d.DoctorId}.Jpeg",
                    website              = hospitals.Website,
                    Address              = hospitals.Address
                };
            }
            return(_doctor);
        }
示例#13
0
        public HttpResponseMessage getAssignPrescription(string patientId, string doctorId)
        {
            //var doctors = _doctorRepo.GetAll().ToList();
            //var hospitals = _hospitaldetailsRepo.GetAll().ToList();

            List <PatientPrescriptionList> _patientPres = new List <PatientPrescriptionList>();

            var prescription = _prescriptionRepo.GetAll().ToList();
            var presAssign   = _prescriptionAssignRepo.GetAll().ToList();
            var result       = (from PatientPrescription in prescription
                                where PatientPrescription.DoctorId == doctorId && PatientPrescription.PatientId == patientId ||
                                (from PatientPrescriptionAssign in presAssign
                                 where
                                 PatientPrescriptionAssign.AssignId == doctorId && PatientPrescriptionAssign.AssignBy == patientId &&
                                 Convert.ToString(PatientPrescriptionAssign.IsActive) == "True"
                                 select new
            {
                PatientPrescriptionAssign.PatientPresId
            }).Contains(new { PatientPresId = PatientPrescription.Id })
                                select PatientPrescription).ToList();

            foreach (var res in result)
            {
                Doctor                  doctor    = _doctorRepo.Find(x => x.DoctorId == res.DoctorId).FirstOrDefault();
                HospitalDetails         hospitals = _hospitaldetailsRepo.Find(x => x.HospitalId == doctor.HospitalId).FirstOrDefault();
                PatientPrescriptionList _pres     = new PatientPrescriptionList();
                _pres.DoctorFirstName   = doctor.FirstName;
                _pres.DoctorLastName    = doctor.LastName;
                _pres.DoctorEmail       = doctor.Email;
                _pres.DoctorPhoneNumber = doctor.PhoneNumber;
                _pres.DoctorImgUrl      = $"{constant.imgUrl}/ProfilePic/Doctor/{doctor.DoctorId}.Jpeg";
                _pres.HospitalName      = hospitals.HospitalName;
                _pres.HospitalEmail     = hospitals.Email;
                _pres.HospitalAddress   = hospitals.Address;
                _pres.HospitalPicUrl    = $"{constant.imgUrl}/" + hospitals.ProfilePath;

                _pres.DoctorId     = res.DoctorId;
                _pres.Id           = res.Id;
                _pres.PatientId    = res.PatientId;
                _pres.Prescription = res.Prescription;
                _pres.Report       = res.Report;
                _pres.CreatedBy    = res.CreatedBy;
                _pres.DateEntered  = res.DateEntered;
                _patientPres.Add(_pres);
            }

            return(Request.CreateResponse(HttpStatusCode.Accepted, _patientPres.OrderBy(x => x.Id)));
        }
示例#14
0
        public void GetHelpDetails_Should_Return_Correctly(int painLevel, int expectedPainLevel, int expectedLength, int expectedProcessTime, int expectedWaitTime)
        {
            var hospital = new HospitalDetails
            {
                Id       = 444,
                Name     = "name",
                Location = new LocationDetails
                {
                    Latitude  = 999,
                    Longitude = 888
                },
                Queue = new []
                {
                    new QueueDetails
                    {
                        PainLevel        = 1,
                        PatientCount     = 111,
                        AverageQueueTime = 3
                    },
                    new QueueDetails
                    {
                        PainLevel        = 2,
                        PatientCount     = 222,
                        AverageQueueTime = 4
                    },
                    new QueueDetails
                    {
                        PainLevel        = 3,
                        PatientCount     = 333,
                        AverageQueueTime = 2
                    }
                }
            };

            var illnessId = 123;
            var actual    = BittnServiceHelper.GetHelpDetails(new [] { hospital }, illnessId, painLevel);

            actual.Should().HaveCount(1);
            actual.First().Id.Should().Be(hospital.Id);
            actual.First().IllnessId.Should().Be(illnessId);
            actual.First().PainLevel.Should().Be(expectedPainLevel);
            actual.First().Location.Should().Be(hospital.Location);
            actual.First().AverageProcessTime.Should().Be(expectedProcessTime);
            actual.First().QueueLength.Should().Be(expectedLength);
            actual.First().WaitingTime.Should().Be(expectedWaitTime);
        }
示例#15
0
        public HttpResponseMessage doctorDetails(string doctorid)
        {
            var             disease          = _diseaseDetailRepo.GetAll().OrderBy(x => x.DiseaseType).ToList();
            Doctor          d                = _doctorRepo.Find(x => x.DoctorId == doctorid).FirstOrDefault();
            var             feedback         = _feedbackRepo.Find(x => x.PageId == doctorid);
            var             hospitalService  = _hospitalServicesRepository.GetAll().OrderBy(x => x.HospitalServices).ToList();
            var             hospitalAmenitie = _hospitalAmenitieRepository.GetAll().OrderBy(x => x.HospitalAmenities).ToList();
            HospitalDetails hospitals        = _hospitaldetailsRepo.Find(x => x.HospitalId == d.HospitalId).FirstOrDefault();

            if (d != null)
            {
                Doctors _doctor = new Doctors
                {
                    DoctorId             = d.DoctorId,
                    FirstName            = d.FirstName,
                    LastName             = d.LastName,
                    Email                = d.Email,
                    PhoneNumber          = d.PhoneNumber,
                    AlternatePhoneNumber = d.AlternatePhoneNumber,
                    Gender               = d.Gender,
                    Experience           = d.Experience,
                    FeeMoney             = d.FeeMoney,
                    Language             = d.Language,
                    AgeGroupGender       = d.AgeGroupGender,
                    Degree               = d.Degree,
                    AboutUs              = d.AboutUs,
                    HospitalName         = hospitals.HospitalName,
                    aboutMe              = d.AboutUs,
                    DoctorAvilability    = _doctorAvailabilityRepo.Find(x => x.DoctorId == d.DoctorId),
                    Specialization       = getSpecialization(d.Specialization, disease),
                    Amenities            = getHospitalAmenities(hospitals.Amenities, hospitalAmenitie),
                    Services             = getHospitalService(hospitals.Services, hospitalService),
                    Feedback             = _feedbackRepo.Find(x => x.PageId == doctorid),
                    Likes                = _feedbackRepo.Find(x => x.PageId == doctorid && x.ILike == true).Count(),
                    location             = "",
                    ImgUrl               = $"{constant.imgUrl}/Doctor/{d.DoctorId}.Jpeg",
                    website              = hospitals.Website,
                    Address              = hospitals.Address
                };
                return(Request.CreateResponse(HttpStatusCode.Accepted, _doctor));
            }
            return(Request.CreateResponse(HttpStatusCode.NotFound));
        }
        protected override async Task <IActionResult> PrepareAndDisplayPageAsync(bool isBeingSubmitted)
        {
            HospitalDetails = Notification.HospitalDetails;
            await SetNotificationProperties(isBeingSubmitted, HospitalDetails);
            await SetDropdownsAsync();

            FormattedNotificationDate = Notification.NotificationDate.ConvertToFormattedDate();

            if (HospitalDetails.ShouldValidateFull)
            {
                ValidationService.TrySetFormattedDate(
                    Notification,
                    nameof(Notification),
                    nameof(Notification.NotificationDate),
                    FormattedNotificationDate);
                TryValidateModel(HospitalDetails, HospitalDetails.GetType().Name);
            }

            return(Page());
        }
示例#17
0
        public IHttpActionResult emailVerification(string userName)
        {
            if (userName.Contains("NCH"))
            {
                HospitalDetails hospitalDetails = _hospitalDetailsRepository.Find(x => x.HospitalId.Trim() == userName.Trim()).FirstOrDefault();
                if (hospitalDetails != null)
                {
                    hospitalDetails.EmailConfirmed = true;
                    return(Ok(_hospitalDetailsRepository.Update(hospitalDetails)));
                }
            }
            else if (userName.Contains("NCS"))
            {
                Secretary secretaryDetail = _secretaryRepository.Find(p => p.SecretaryId == userName).FirstOrDefault();
                if (secretaryDetail != null)
                {
                    secretaryDetail.EmailConfirmed = true;
                    return(Ok(_secretaryRepository.Update(secretaryDetail)));
                }
            }
            else if (userName.Contains("NCD"))
            {
                Doctor doctorDetail = _doctorRepository.Find(p => p.DoctorId == userName).FirstOrDefault();
                if (doctorDetail != null)
                {
                    doctorDetail.EmailConfirmed = true;
                    return(Ok(_doctorRepository.Update(doctorDetail)));
                }
            }
            else
            {
                ClientDetail clientDetail = _clientDetailRepo.Find(p => p.ClientId == userName).FirstOrDefault();
                if (clientDetail != null)
                {
                    clientDetail.EmailConfirmed = true;
                    return(Ok(_clientDetailRepo.Update(clientDetail)));
                }
            }

            return(Ok());
        }
        public IHttpActionResult UpdateHospitalAddress()
        {
            var             httpRequest      = HttpContext.Current.Request;
            string          hospitalId       = httpRequest.Form["ClientId"];
            string          Address          = httpRequest.Form["Address"];
            string          Country          = httpRequest.Form["Country"];
            string          City             = httpRequest.Form["City"];
            string          PinCode          = httpRequest.Form["PinCode"];
            HospitalDetails _hospitalDetails = _hospitaldetailsRepo.Find(x => x.HospitalId == hospitalId).FirstOrDefault();

            if (_hospitalDetails != null)
            {
                _hospitalDetails.Address  = Address;
                _hospitalDetails.Country  = Country;
                _hospitalDetails.City     = City;
                _hospitalDetails.PostCode = PinCode;
                var result = _hospitaldetailsRepo.Update(_hospitalDetails);
                return(Ok(result));
            }

            return(Ok());
        }
示例#19
0
        public bool ModifyHospitalDetail(int id, HospitalDetails hospitalDetails)
        {
            using (MyWebApplicationContext db = new MyWebApplicationContext())
            {
                db.Entry(hospitalDetails).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                    return(true);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!HospitalDetailsExists(id))
                    {
                        return(false);
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }
示例#20
0
        private async Task <IEnumerable <ValidationResult> > ValidateAndSetCaseManager(HospitalDetails details)
        {
            var validationsResults = new List <ValidationResult>();

            if (string.IsNullOrEmpty(details.CaseManagerUsername))
            {
                return(validationsResults);
            }

            var caseManager =
                await _referenceDataRepository.GetCaseManagerByUsernameAsync(details.CaseManagerUsername);

            if (caseManager != null)
            {
                return(validationsResults);
            }

            var message = $"Case manager {details.CaseManagerUsername} is not present in NTBS database";

            validationsResults.Add(new ValidationResult(message, new[] { nameof(details.CaseManagerUsername) }));

            return(validationsResults);
        }
        public async Task UpdateHospitalDetailsAsync(Notification notification, HospitalDetails hospitalDetails)
        {
            _context.SetValues(notification.HospitalDetails, hospitalDetails);

            await _notificationRepository.SaveChangesAsync();
        }