private List <PatientsHappinessChangeViewModel> GetPatientsHappinessChanges() { IList <HappinessChangeDto> data = patientRepository.GetHappinessChangeData(); return((from dto in data let demog = dfdRepository.GetFormDataByFormId(dto.DemographicFormId) let happiness1 = hfdRepository.GetFormDataByFormId(dto.HappinessDay1FormId).HappinessLevel let happiness10 = hfdRepository.GetFormDataByFormId(dto.HappinessDay10FormId).HappinessLevel where !String.IsNullOrEmpty(happiness1.Value) && !String.IsNullOrEmpty(happiness10.Value) select new PatientsHappinessChangeViewModel { ClinicId = dto.ClinicId, ClinicName = dto.ClinicName, DoctorId = dto.DoctorId, DoctorName = dto.DoctorName, PatientId = dto.PatientId, PatientNumber = dto.PatientNumber, Gender = (demog != null) ? EnumHelper.GetDescription <Gender>(demog.Sex.Value) : "Unknown", Race = (demog != null) ? EnumHelper.GetDescription <Race>(demog.Race.Value) : "Unknown", HappinessChange = (decimal.Parse(happiness10.Value) - decimal.Parse(happiness1.Value)) / 100 }).ToList()); }
public void PopulateDay1Visit(Visit day1Visit, Visit baselineVisit) { //happiness form int dice; dice = randomGenerator.Next(100); if (dice < FormIsFilledChance) { var happinessForm = day1Visit.Forms.First(f => f.FormType == FormType.Happiness); happinessForm.FormState = FormState.Completed; var happinessFormData = happinessFormDataRepository.GetFormDataByFormId(happinessForm.Id); int happinessLevel; dice = randomGenerator.Next(100); if (dice < 5) { happinessLevel = 0; } else if (dice < 25) { happinessLevel = 25; } else if (dice < 90) { happinessLevel = 50; } else if (dice < 98) { happinessLevel = 75; } else { happinessLevel = 100; } happinessFormData.HappinessLevel.Value = happinessLevel.ToString(); } //electrocardiogram form dice = randomGenerator.Next(100); if (dice < FormIsFilledChance) { var electrocardiogramForm = day1Visit.Forms.First(f => f.FormType == FormType.Electrocardiogram); electrocardiogramForm.FormState = FormState.Completed; var electrocardiogramFormData = electrocardiogramFormDataRepository.GetFormDataByFormId(electrocardiogramForm.Id); electrocardiogramFormData.ElectrocardiogramAttachment.File = new Attachment { FileName = string.Format("{0}_cardiogramm.png", day1Visit.Patient.Caption), FileSize = 0, Id = electrocardiogramForm.Id, MimeType = "image/png", StorageFileName = "ecg1.png" }; attachmentRepository.Add(electrocardiogramFormData.ElectrocardiogramAttachment.File); } //vitals form dice = randomGenerator.Next(100); if (dice < FormIsFilledChance) { var vitalsOriginalForm = baselineVisit.Forms.First(f => f.FormType == FormType.Vitals); if (vitalsOriginalForm.FormState == FormState.Completed) { var vitalsOriginalFormData = vitalsFormDataRepository.GetFormDataByFormId(vitalsOriginalForm.Id); var vitalsForm = day1Visit.Forms.First(f => f.FormType == FormType.Vitals); vitalsForm.FormState = FormState.Completed; var vitalsFormData = vitalsFormDataRepository.GetFormDataByFormId(vitalsForm.Id); vitalsFormData.ActualTime.Value = day1Visit.VisitTime.Value.AddMinutes(randomGenerator.Next(18) * 10).ToString(); FillVitalsBasedOnPreviousVisit(vitalsOriginalFormData, vitalsFormData, vitalsForm); } } }