Ejemplo n.º 1
0
        /// <summary>
        /// Creates the nurse
        /// </summary>
        /// <param name="registeredUser"></param>
        /// <returns></returns>
        public Patient CreateRegisteredPatient(RegisterPatientVm registeredUser)
        {
            var newPatient = new Patient();
            var appUser    = _repo.Query <ApplicationUser>().Where(au => au.Email == registeredUser.Email).FirstOrDefault();

            newPatient.CheckInDate          = registeredUser.CheckInDate.ToUniversalTime();
            newPatient.RoomNumber           = registeredUser.RoomNumber;
            newPatient.BedNumber            = registeredUser.BedNumber;
            newPatient.Notes                = registeredUser.Notes;
            newPatient.NurseId              = registeredUser.NurseId;
            newPatient.Dependency           = registeredUser.Dependency;
            newPatient.IsActive             = true;
            newPatient.DateModifiedIfActive = DateTime.UtcNow;
            newPatient.ApplicationUser      = appUser;
            newPatient.ApplicationUserId    = appUser.Id;
            newPatient.FirebasePatientKey   = registeredUser.FirebasePatientKey;
            _repo.Add(newPatient);
            _repo.SaveChanges();

            if (registeredUser.NurseId != 0)
            {
                var assignedNurse = _repo.Query <Nurse>().Include(n => n.ApplicationUser).Where(n => n.Id == newPatient.NurseId).FirstOrDefault();

                var patientAssignedNurse = new NursePatient();
                patientAssignedNurse.Patient   = newPatient;
                patientAssignedNurse.PatientId = newPatient.Id;
                patientAssignedNurse.Nurse     = assignedNurse;
                patientAssignedNurse.NurseId   = assignedNurse.Id;

                _repo.Add <NursePatient>(patientAssignedNurse);
            }
            _repo.SaveChanges();
            return(newPatient);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This handles the Edit patient
        /// </summary>
        /// <param name="assignedNurseId"></param>
        /// <param name="patientAccountUser"></param>
        /// <param name="patient"></param>
        /// <returns></returns>
        public Patient SavePatient(int assignedNurseId, ApplicationUser patientAccountUser, Patient patient)
        {
            var appUser = _repo.Query <ApplicationUser>().Where(au => au.Email == patientAccountUser.Email).FirstOrDefault();

            if (patient.Id == 0)
            {
                patient.CheckInDate          = patient.CheckInDate.ToUniversalTime();
                patient.Dependency           = patient.Dependency;
                patient.IsActive             = true;
                patient.DateModifiedIfActive = DateTime.UtcNow;
                patient.ApplicationUser      = appUser;
                patient.ApplicationUserId    = appUser.Id;
                patient.NurseId            = assignedNurseId;
                patient.FirebasePatientKey = patient.FirebasePatientKey;
                _repo.Add(patient);
            }
            else
            {
                var patientToEdit = _repo.Query <Patient>().Where(p => p.Id == patient.Id).Include(p => p.ApplicationUser).FirstOrDefault();

                patientToEdit.ApplicationUser.FirstName = patient.ApplicationUser.FirstName;
                patientToEdit.ApplicationUser.LastName  = patient.ApplicationUser.LastName;
                patientToEdit.RoomNumber         = patient.RoomNumber;
                patientToEdit.BedNumber          = patient.BedNumber;
                patientToEdit.Dependency         = patient.Dependency;
                patientToEdit.IsActive           = true;
                patientToEdit.CheckInDate        = patient.CheckInDate.ToUniversalTime();
                patientToEdit.CheckOutDate       = patient.CheckOutDate.ToUniversalTime();
                patientToEdit.NurseId            = assignedNurseId;
                patientToEdit.Notes              = patient.Notes;
                patientToEdit.FirebasePatientKey = patient.FirebasePatientKey;
            }

            //saves in the nurse patient join table if a nurse is selected
            if (assignedNurseId != 0 || patient.NurseId != 0)
            {
                //adds to the join table for new or redit
                var assignedNurse = _repo.Query <Nurse>().Include(n => n.ApplicationUser).Where(n => n.Id == assignedNurseId).FirstOrDefault();

                var patientAssignedNurse = new NursePatient();
                patientAssignedNurse.Patient   = patient;
                patientAssignedNurse.PatientId = patient.Id;
                patientAssignedNurse.Nurse     = assignedNurse;
                patientAssignedNurse.NurseId   = assignedNurseId;

                var nursePatient = _repo.Query <NursePatient>().Where(np => np.PatientId == patient.Id).Include(np => np.Nurse).ThenInclude(n => n.ApplicationUser).FirstOrDefault();
                if (nursePatient == null)
                {
                    _repo.Add <NursePatient>(patientAssignedNurse);
                }
                else
                {
                    _repo.Delete <NursePatient>(nursePatient);
                    _repo.Add <NursePatient>(patientAssignedNurse);
                }
            }
            _repo.SaveChanges();
            return(patient);
        }
Ejemplo n.º 3
0
        public async static Task Initialize(IServiceProvider serviceProvider)
        {
            var db = serviceProvider.GetService <ApplicationDbContext>();

            if (db.Users.Any())
            {
                return;
            }
            var userManager = serviceProvider.GetService <UserManager <ApplicationUser> >();

            //db.Database.EnsureDeleted();
            db.Database.EnsureCreated();

            var nurseUser1 = await userManager.FindByNameAsync("*****@*****.**");

            if (nurseUser1 == null)
            {
                nurseUser1 = new ApplicationUser
                {
                    UserName             = "******",
                    Email                = "*****@*****.**",
                    FirstName            = "Nurse Rosie",
                    LastName             = "Whitney",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15)
                };
                await userManager.CreateAsync(nurseUser1, "Secret123!");

                await userManager.AddClaimAsync(nurseUser1, new Claim("IsNurse", "true"));
            }

            var nurseUser2 = await userManager.FindByNameAsync("*****@*****.**");

            if (nurseUser2 == null)
            {
                nurseUser2 = new ApplicationUser
                {
                    UserName             = "******",
                    Email                = "*****@*****.**",
                    FirstName            = "Nurse Jess",
                    LastName             = "Hunter",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15)
                };
                await userManager.CreateAsync(nurseUser2, "Secret123!");

                await userManager.AddClaimAsync(nurseUser2, new Claim("IsNurse", "true"));
            }
            var patientUser1 = await userManager.FindByNameAsync("*****@*****.**");

            if (patientUser1 == null)
            {
                patientUser1 = new ApplicationUser
                {
                    Email                = "*****@*****.**",
                    UserName             = "******",
                    FirstName            = "Jackie",
                    LastName             = "Ross",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15)
                };
                await userManager.CreateAsync(patientUser1, "Secret123!");

                await userManager.AddClaimAsync(patientUser1, new Claim("IsPatient", "true"));
            }
            var patientUser2 = await userManager.FindByNameAsync("*****@*****.**");

            if (patientUser2 == null)
            {
                patientUser2 = new ApplicationUser
                {
                    Email                = "*****@*****.**",
                    UserName             = "******",
                    FirstName            = "Aaron",
                    LastName             = "Mikluscak",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15)
                };
                await userManager.CreateAsync(patientUser2, "Secret123!");

                await userManager.AddClaimAsync(patientUser2, new Claim("IsPatient", "true"));
            }
            db.SaveChanges();

            var nurseUserId    = db.Users.Where(u => u.LastName == nurseUser1.LastName).FirstOrDefault().Id;
            var patientUserId  = db.Users.Where(u => u.LastName == patientUser1.LastName).FirstOrDefault().Id;
            var nurse2UserId   = db.Users.Where(u => u.LastName == nurseUser2.LastName).FirstOrDefault().Id;
            var patient2UserId = db.Users.Where(u => u.LastName == patientUser2.LastName).FirstOrDefault().Id;

            //add Nurse nurse
            if (!db.Nurses.Any())
            {
                var nurse1 = new Nurse
                {
                    ApplicationUserId = nurseUserId,
                    Messages          = new List <Message>()
                };

                var nurse2 = new Nurse
                {
                    ApplicationUserId = nurse2UserId,
                    Messages          = new List <Message>()
                };

                db.Nurses.AddRange(nurse1, nurse2);
                db.SaveChanges();
            }
            ;



            //add Patient patient
            if (!db.Patients.Any())
            {
                var patient1 = new Patient
                {
                    ApplicationUserId    = patientUserId,
                    RoomNumber           = 1,
                    BedNumber            = 1,
                    CheckInDate          = new DateTime(2016, 7, 11, 12, 45, 15),
                    Notes                = "Grumpy person, needs lots of patient",
                    Dependency           = 2,
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15)
                };

                var patient2 = new Patient
                {
                    ApplicationUserId    = patient2UserId,
                    RoomNumber           = 1,
                    BedNumber            = 2,
                    CheckInDate          = new DateTime(2016, 7, 11, 12, 45, 15),
                    Notes                = "Very independent, easy to work with",
                    Dependency           = 3,
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 7, 11, 12, 45, 15)
                };
                db.Patients.AddRange(patient1, patient2);
                db.SaveChanges();
            }

            var hunter         = db.Users.Where(u => u.LastName == "Hunter").FirstOrDefault().Id;
            var nurseWhitney   = db.Nurses.Where(n => n.ApplicationUserId == hunter).FirstOrDefault();
            var mikluscak      = db.Users.Where(u => u.LastName == "Mikluscak").FirstOrDefault().Id;
            var whitneyCreated = db.Users.Where(u => u.LastName == "Whitney").FirstOrDefault().Id;
            var nurse          = db.Nurses.Where(n => n.ApplicationUserId == whitneyCreated).FirstOrDefault();
            var rossCreated    = db.Users.Where(u => u.LastName == "Ross").FirstOrDefault().Id;


            var patientId1 = db.Patients.Where(p => p.ApplicationUserId == mikluscak).FirstOrDefault();

            var patientId2 = db.Patients.Where(p => p.ApplicationUserId == rossCreated).FirstOrDefault();

            if (!db.NursePatients.Any())
            {
                var nurseId1 = db.Nurses.Where(n => n.ApplicationUserId == hunter).FirstOrDefault().Id;
                //var patientId1 = db.Patients.Where(p => p.ApplicationUserId == mikluscak).FirstOrDefault();
                var nurseId2 = db.Nurses.Where(n => n.ApplicationUserId == whitneyCreated).FirstOrDefault().Id;
                //var patientId2 = db.Patients.Where(p => p.ApplicationUserId == rossCreated).FirstOrDefault();
                patientId1.NurseId = nurseId1;
                patientId2.NurseId = nurseId2;

                var nursePatients = new NursePatient[]
                {
                    new NursePatient
                    {
                        NurseId   = nurseId1,
                        PatientId = patientId1.Id
                    },
                    new NursePatient
                    {
                        NurseId   = nurseId2,
                        PatientId = patientId2.Id
                    }
                };
                db.NursePatients.AddRange(nursePatients);

                db.SaveChanges();
            }



            if (!db.Messages.Any())
            {
                var nurse1Messages = new List <Message>
                {
                    new Message {
                        Patient = patientId1, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 12, 45, 15)
                    },
                    new Message {
                        Patient = patientId1, MessageString = "Food", TimeRequested = new DateTime(2016, 7, 11, 1, 36, 40)
                    },
                    new Message {
                        Patient = patientId1, MessageString = "Emergency", TimeRequested = new DateTime(2016, 7, 11, 2, 03, 55)
                    }
                };

                var nurse2Messages = new List <Message>
                {
                    new Message {
                        Patient = patientId2, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 10, 00, 00)
                    },
                    new Message {
                        Patient = patientId2, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 10, 15, 02)
                    },
                    new Message {
                        Patient = patientId2, MessageString = "Water", TimeRequested = new DateTime(2016, 7, 11, 08, 30, 04)
                    }
                };
                nurseWhitney.Messages.AddRange(nurse1Messages);
                nurse.Messages.AddRange(nurse2Messages);
                db.SaveChanges();
            }


            // Ensure db
            db.Database.EnsureCreated();

            // Ensure Stephen (IsAdmin)
            var stephen = await userManager.FindByNameAsync("*****@*****.**");

            if (stephen == null)
            {
                // create user
                stephen = new ApplicationUser
                {
                    UserName             = "******",
                    Email                = "*****@*****.**",
                    FirstName            = "Stephen",
                    LastName             = "Walther",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15)
                };
                await userManager.CreateAsync(stephen, "Secret123!");

                // add claims
                await userManager.AddClaimAsync(stephen, new Claim("IsAdmin", "true"));

                await userManager.AddClaimAsync(stephen, new Claim("IsNurse", "true"));
            }

            // Ensure Jerry (IsAdmin)
            var jerry = await userManager.FindByNameAsync("*****@*****.**");

            if (jerry == null)
            {
                // create user
                jerry = new ApplicationUser
                {
                    UserName             = "******",
                    Email                = "*****@*****.**",
                    FirstName            = "Jerry",
                    LastName             = "Morris",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15)
                };
                await userManager.CreateAsync(jerry, "Secret123!");

                // add claims
                await userManager.AddClaimAsync(jerry, new Claim("IsAdmin", "true"));

                await userManager.AddClaimAsync(jerry, new Claim("IsNurse", "true"));
            }

            // Ensure Sharon (IsAdmin)
            var sharon = await userManager.FindByNameAsync("*****@*****.**");

            if (sharon == null)
            {
                // create user
                sharon = new ApplicationUser
                {
                    UserName             = "******",
                    Email                = "*****@*****.**",
                    FirstName            = "Sharon",
                    LastName             = "Kuan",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15)
                };
                await userManager.CreateAsync(sharon, "Secret123!");

                // add claims
                await userManager.AddClaimAsync(sharon, new Claim("IsAdmin", "true"));

                await userManager.AddClaimAsync(sharon, new Claim("IsNurse", "true"));
            }

            // Ensure Reno (IsAdmin)
            var reno = await userManager.FindByNameAsync("*****@*****.**");

            if (reno == null)
            {
                // create user
                reno = new ApplicationUser
                {
                    UserName             = "******",
                    Email                = "*****@*****.**",
                    FirstName            = "Reno",
                    LastName             = "McGalla",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15)
                };
                await userManager.CreateAsync(reno, "Secret123!");

                // add claims
                await userManager.AddClaimAsync(reno, new Claim("IsAdmin", "true"));

                await userManager.AddClaimAsync(reno, new Claim("IsNurse", "true"));
            }


            // Ensure Mike (not IsAdmin)
            var mike = await userManager.FindByNameAsync("*****@*****.**");

            if (mike == null)
            {
                // create user
                mike = new ApplicationUser
                {
                    UserName             = "******",
                    Email                = "*****@*****.**",
                    FirstName            = "Mike",
                    LastName             = "White",
                    IsActive             = true,
                    DateModifiedIfActive = new DateTime(2016, 6, 28, 12, 45, 15)
                };
                await userManager.CreateAsync(mike, "Secret123!");
            }
        }