Exemple #1
0
        private static string GetRootContentSection(string contentRoot, RequestAssessmentPcsVo s, int order)
        {
            var result = contentRoot;

            if (s.Sections[order] != null && s.Sections[order].SectionQuestions.Count > 0)
            {
                foreach (var item in s.Sections[order].SectionQuestions)
                {
                    result = result.Replace("{{Order" + item.Order + "}}", item.Content);
                }
            }
            return(result);
        }
Exemple #2
0
        private void GetContentHtml(RequestAssessmentPcsVo objAssessmentPcs, AssessmentDataVo assessmentDataVo)
        {
            if (objAssessmentPcs.Sections != null && objAssessmentPcs.Sections.Count > 0)
            {
                var header = objAssessmentPcs.Sections.FirstOrDefault(o => o.Order == 0);

                if (header != null)
                {
                    for (int i = 1; i < 16; i++)
                    {
                        var field = "ContentHtml" + (i > 9 ? i.ToString() : "0" + i);
                        var contentHtmlSection = GetPropValue(objAssessmentPcs.Sections[i], "ResultContent");
                        if (contentHtmlSection != null && !string.IsNullOrEmpty(contentHtmlSection.ToString()))
                        {
                            SetPropValue(assessmentDataVo, field, contentHtmlSection);
                        }
                        else
                        {
                            var contentSelected = GetPropValue(assessmentDataVo, field);
                            if (contentSelected == null)
                            {
                                objAssessmentPcs.Sections[i].ResultContent = GetRootContentSection(objAssessmentPcs.Sections[i].Content, objAssessmentPcs, i);
                            }
                            else
                            {
                                objAssessmentPcs.Sections[i].ResultContent = assessmentDataVo.ContentHtml15;
                            }
                        }
                    }

                    assessmentDataVo.ContentHtml = CreateFileHtmlContent(TemplateHelpper.FormatTemplateWithContentTemplate(WebUtility.HtmlDecode(header.Content), new
                    {
                        section1  = string.IsNullOrEmpty(objAssessmentPcs.Sections[1].ResultContent) ? "" : objAssessmentPcs.Sections[1].ResultContent,
                        section2  = string.IsNullOrEmpty(objAssessmentPcs.Sections[2].ResultContent) ? "" : objAssessmentPcs.Sections[2].ResultContent,
                        section3  = string.IsNullOrEmpty(objAssessmentPcs.Sections[3].ResultContent) ? "" : objAssessmentPcs.Sections[3].ResultContent,
                        section4  = string.IsNullOrEmpty(objAssessmentPcs.Sections[4].ResultContent) ? "" : objAssessmentPcs.Sections[4].ResultContent,
                        section5  = string.IsNullOrEmpty(objAssessmentPcs.Sections[5].ResultContent) ? "" : objAssessmentPcs.Sections[5].ResultContent,
                        section6  = string.IsNullOrEmpty(objAssessmentPcs.Sections[6].ResultContent) ? "" : objAssessmentPcs.Sections[6].ResultContent,
                        section7  = string.IsNullOrEmpty(objAssessmentPcs.Sections[7].ResultContent) ? "" : objAssessmentPcs.Sections[7].ResultContent,
                        section8  = string.IsNullOrEmpty(objAssessmentPcs.Sections[8].ResultContent) ? "" : objAssessmentPcs.Sections[8].ResultContent,
                        section9  = string.IsNullOrEmpty(objAssessmentPcs.Sections[9].ResultContent) ? "" : objAssessmentPcs.Sections[9].ResultContent,
                        section10 = string.IsNullOrEmpty(objAssessmentPcs.Sections[10].ResultContent) ? "" : objAssessmentPcs.Sections[10].ResultContent,
                        section11 = string.IsNullOrEmpty(objAssessmentPcs.Sections[11].ResultContent) ? "" : objAssessmentPcs.Sections[11].ResultContent,
                        section12 = string.IsNullOrEmpty(objAssessmentPcs.Sections[12].ResultContent) ? "" : objAssessmentPcs.Sections[12].ResultContent,
                        section13 = string.IsNullOrEmpty(objAssessmentPcs.Sections[13].ResultContent) ? "" : objAssessmentPcs.Sections[13].ResultContent,
                        section14 = string.IsNullOrEmpty(objAssessmentPcs.Sections[14].ResultContent) ? "" : objAssessmentPcs.Sections[14].ResultContent,
                        section15 = string.IsNullOrEmpty(objAssessmentPcs.Sections[15].ResultContent) ? "" : objAssessmentPcs.Sections[15].ResultContent,
                    }));
                }
            }
        }
Exemple #3
0
        public string GetMid(RequestAssessmentPcsVo viewModel)
        {
            var disclosureFormVo = viewModel.DisclosureFormVo;
            var fieldMid         = viewModel.AssessmentSectionQuestions.FirstOrDefault(o => o.Order == 13);

            if (fieldMid != null)
            {
                if (!string.IsNullOrEmpty(disclosureFormVo.Member.Mid))
                {
                    return(disclosureFormVo.Member.Mid);
                }
                if (!string.IsNullOrEmpty(fieldMid.Field01))
                {
                    return(disclosureFormVo.Member.Mid);
                }
            }
            return("");
        }
Exemple #4
0
        public List <MessageErrorVo> CheckMidDisclosureFormAndPcstForm(RequestAssessmentPcsVo viewModel)
        {
            var listError        = new List <MessageErrorVo>();
            var disclosureFormVo = viewModel.DisclosureFormVo;
            var fieldMid         = viewModel.AssessmentSectionQuestions.FirstOrDefault(o => o.Order == 13);

            if (fieldMid != null)
            {
                if (!string.IsNullOrEmpty(disclosureFormVo.Member.Mid) && !string.IsNullOrEmpty(fieldMid.Field01))
                {
                    if (disclosureFormVo.Member.Mid != fieldMid.Field01)
                    {
                        listError.Add(new MessageErrorVo
                        {
                            MessageError = "MID at Disclosure Form not match PCST Form."
                        });
                    }
                }
            }
            return(listError);
        }
Exemple #5
0
        private List <MessageErrorVo> CheckErrorExpedited(RequestAssessmentPcsVo viewModel)
        {
            var listError        = new List <MessageErrorVo>();
            var fieldRequestType = viewModel.AssessmentSectionQuestions.FirstOrDefault(o => o.Order == 5);
            var fieldPeriod      = viewModel.AssessmentSectionQuestions.FirstOrDefault(o => o.Order == 64);

            if (fieldRequestType != null && fieldRequestType.Field01 != null)
            {
                if (fieldRequestType.Field01.ToString() == "2")
                {
                    if (fieldPeriod != null && fieldPeriod.Field01 != null)
                    {
                        if (fieldPeriod.Field01.ToString() != "5")
                        {
                            listError.Add(new MessageErrorVo
                            {
                                MessageError = "Item 64: You must be chosen 1 months (4 weeks) because this request is Expedited Request."
                            });
                        }
                    }
                }
            }
            return(listError);
        }
Exemple #6
0
        private RequestAssessmentPcsVo GetUpdateAssessment(int id)
        {
            var result = new RequestAssessmentPcsVo();

            //var SectionVos = new List<SectionVo>();
            using (var context = new AssessmentContext())
            {
                var assessment = context.Assessments.FirstOrDefault(o => o.Id == id);
                if (assessment != null)
                {
                    //Case for the new assessment
                    if (string.IsNullOrEmpty(assessment.AssessmentData) &&
                        string.IsNullOrEmpty(assessment.DisclosureFormData))
                    {
                        return(GetNewAssessment(assessment.FileName, id));
                    }



                    string encyptKey = ConfigurationManager.AppSettings["EncyptKey"];
                    if (string.IsNullOrEmpty(encyptKey))
                    {
                        throw new Exception("EncyptKey not found in App.config");
                    }

                    var dataJsonAssessmentData = new AssessmentDataVo();
                    if (!string.IsNullOrEmpty(assessment.AssessmentData))
                    {
                        var decryptAssessmentData = EncryptHelper.Decrypt(assessment.AssessmentData, encyptKey);
                        dataJsonAssessmentData = JsonConvert.DeserializeObject <AssessmentDataVo>(decryptAssessmentData);
                    }

                    var dataJsonDiscloseData = new DisclosureFormVo();
                    if (!string.IsNullOrEmpty(assessment.DisclosureFormData))
                    {
                        var decryptDiscloseData = EncryptHelper.Decrypt(assessment.DisclosureFormData, encyptKey);
                        dataJsonDiscloseData = JsonConvert.DeserializeObject <DisclosureFormVo>(decryptDiscloseData);
                    }

                    //always get content new
                    result.Sections = GetHtmlToDisplay();//dataJsonAssessmentData.Sections;



                    result.AssessmentSectionQuestions = dataJsonAssessmentData.AssessmentSectionQuestions;
                    result.AssessmentPcsId            = assessment.Id;
                    result.AssessmentName             = assessment.FileName;

                    if (dataJsonDiscloseData != null && dataJsonDiscloseData.Providers != null && dataJsonDiscloseData.Providers.Count > 0)
                    {
                        foreach (var dt in dataJsonDiscloseData.Providers)
                        {
                            dt.Id = CaculatorHelper.TryParseIntFromStr(dt.Mpi);
                        }
                    }
                    result.DisclosureFormVo = dataJsonDiscloseData;
                    //parse string to DateTime
                    if (result.DisclosureFormVo != null)
                    {
                        if (result.DisclosureFormVo.Member != null)
                        {
                            result.DisclosureFormVo.Member.DobStr = result.DisclosureFormVo.Member.Dob != null?
                                                                    result.DisclosureFormVo.Member.Dob.GetValueOrDefault().ToShortDateString() : "";
                        }
                        result.DisclosureFormVo.DateSignedStr = result.DisclosureFormVo.DateSigned != null?
                                                                result.DisclosureFormVo.DateSigned.GetValueOrDefault().ToShortDateString() : "";

                        result.DisclosureFormVo.TheFollowingDateStr = result.DisclosureFormVo.TheFollowingDate != null
                            ? result.DisclosureFormVo.TheFollowingDate.GetValueOrDefault().ToShortDateString()
                            : "";
                    }
                    return(result);
                }
                return(GetNewAssessment());
            }
            return(result);
        }
Exemple #7
0
        private List <AssQuestionVo> GetAssessmentSectionQuestion(List <SectionVo> list, RequestAssessmentPcsVo objVo)
        {
            var result = new List <AssQuestionVo>();

            foreach (var section in list)
            {
                if (section.Order != 0)
                {
                    foreach (var sectionQuestion in section.SectionQuestions)
                    {
                        var obj = new AssQuestionVo
                        {
                            SectionQuestionId = sectionQuestion.Id,
                            Order             = sectionQuestion.Order,
                            IsSignature       = sectionQuestion.IsSignature,
                            IsMid             = sectionQuestion.IsMid,
                            Name      = sectionQuestion.Name,
                            SectionId = section.Order
                        };
                        result.Add(obj);
                    }
                }
            }
            return(result);
        }
Exemple #8
0
        private RequestAssessmentPcsVo GetNewAssessment(string fileName = null, int id = 0)
        {
            var result     = new RequestAssessmentPcsVo();
            var SectionVos = new List <SectionVo>();

            using (var context = new DefaulDataContext())
            {
                var sections = context.Sections.ToList();
                foreach (var section in sections)
                {
                    var obj = new SectionVo
                    {
                        Id               = section.Id,
                        Content          = section.Content,
                        Name             = section.Name,
                        Order            = section.Order,
                        SectionQuestions = new List <SectionQuestionVo>(),
                    };
                    foreach (var question in section.SectionQuestions)
                    {
                        var objSectionQuestionVo = new SectionQuestionVo
                        {
                            Id                    = question.Id,
                            Content               = question.Content,
                            Order                 = question.Order,
                            Parameters            = question.Parameters,
                            Calculator            = question.Calculator,
                            Name                  = question.Name,
                            IsSignature           = question.IsSignature.GetValueOrDefault(),
                            IsSignatureDate       = question.IsSignatureDate.GetValueOrDefault(),
                            IsBathing             = question.IsBathing.GetValueOrDefault(),
                            IsADLsCal             = question.IsADLsCal.GetValueOrDefault(),
                            IsMOT                 = question.IsMOT.GetValueOrDefault(),
                            IsMedicalAppointments = question.IsMedicalAppointments.GetValueOrDefault(),
                            IsServicesIncidental  = question.IsServicesIncidental.GetValueOrDefault(),
                            IsBehaviorsMedicalConditionsSeizures =
                                question.IsBehaviorsMedicalConditionsSeizures.GetValueOrDefault(),
                            IsDiagnoses            = question.IsDiagnoses.GetValueOrDefault(),
                            IsMedications          = question.IsMedications.GetValueOrDefault(),
                            IsDME                  = question.IsDME.GetValueOrDefault(),
                            IsAllergies            = question.IsAllergies.GetValueOrDefault(),
                            IsFunctionalLimitation = question.IsFunctionalLimitation.GetValueOrDefault(),
                            IsActivitiesPermitted  = question.IsActivitiesPermitted.GetValueOrDefault(),
                            IsMentalStatus         = question.IsMentalStatus.GetValueOrDefault(),
                            IsReassessmentDue      = question.IsReassessmentDue.GetValueOrDefault(),
                            IsCheckZeroMinutesPCST = question.IsCheckZeroMinutesPCST.GetValueOrDefault(),
                            IsMid                  = question.IsMid,
                            SectionId              = question.SectionId
                        };

                        obj.SectionQuestions.Add(objSectionQuestionVo);
                        //SectionQuestionVos.Add(objSectionQuestionVo);
                    }
                    SectionVos.Add(obj);
                }
            }
            result.Sections = SectionVos;
            result.AssessmentSectionQuestions = GetAssessmentSectionQuestion(result.Sections, result);
            result.AssessmentPcsId            = id;
            result.AssessmentName             = !string.IsNullOrEmpty(fileName) ? fileName : "";
            result.DisclosureFormVo           = new DisclosureFormVo();
            return(result);
        }
Exemple #9
0
        public static void TrackingCompleteInformation(RequestAssessmentPcsVo viewModel)
        {
            var exceptions                      = new List <string>();
            var listMessageErrorTotal           = new List <MessageErrorVo>();
            List <SectionTempleteVo> parameters = null;
            var listSectionQuestion             = new List <SectionQuestionVo>();

            foreach (var sectionVo in viewModel.Sections)
            {
                listSectionQuestion.AddRange(sectionVo.SectionQuestions);
            }
            listSectionQuestion = listSectionQuestion.OrderBy(o => o.Order).ToList();

            foreach (var item in viewModel.AssessmentSectionQuestions)
            {
                if (item.Order == 44)
                {
                }
                item.IsValid = null;
                var objSection = listSectionQuestion.FirstOrDefault(o => o.Order == item.Order);
                if (objSection != null)
                {
                    var str = objSection.Parameters;
                    parameters = JsonConvert.DeserializeObject <List <SectionTempleteVo> >(str);
                    var countParameter   = parameters.Count;
                    var index            = 0;
                    var listMessageError = new List <MessageErrorVo>();
                    foreach (var parameter in parameters)
                    {
                        if (item.Order == 49 && parameter.Name.Contains("08"))
                        {
                        }

                        index++;
                        var val = GetPropValue(item, parameter.Name);

                        //To check Staffing Schedule of Each Agency or Provider Providing Services
                        if (parameter.CheckListStaffingScheduleServices == true)
                        {
                            CheckListStaffingScheduleServices(parameter, item, val, listMessageError);
                        }
                        //Schedule of any informal supports
                        else if (parameter.CheckListInformalSupports == true)
                        {
                            CheckListInformalSupports(parameter, item, val, listMessageError);
                        }
                        //List of Diagnoses Conditions
                        else if (parameter.CheckTypeListDiagnosesConditions == true)
                        {
                            if (val == null)
                            {
                                item.IsValid = false;
                                AddMessageError(parameter, listMessageError, item);
                            }
                            else
                            {
                                CheckTypeListDiagnosesConditions(parameter, item, val, listMessageError);
                            }
                        }
                        //MOT List Other Miscellaneous
                        else if (parameter.CheckTypeListOtherMiscellaneous == true)
                        {
                            #region
                            //if (item.IsValid != false)
                            //{
                            var referField    = parameter.ReferRequiredField;
                            var referFieldVal = parameter.ReferRequiredValueField;
                            if (referField != null && referFieldVal != null)
                            {
                                var valOfReferField = GetPropValue(item, referField);
                                if (valOfReferField != null)
                                {
                                    if (referFieldVal.Contains(valOfReferField.ToString().ToLower()))
                                    {
                                        if (val == null)
                                        {
                                            item.IsValid = false;
                                            AddMessageError(parameter, listMessageError, item);
                                        }
                                        else
                                        {
                                            CheckTypeListOtherMiscellaneous(parameter, item, val, listMessageError);
                                            //check Max value
                                            //var row = 0;
                                            //var listObj = JsonConvert.DeserializeObject<List<OrderItemReport>>(val.ToString());
                                            //foreach (var obj in listObj)
                                            //{
                                            //    //Max per day
                                            //    if (parameter.MaxValuePerDay != null)
                                            //    {
                                            //        if (!string.IsNullOrEmpty(obj.Field02))
                                            //        {
                                            //            row++;
                                            //            var perDay = Convert.ToInt32(obj.Field02);
                                            //            if (perDay > parameter.MaxValuePerDay.GetValueOrDefault())
                                            //            {
                                            //                item.IsValid = false;
                                            //                AddMessageErrorMaxValueMiscellaneous(parameter, listMessageError, item, parameter.MaxValuePerDay.GetValueOrDefault(), row, 1);
                                            //            }

                                            //            var perWeek = Convert.ToInt32(obj.Field03);
                                            //            if (perWeek > parameter.MaxValuePerWeek.GetValueOrDefault())
                                            //            {
                                            //                item.IsValid = false;
                                            //                AddMessageErrorMaxValueMiscellaneous(parameter, listMessageError, item, parameter.MaxValuePerWeek.GetValueOrDefault(), row, 2);
                                            //            }

                                            //        }
                                            //    }
                                            //}
                                        }
                                    }
                                }
                                //}
                            }
                            #endregion
                        }
                        //Check  Demonstrated Ability to required option
                        else if (parameter.AbilityField != null && parameter.AbilityFieldToRequred != null)
                        {
                            CheckReferRequiredFieldDemonstratedAbility(parameter, item, parameters, val, listMessageError);
                        }
                        else if (val == null || string.IsNullOrEmpty(val.ToString()))
                        {
                            #region
                            //Check required
                            if (parameter.IsValidation == true)
                            {
                                item.IsValid = false;
                                AddMessageError(parameter, listMessageError, item);
                            }

                            //Check Refer Field
                            if (!string.IsNullOrEmpty(parameter.ReferRequiredField))
                            {
                                CheckReferRequiredField(parameter, item, parameters, val, listMessageError);
                            }

                            //Check group Field DataType = string
                            if (parameter.GroupRequiredFieldString != null)
                            {
                                CheckGroupRequiredString(parameter, item, listMessageError);
                            }

                            //Check group Field DataType = bool
                            if (parameter.GroupRequiredFieldBool != null)
                            {
                                CheckGroupRequiredBool(parameter, item, listMessageError);
                            }

                            if (parameter.RefFieldToCheck != null && parameter.ListValRefFieldToCheck != null && parameter.ListSameField != null)
                            {
                                CheckReferRequiredFieldWasCheckAleast(parameter, item, listMessageError);
                            }

                            //Check Group Field is required
                            if (parameter.GroupFieldToRequired != null)
                            {
                                CheckGroupFieldToRequired(parameter, item, parameters, val, listMessageError);
                            }
                            //Check at least checkbox is checked
                            if (parameter.GroupRequiredALeastField != null && parameter.GroupRequiredALeastFieldRefer != null)
                            {
                                GroupRequiredALeastField(parameter, item, listMessageError);
                            }
                            #endregion
                        }
                        else
                        {
                            #region
                            var valStr = val.ToString();
                            switch (parameter.DataType)
                            {
                            case SectionDataType.Hour:
                                try
                                {
                                    DateTime dt = DateTime.Parse(DateTime.Now.ToShortDateString() + " " + valStr, new CultureInfo("en-US"));
                                }
                                catch (FormatException)
                                {
                                    item.IsValid = false;
                                    AddMessageError(parameter, listMessageError, item);
                                }
                                break;

                                //case SectionDataType.Int:
                                //    int valInt;
                                //    if (int.TryParse(valStr, out valInt))
                                //    {
                                //        //if (parameter.IsNullIfValue != null && valInt == parameter.IsNullIfValue)
                                //        //{
                                //        //    AddMessageError(parameter, listMessageError, item);
                                //        //}
                                //        if (parameter.MaxValue != null)
                                //        {
                                //            if (parameter.MaxValue.GetValueOrDefault() < valInt)
                                //            {
                                //                item.IsValid = false;
                                //                AddMessageErrorMaxValue(parameter, listMessageError, item, parameter.MaxValue.GetValueOrDefault());
                                //            }
                                //        }
                                //    }

                                //    break;
                            }
                            #endregion
                        }
                    }

                    if (item.IsValid != false)
                    {
                        item.IsValid = true;
                    }
                    item.MessageError = JsonConvert.SerializeObject(listMessageError);
                    if (countParameter == index && listMessageError.Count > 0)
                    {
                        if (viewModel.CurrentSectionId != null)
                        {
                            if (objSection.SectionId == viewModel.CurrentSectionId + 1)
                            {
                                listMessageErrorTotal.AddRange(listMessageError);
                            }
                        }
                        else
                        {
                            listMessageErrorTotal.AddRange(listMessageError);
                        }
                    }
                }
            }
            if (exceptions.Count > 0)
            {
                viewModel.Exceptions = exceptions;
            }
            if (listMessageErrorTotal.Count > 0)
            {
                viewModel.MessageErrorTotal = listMessageErrorTotal;
            }
        }