public void SetFilled() { Refilled = true; RefillDate = DateTime.Now; NotificationSender.SendFilledNotification(this); DatabaseRefillService.Update(this); }
/** * Sets a notification as responded to. Since the only response requried * by an email, other than ignoring it, is YES it simply starts a refill * * @receives - refill response link from sent emails */ public ActionResult Respond() { try { var otp = DatabaseEmailOtpService.GetByCode(RouteData.Values["otp"].ToString()); var notification = DatabaseNotificationService.GetById(otp.NotificationId); var patient = DatabasePatientService.GetById(notification.PatientId); if (otp.IsActive()) { if (patient.object_active) { notification.NotificationResponse = "Refill"; DatabaseNotificationService.Update(notification); var refill = DatabaseRefillService.GetByPrescriptionId(DatabasePrescriptionService.GetByPatientId(patient.PatientId).PrescriptionId); refill.RefillIt = true; DatabaseRefillService.Update(refill); DatabaseEmailOtpService.Disable(otp.Id); return(RefillSuccess()); } else { return(RefillFailure()); } } else { return(ExpiredOtp()); } } catch (Exception) { return(BadLink()); } }
public ActionResult RefillResponse(long id) { string digits = Request["Digits"]; System.Diagnostics.Debug.WriteLine(Request["To"]); var notification = DatabaseNotificationService.GetById(id); var user = DatabasePatientService.GetById(notification.PatientId); if (digits.Contains("1")) { XDocument xml = null; if (user != null) { notification.NotificationResponse = Request["digits"]; DatabaseNotificationService.Update(notification); var refill = DatabaseRefillService.GetByPrescriptionId(DatabasePrescriptionService.GetByPatientId(user.PatientId).PrescriptionId); refill.RefillIt = true; DatabaseRefillService.Update(refill); xml = new XDocument( new XElement("Response", new XElement("Say", "Your refill will be ready shortly.") ) ); } else { xml = new XDocument( new XElement("Response", new XElement("Say", "couldn't find refill") ) ); } return(new XmlActionResult(xml)); } else if (digits.Contains("9")) { var xml = new XDocument( new XElement("Response", new XElement("Say", "Connecting you to a pharmacist."), new XElement("Dial", DatabasePharmacyService.GetById(user.PharmacyId).PharmacyPhone) ) ); return(new XmlActionResult(xml)); } else { var xml = new XDocument( new XElement("Response", new XElement("Say", "Unrecognized Input, Goodbye") ) ); return(new XmlActionResult(xml)); } }
public ActionResult DeleteRefill(long id) { Refill r = DatabaseRefillService.GetById(id); r.RefillIt = false; DatabaseRefillService.Update(r); return(RefillListView()); }
public ActionResult SetFilled(long id) { Refill r = DatabaseRefillService.GetById(id); r.SetFilled(); DatabaseRefillService.Update(r); return(RedirectToAction("RefillListView", "Pharmacy")); }
//Sends test emails with working callbacks to the email specified public string SendTestEmail() { var u = new User(); var p = new Patient(); var n = new Notification(); var pr = new Prescription(); var r = new Refill(); u.Email = "*****@*****.**"; // PUT YOUR EMAIL HERE TO TEST u.FirstName = "Test"; u.LastName = "User"; u.Phone = "+14055555555"; u.UserId = DatabaseUserService.Insert(u); p.UserId = u.UserId; p.PharmacyId = 1; p.DateOfBirth = DateTime.Now; p.PreferedContactTime = DateTime.Now; p.ContactMethod = Patient.PrimaryContactMethod.Email; p.PersonCode = "0"; p.SendBirthdayMessage = true; p.SendRefillMessage = true; p.PatientId = DatabasePatientService.Insert(p); pr.PatientId = p.PatientId; pr.PrescriptionDaysSupply = 30; pr.PrescriptionRefills = 3; pr.PrescriptionName = "Tylenol"; pr.PrescriptionNumber = 1; pr.PrescriptionUpc = "ABC123"; pr.PrescriptionDateFilled = DateTime.Now; pr.PrescriptionId = DatabasePrescriptionService.Insert(pr); r.RefillIt = false; r.PrescriptionId = pr.PrescriptionId; r.Refilled = false; r.RefillDate = DateTime.Now; r.RefillId = DatabaseRefillService.Insert(r); n.PatientId = p.PatientId; n.Type = Notification.NotificationType.Refill; n.NotificationMessage = "This is a test email for a refill"; n.ScheduledTime = DateTime.Now; n.SentTime = null; n.Sent = false; n.NotificationId = DatabaseNotificationService.Insert(n); EmailService.SendNotification(n); EmailService.SendReset(u); return("Sent an notification and reset email to test account"); }
public string AddFakePresRefillNotif(long pid) { var pres = new Prescription { PatientId = pid, PrescriptionName = "Test Prescription", PrescriptionNumber = 12345, PrescriptionRefills = 3, PrescriptionDateFilled = System.DateTime.Now.AddDays(-27), PrescriptionDaysSupply = 30, PrescriptionUpc = "123456789" }; pres.PrescriptionId = DatabasePrescriptionService.Insert(pres); var refill = new Refill(pres); refill.RefillIt = false; refill.RefillId = DatabaseRefillService.Insert(refill); return("Sucesss"); }
public ActionResult RefillListView() { var refills = DatabaseRefillService.GetAllActive((long)Session["pharm_id"]); var ready = DatabaseRefillService.GetRespondedActive((long)Session["pharm_id"]); List <Refill> readyList = new List <Refill>(); foreach (var r in ready) { if (!r.Refilled) { readyList.Add(r); } } var prescription = DatabasePrescriptionService.GetAll(); Dictionary <long, Prescription> prescriptionDict = new Dictionary <long, Prescription>(); foreach (var p in prescription) { prescriptionDict.Add(p.PrescriptionId, p); } return(View("RefillListView", Tuple.Create(readyList, refills, prescriptionDict))); }
public ActionResult SmsResponse() { var messagingResponse = new MessagingResponse(); System.Diagnostics.Debug.WriteLine("SMS Response" + " " + Request["from"] + " " + Request["body"]); if (Request["body"].ToLower() == "yes") { var users = DatabaseUserService.GetMultipleByPhone(Request["from"]); Patient user = null; Notification newest = null; foreach (var u in users) { var patT = DatabasePatientService.GetByUserIdActive(u.UserId); var notificationsT = DatabaseNotificationService.GetByPatientId(patT.PatientId); var newestT = notificationsT[0]; foreach (var n in notificationsT) { if (newestT.SentTime > n.SentTime) { newestT = n; } } if (newestT.Sent && newestT.SentTime > DateTime.Now.AddMinutes(-10)) { user = patT; newest = newestT; } } user.LoadUserData(); newest.NotificationResponse = Request["body"]; DatabaseNotificationService.Update(newest); var pres = DatabasePrescriptionService.GetByPatientId(user.PatientId); var refill = DatabaseRefillService.GetByPrescriptionId(pres.PrescriptionId); refill.RefillIt = true; DatabaseRefillService.Update(refill); messagingResponse.Message("Thanks, your prescription will be ready shortly"); } else if (Request["body"].ToLower() == "stop") { var user = DatabaseUserService.GetByPhoneActive(Request["from"]); var pat = DatabasePatientService.GetByUserIdActive(user.UserId); var notifications = DatabaseNotificationService.GetByPatientId(pat.PatientId); var newest = notifications[0]; foreach (var n in notifications) { if (newest.SentTime < n.SentTime) { newest = n; } } if (newest.Type == Notification.NotificationType.Refill) { pat.SendRefillMessage = false; messagingResponse.Message("You have been unsubscribed from refill notifications"); } else if (newest.Type == Notification.NotificationType.Birthday) { pat.SendBirthdayMessage = false; messagingResponse.Message("You have been unsubscribed from birthday notifications"); } else if (newest.Type == Notification.NotificationType.Ready) { pat.SendRefillMessage = false; messagingResponse.Message("You have been unsubscribed from refill notifications"); } DatabasePatientService.Update(pat); } else if (Request["body"].ToLower() == "stop all") { var user = DatabaseUserService.GetByPhoneActive(Request["from"]); var pat = DatabasePatientService.GetByUserIdActive(user.UserId); pat.ContactMethod = Patient.PrimaryContactMethod.OptOut; } return(new TwiMLResult(messagingResponse)); }