Exemplo n.º 1
0
        public async Task <IActionResult> Details(string id)
        {
            var c = await persons.GetObject(id);

            //await medicineEffectsRepository.LoadEffects(c);
            return(View(PersonViewModelFactory.Create(c)));
        }
        public async Task <IActionResult> Edit([Bind(patientInfoProperties)] PersonInfoViewModel c)
        {
            var currentDate = DateTime.Now;

            if (!ModelState.IsValid)
            {
                return(View(c));
            }
            var personMed = await personMedicines.GetObject(c.MedicineID, c.ID);

            var perObj = await persons.GetObject(c.ID);

            var dosObj = await dosages.GetObject(c.DosageID);

            dosObj.DbRecord.Description = c.Description;

            if (personMed.DbRecord.Suitability != c.Suitability)
            {
                await personMedicines.DeleteObject(personMed);

                var medObj = await medicines.GetObject(c.MedicineID);

                await personMedicines.AddObject(PersonMedicineObjectFactory.Create(perObj, medObj, c.Suitability, currentDate));
            }
            //await dosages.UpdateObject(dosObj);
            return(RedirectToAction("PatientInfo", PersonViewModelFactory.Create(perObj)));
        }
        public async Task <IActionResult> DosageSchemeMed([Bind(sugProperties)] SuggestionViewModel s, string personId, string button)
        {
            Suitability suitable;
            var         medicineId = s.ID;
            var         perObj     = await persons.GetObject(personId);

            if (button != "prior")
            {
                bool suitableMed = await CheckMedicineSuitability(personId, medicineId);

                if (!suitableMed)
                {
                    var messageContent = await FindConflict(personId, medicineId);

                    ViewBag.Dictionary = messageContent;
                    ModelState.AddModelError(string.Empty, "");
                    ViewBag.AfterError = true;
                    await SetPropertiesPerson(medicineId);

                    ViewBag.DefaultPerson = personId;
                }
            }
            if (!ModelState.IsValid)
            {
                return(View(s));
            }

            var      currentDate = DateTime.Now;
            DateTime?untilDate   = null;

            if (s.Length != null && s.Length != "")
            {
                untilDate = currentDate.AddDays(double.Parse(s.Length));
            }
            var dosageId = Guid.NewGuid().ToString();
            var schemeId = Guid.NewGuid().ToString();
            var medObj   = await medicines.GetObject(medicineId);

            var dosage = DosageObjectFactory.Create(dosageId, s.TypeOfTreatment, personId, medicineId, currentDate, untilDate);
            var scheme = SchemeObjectFactory.Create(schemeId, dosageId, "1", s.Length, s.Amount, s.Times, s.TimeOfDay, currentDate, untilDate);
            var o      = await personMedicines.GetObject(medicineId, personId);

            if (o.DbRecord.MedicineID == "Unspecified")
            {
                suitable = Suitability.Teadmata;
            }
            else
            {
                suitable = Suitability.Jah;
                await personMedicines.DeleteObject(o);
            }
            await personMedicines.AddObject(PersonMedicineObjectFactory.Create(perObj, medObj, suitable, currentDate));

            await dosages.AddObject(dosage);

            await schemes.AddObject(scheme);

            return(RedirectToAction("PatientInfo", PersonViewModelFactory.Create(perObj)));
        }
Exemplo n.º 4
0
        public IActionResult Create(string returnUrl)
        {
            if (String.IsNullOrEmpty(returnUrl))
            {
                returnUrl = Request.Headers["Referer"].ToString();
            }

            return(View("Edit", PersonViewModelFactory.Create(new PersonDto(), returnUrl, PersonTypes, Companies)));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Delete(int id)
        {
            var returnUrl = Request.Headers["Referer"].ToString();

            var person = await _personRepo.GetPerson(id);

            PersonViewModel personVm = PersonViewModelFactory.Delete(person, returnUrl, PersonTypes, Companies);

            return(View("Edit", personVm));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> Edit(int id, string returnUrl = null)
        {
            if (String.IsNullOrEmpty(returnUrl))
            {
                returnUrl = Request.Headers["Referer"].ToString();
            }

            var person = await _personRepo.GetPerson(id);

            PersonViewModel personVm = PersonViewModelFactory.Edit(person, returnUrl, PersonTypes, Companies);

            return(View("Edit", personVm));
        }
        public void CreateNullTest()
        {
            var v = PersonViewModelFactory.Create(null);

            Assert.AreEqual(v.ID, Constants.Unspecified);
            Assert.AreEqual(v.IDCode, Constants.Unspecified);
            Assert.AreEqual(v.FirstName, Constants.Unspecified);
            Assert.AreEqual(v.LastName, Constants.Unspecified);
            Assert.AreEqual(v.Address, Constants.Unspecified);
            Assert.AreEqual(v.Email, Constants.Unspecified);
            Assert.AreEqual(v.PhoneNumber, Constants.Unspecified);
            Assert.AreEqual(v.GetMedicineInfo, GetMedicineInfo.Teadmata);
            Assert.AreEqual(v.ValidFrom, null);
            Assert.AreEqual(v.ValidTo, null);
        }
Exemplo n.º 8
0
        public async Task <IActionResult> Get(int id)
        {
            var person = await _personRepository.GetPersonWithSkills(id);

            if (person == null)
            {
                return(NotFound()); // This makes it return 404; otherwise it will return a 204 (no content)
            }

            var skills          = new Collection <Skill>();
            var skillViewModels = new Collection <SkillViewModel>();

            var personViewModel = PersonViewModelFactory.Build(person);

            return(new ObjectResult(personViewModel));
        }
        public void CreateTest()
        {
            var o = GetRandom.Object <PersonObject>();
            var v = PersonViewModelFactory.Create(o);

            Assert.AreEqual(v.ID, o.DbRecord.ID);
            Assert.AreEqual(v.IDCode, o.DbRecord.IDCode);
            Assert.AreEqual(v.FirstName, o.DbRecord.FirstName);
            Assert.AreEqual(v.LastName, o.DbRecord.LastName);
            Assert.AreEqual(v.Address, o.DbRecord.Address);
            Assert.AreEqual(v.Email, o.DbRecord.Email);
            Assert.AreEqual(v.PhoneNumber, o.DbRecord.PhoneNumber);
            Assert.AreEqual(v.GetMedicineInfo, o.DbRecord.GetMedicineInfo);
            Assert.AreEqual(v.ValidFrom, o.DbRecord.ValidFrom);
            Assert.AreEqual(v.ValidTo, o.DbRecord.ValidTo);
        }
Exemplo n.º 10
0
        public async Task <IActionResult> AddSkill(int git, [FromBody] PersonSkillViewModel personSkillViewModel)
        {
            if (personSkillViewModel == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var person = await _personRepository.GetPersonWithSkills(personSkillViewModel.PersonId);

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

            var skillToAdd = await _skillRepository.GetSingleAsync(personSkillViewModel.SkillId);

            var skillsMetadata = await _metadataRepository.Get();

            var personSkill = new PersonSkill
            {
                Skill         = skillToAdd,
                SkillLevel    = skillsMetadata.SkillLevels.Where(x => x.Code == personSkillViewModel.SkillLevelCode).FirstOrDefault(),
                TimeUsed      = skillsMetadata.TimePeriods.Where(x => x.Code == personSkillViewModel.TimeUsedCode).FirstOrDefault(),
                TimeSinceUsed = skillsMetadata.TimePeriods.Where(x => x.Code == personSkillViewModel.TimeLastUsedCode).FirstOrDefault()
            };

            if (person.Skills == null)
            {
                person.Skills = new Collection <PersonSkill>();
            }
            person.Skills.Add(personSkill);

            await _personRepository.SaveChangesAsync();

            var personViewModel = PersonViewModelFactory.Build(person);

            return(CreatedAtAction(nameof(Get), new { id = personViewModel.LastName }, personViewModel));
        }
Exemplo n.º 11
0
        public async Task <IActionResult> Edit([FromForm] PersonViewModel personVM)
        {
            if (ModelState.IsValid)
            {
                await _personRepo.UpdatePerson(personVM.Person);

                TempData["message"]     = "Your data has been updated successfully.";
                TempData["toasterType"] = ToasterType.success;

                return(RedirectToAction(nameof(Edit), new { id = personVM.Person.Id, returnUrl = personVM.ReturnUrl }));
            }
            else
            {
                TempData["message"]     = "A problem has been ocurred while updating your data.";
                TempData["toasterType"] = ToasterType.info;
            }

            return(View("Edit", PersonViewModelFactory.Edit(personVM.Person, personVM.ReturnUrl, PersonTypes, Companies)));
        }
        public void setNullIfExtremumTest()
        {
            var o = GetRandom.Object <PersonObject>();

            o.DbRecord.ValidFrom = DateTime.MinValue;
            o.DbRecord.ValidTo   = DateTime.MaxValue;
            var v = PersonViewModelFactory.Create(o);

            Assert.AreEqual(v.ID, o.DbRecord.ID);
            Assert.AreEqual(v.IDCode, o.DbRecord.IDCode);
            Assert.AreEqual(v.FirstName, o.DbRecord.FirstName);
            Assert.AreEqual(v.LastName, o.DbRecord.LastName);
            Assert.AreEqual(v.Address, o.DbRecord.Address);
            Assert.AreEqual(v.Email, o.DbRecord.Email);
            Assert.AreEqual(v.PhoneNumber, o.DbRecord.PhoneNumber);
            Assert.AreEqual(v.GetMedicineInfo, o.DbRecord.GetMedicineInfo);
            Assert.AreEqual(v.ValidFrom, null);
            Assert.AreEqual(v.ValidTo, null);
        }
        public async Task <IActionResult> PatientInfo(PersonViewModel model)
        {
            var idCode = model.IDCode;

            try
            {
                PersonObject persona;
                if (model.ID != Constants.Unspecified)
                {
                    persona = await persons.GetObject(model.ID);
                }
                else
                {
                    persona = await persons.GetPersonByIDCode(idCode);
                }


                await personMedicines.LoadMedicines(persona);

                var personView        = PersonViewModelFactory.Create(persona);
                var personSuggestions = await dosages.GetAllDosages(persona.DbRecord.ID);

                foreach (var sug in personSuggestions)
                {
                    var pm = await personMedicines.GetObject(sug.DbRecord.MedicineID, persona.DbRecord.ID);

                    var med = await medicines.GetObject(sug.DbRecord.MedicineID);

                    personView.SuggestionsMade.Add(PersonInfoViewModelFactory.Create(sug, pm, med));
                }
                return(View("PatientInfo", personView));
            }
            catch (Exception e)
            {
                ViewBag.Message = "Sellise id-koodiga inimene puudub!";
                return(View("Index"));
            }
        }
Exemplo n.º 14
0
        public async Task <IActionResult> Create([FromForm] PersonViewModel personVm)
        {
            if (ModelState.IsValid)
            {
                personVm.PersonTypes = default;
                personVm.Companies   = default;


                var newPerson = await _personRepo.AddPerson(personVm.Person);

                TempData["message"]     = "Your data has been submitted successfully.";
                TempData["toasterType"] = ToasterType.success;

                //return RedirectToAction(nameof(Index));

                return(RedirectToAction(nameof(Edit), new { id = newPerson.Id, returnUrl = personVm.ReturnUrl }));
            }

            TempData["message"]     = "A problem has been ocurred while submitting your data.";
            TempData["toasterType"] = ToasterType.info;

            return(View("Edit", PersonViewModelFactory.Create(personVm.Person, personVm.ReturnUrl, PersonTypes, Companies)));
        }
Exemplo n.º 15
0
        public async Task <IActionResult> RemoveSkill(int personId, int personSkillId)
        {
            var person = await _personRepository.GetPersonWithSkills(personId);

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

            var skillToRemove = person.Skills.Where(x => x.Id == personSkillId).SingleOrDefault();

            if (skillToRemove != null)
            {
                person.Skills.Remove(skillToRemove);
                _personSkillRepository.Delete(skillToRemove);
                await _personSkillRepository.SaveChangesAsync();

                await _personRepository.SaveChangesAsync();
            }

            var personViewModel = PersonViewModelFactory.Build(person);

            return(new ObjectResult(personViewModel));
        }
        public async Task <IActionResult> SendInfo(PersonInfoViewModel c)
        {
            await Task.Delay(500);

            var person = await persons.GetObject(c.ID);

            var informationPreference = person.DbRecord.GetMedicineInfo;
            var medicine = await medicines.GetObject(c.MedicineID);

            var dosage = await dosages.GetObject(c.DosageID);

            await schemes.LoadSchemes(dosage);

            var schems = dosage.SchemesInUse;
            var scheme = schems[0];

            char[] males   = new[] { '1', '3', '5', '7', '9' };
            char[] females = new[] { '2', '4', '6', '8', '0' };
            string sex;

            if (males.Contains(person.DbRecord.IDCode[0]))
            {
                sex = "härra";
            }
            else
            {
                sex = "preili/proua";
            }

            string link;

            if (medicine.DbRecord.Spc.Contains("http"))
            {
                link = medicine.DbRecord.Spc;
            }
            else
            {
                link = "http://ravimiregister.ravimiamet.ee/Data/SPC/" + medicine.DbRecord.Spc;
            }
            string header     = "Tervist lp " + sex + " " + person.DbRecord.LastName + "@" + "@";
            string suggestion = "Siin on teile kirjutatud soovitus Dr. Mardna poolt kuupäeval: " + c.ValidFrom +
                                "@" + "Isikukood : " + person.DbRecord.IDCode +
                                "@" + "Eesnimi : " + person.DbRecord.FirstName +
                                "@" + "Perekonnanimi : " + person.DbRecord.LastName +
                                "@" + "Ravimi nimi : " + medicine.DbRecord.Name +
                                "@" + "Ravimi manustamise viis : " + medicine.DbRecord.FormOfInjection +
                                "@" + "Ravimi tugevus : " + medicine.DbRecord.Strength;

            if (scheme.DbRecord.Length != Constants.Unspecified)
            {
                suggestion += "@" + "@" + "------ANNUSTAMINE------" +
                              "@" + "Ravimi manustamise tüüp : " + dosage.DbRecord.TypeOfTreatment +
                              "@" + "Ravikuuri pikkus : " + scheme.DbRecord.Length +
                              "@" + "Ravimit manustada ühe korraga : " + scheme.DbRecord.Amount +
                              "@" + "Ravimit manustada kordi päevas : " + scheme.DbRecord.Times +
                              "@" + "Eelistatud manustamise aeg : " + scheme.DbRecord.TimeOfDay;
            }

            suggestion += "@" + "Lisainfot ravimi kohta ning annustamise info leiad: " + link + " (annustamine alates peatükk 4.2)";
            string finalMessage = header + suggestion;

            finalMessage = finalMessage.Replace("@", System.Environment.NewLine);
            if (informationPreference == GetMedicineInfo.Email)
            {
                if (person.DbRecord.Email != null && person.DbRecord.Email.Contains('@'))
                {
                    SendEmail(finalMessage, person);
                }
            }
            else if (informationPreference == GetMedicineInfo.SMS)
            {
                if (person.DbRecord.PhoneNumber != null)
                {
                    //sendSms(finalmessage, person);
                }
            }
            return(RedirectToAction("PatientInfo", PersonViewModelFactory.Create(person)));
        }
Exemplo n.º 17
0
        public async Task <IActionResult> Delete(string id)
        {
            var c = await persons.GetObject(id);

            return(View(PersonViewModelFactory.Create(c)));
        }