Example #1
0
 private void constructAlert(Patient p)
 {
     Alert a = new Alert
     {
         PatientId = p.PatientId,
         AlertDate = DateTime.UtcNow,
         AlertTypeId = 1 // 1 = "missed medication"
     };
     db.Alerts.Add(a);
     db.SaveChanges();
 }
        public ActionResult Create(Patient patient)
        {
            if (ModelState.IsValid)
            {
                patient.RegisteredBy = User.Identity.Name;
                patient.ResponseReceived = true; //first day - change later if this doesn't work
                db.Patients.Add(patient);
                db.SaveChanges();
                sendRegisterConfirmation(patient);
               // uncomment this call for testing
               // sendDemoReminders(patient.PatientId);
                Trace.WriteLine(String.Format("Patient has this phone number {0}, {1}, {2}", patient.Phone, patient.FamilyPhone1, patient.FamilyPhone2));
                return RedirectToAction("Index");
            }

            populateTimeZones(null);
            populateGenderList(null);
            return View(patient);
        }
Example #3
0
 public string ConstructMsg(Patient p)
 {
     DateTime now = DateTime.UtcNow;
     StringBuilder msg = ConstructTitle(p);
     int num_drugs = p.Drugs.Count;
     if (num_drugs == 0)
     {
         msg.Append("No medicines for today.\n");
     }
     else if (num_drugs == 1)
     {
         msg.Append("Take 1 medicine as prescribed for you.\n");
     }
     else
     {
         msg.AppendFormat("Take {0} medicines as prescribed for you.\n", num_drugs);
     }
     List<Test> testMessages = p.Tests.ToList().FindAll(t => dateInRange(t.TestDate,now,now.AddDays(10)));
     if (testMessages.Count > 0)
     {
         msg.Append("Checkups on the following dates: ");
         foreach (var t in testMessages)
         {
             msg.Append(ConstructTestMsg(t));
         }
         msg.Remove(msg.Length - 2, 2);
         msg.AppendLine();
     }
     List<Message> customMessages = p.Messages.ToList().FindAll(m => dateInRange(now, m.StartDate, m.EndDate));
     if (customMessages.Count > 0)
     {
         msg.Append("Note:\n");
         foreach (var c in customMessages)
         {
             msg.Append(c.MessageText);
             msg.AppendLine();
         }
         msg.Remove(msg.Length - 1, 1);
     }
     return msg.ToString();
 }
 private bool isUrlValid(Patient patient)
 {
     //check of url hacking
     if (patient == null || !patient.IsRegistedBy(User.Identity.Name))
     {
         return false;
     }
     return true;
 }
 /*
  * For Prototype Testing Only
  */
 //private void sendDemoReminders(int id)
 //{
 //    ISchedulerFactory schedulePool = new StdSchedulerFactory();
 //    IScheduler sched = schedulePool.GetScheduler();
 //    sched.Start();
 //    //set up reminder sender
 //    try
 //    {
 //        JobDetail reminderJob = new JobDetail("AlertBuilder", null, typeof(SendReminderJob));
 //        reminderJob.JobDataMap["pid"] = id;
 //        Trigger trigger = TriggerUtils.MakeMinutelyTrigger("t1", 2, 1);
 //        trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow.AddMinutes(1));
 //        sched.ScheduleJob(reminderJob, trigger);
 //        //set up warning sender
 //        JobDetail warningJob = new JobDetail("Warnings", null, typeof(SendWarningJob));
 //        warningJob.JobDataMap["pid"] = id;
 //        Trigger trigger2 = TriggerUtils.MakeSecondlyTrigger("test2", 10, 0);
 //        trigger2.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow).AddMinutes(2);
 //        sched.ScheduleJob(warningJob, trigger2);
 //    }
 //    catch (Exception e)
 //    {
 //        Trace.WriteLine(e.Message);
 //        throw e;
 //    }
 //}
 private void sendRegisterConfirmation(Patient p)
 {
     string msg = String.Format("Dear {0}, welcome to Medivise! Hope you get well soon!\n", p.FirstName);
     TwilioSender sender = new TwilioSender();
     sender.SendSMS(p.Phone, msg);
     Trace.WriteLine(msg);
 }
 public ActionResult SaveAndEditTimeline(Patient patient)
 {
     if (ModelState.IsValid)
     {
         db.Entry(patient).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Edit", "MsgTemplate", new { id = patient.PatientId });
     }
     return View(patient);
 }
 public ActionResult Edit(Patient patient)
 {
     if (ModelState.IsValid)
     {
         patient.RegisteredBy = User.Identity.Name;
         db.Entry(patient).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     populateTimeZones(patient.TimeZone);
     populateGenderList(patient.Gender);
     return View(patient);
 }
Example #8
0
 private StringBuilder ConstructTitle(Patient p)
 {
     StringBuilder title = new StringBuilder();
     title.AppendFormat("Hi {0}:\n", p.FirstName);
     return title;
 }