protected void AssessmentCareMeasureComponentsListView_OnNeedDataSource(Object sender, Telerik.Web.UI.RadListViewNeedDataSourceEventArgs e)
        {
            if (MemberCaseCarePlan == null)
            {
                return;
            }

            Telerik.Web.UI.RadListView AssessmentCareMeasureComponentsListView = (Telerik.Web.UI.RadListView)sender;

            Client.Core.Individual.CareMeasureScale careMeasureScale = (Client.Core.Individual.CareMeasureScale)((Telerik.Web.UI.RadListViewDataItem)AssessmentCareMeasureComponentsListView.Parent).DataItem;

            Client.Core.Individual.Case.MemberCaseCarePlanAssessmentCareMeasure assessmentCareMeasure = (Client.Core.Individual.Case.MemberCaseCarePlanAssessmentCareMeasure)((Telerik.Web.UI.RadListViewDataItem)((Telerik.Web.UI.RadListViewDataItem)AssessmentCareMeasureComponentsListView.Parent).Parent.Parent.Parent).DataItem;

            if (careMeasureScale == null)
            {
                return;
            }

            if (assessmentCareMeasure == null)
            {
                return;
            }


            switch (e.RebindReason)
            {
            case Telerik.Web.UI.RadListViewRebindReason.InitialLoad:

                AssessmentCareMeasureComponentsListView.DataSource = assessmentCareMeasure.ComponentsByScale(careMeasureScale.Id);

                break;

            case Telerik.Web.UI.RadListViewRebindReason.ExplicitRebind:

                break;

            case Telerik.Web.UI.RadListViewRebindReason.PostBackEvent:

                break;

            case Telerik.Web.UI.RadListViewRebindReason.PostbackViewStateNotPersisted:

                break;
            }

            return;
        }
        protected void ComponentValueSelection_OnSelectedIndexChanged(Object sender, EventArgs e)
        {
            RadioButtonList ComponentValueSelection = (RadioButtonList)sender;


            // COMPONENTS <- SCALES <- MEASURE

            Int32 careMeasureIndex = ((Telerik.Web.UI.RadListViewDataItem)ComponentValueSelection.Parent.Parent.Parent.Parent.Parent.Parent.Parent).DataItemIndex;

            Int32 scaleIndex = ((Telerik.Web.UI.RadListViewDataItem)ComponentValueSelection.Parent.Parent.Parent.Parent).DataItemIndex;

            Int32 componentIndex = ((Telerik.Web.UI.RadListViewDataItem)ComponentValueSelection.Parent).DataItemIndex;


            Client.Core.Individual.CareMeasureScale careMeasureScale = Assessment.Measures[careMeasureIndex].CareMeasureScales[scaleIndex];

            Client.Core.Individual.Case.MemberCaseCarePlanAssessmentCareMeasureComponent component = Assessment.Measures[careMeasureIndex].ComponentsByScale(careMeasureScale.Id)[componentIndex];

            component.ComponentValue = Convert.ToInt32(ComponentValueSelection.SelectedValue);


            ((Label)ComponentValueSelection.Parent.Parent.Parent.Parent.Parent.Parent.Parent.FindControl("AssessmentMeasureScore")).Text =

                Assessment.Measures[careMeasureIndex].ComponentScore.ToString("#.00");


            Telerik.Web.UI.RadNumericTextBox AssessmentMeasureTarget = ((Telerik.Web.UI.RadNumericTextBox)ComponentValueSelection.Parent.Parent.Parent.Parent.Parent.Parent.Parent.FindControl("AssessmentMeasureTarget"));

            AssessmentMeasureTarget.MinValue = ((Assessment.Measures[careMeasureIndex].ComponentScore == 0) ? 0.1 : Convert.ToDouble(Assessment.Measures[careMeasureIndex].ComponentScore));

            if (Assessment.Measures[careMeasureIndex].TargetValue < Assessment.Measures[careMeasureIndex].ComponentScore)
            {
                Assessment.Measures[careMeasureIndex].TargetValue = Assessment.Measures[careMeasureIndex].ComponentScore;
            }


            AssessmentToolbar_UpdateCount();

            return;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            Int64 forCareMeasureScaleId = 0;


            if (MercuryApplication == null)
            {
                return;
            }

            if ((!MercuryApplication.HasEnvironmentPermission(Mercury.Server.EnvironmentPermissions.CareMeasureScaleReview))

                && (!MercuryApplication.HasEnvironmentPermission(Mercury.Server.EnvironmentPermissions.CareMeasureScaleManage)))
            {
                Response.Redirect("/PermissionDenied.aspx", true); return;
            }


            if (!Page.IsPostBack)
            {
                #region Initial Page Load

                if (Request.QueryString["CareMeasureScaleId"] != null)
                {
                    forCareMeasureScaleId = Int64.Parse(Request.QueryString["CareMeasureScaleId"]);
                }

                if (forCareMeasureScaleId != 0)
                {
                    careMeasureScale = MercuryApplication.CareMeasureScaleGet(forCareMeasureScaleId, false);

                    if (careMeasureScale == null)
                    {
                        careMeasureScale = new Mercury.Client.Core.Individual.CareMeasureScale(MercuryApplication);
                    }
                }

                else
                {
                    careMeasureScale = new Mercury.Client.Core.Individual.CareMeasureScale(MercuryApplication);
                }

                InitializeAll();

                Session[SessionCachePrefix + "CareMeasureScale"] = careMeasureScale;

                Session[SessionCachePrefix + "CareMeasureScaleUnmodified"] = careMeasureScale.Copy();

                #endregion
            } // Initial Page Load

            else   // Postback

            {
                careMeasureScale = (Mercury.Client.Core.Individual.CareMeasureScale)Session[SessionCachePrefix + "CareMeasureScale"];
            }

            ApplySecurity();

            if (!String.IsNullOrEmpty(careMeasureScale.Name))
            {
                Page.Title = "Care Measure Scale - " + careMeasureScale.Name;
            }
            else
            {
                Page.Title = "Care Measure Scale";
            }

            return;
        }
        protected Boolean ApplyChanges()
        {
            Boolean isModified = false;

            Boolean success = false;


            Mercury.Client.Core.Individual.CareMeasureScale careMeasureScaleUnmodified = (Mercury.Client.Core.Individual.CareMeasureScale)Session[SessionCachePrefix + "CareMeasureScaleUnmodified"];

            if (careMeasureScaleUnmodified.Id == 0)
            {
                isModified = true;
            }


            careMeasureScale.Name = CareMeasureScaleName.Text.Trim();

            careMeasureScale.Description = CareMeasureScaleDescription.Text.Trim();

            careMeasureScale.Enabled = CareMeasureScaleEnabled.Checked;

            careMeasureScale.Visible = CareMeasureScaleVisible.Checked;


            careMeasureScale.ScaleLabel1 = ScaleLabel1.Text.Trim();

            careMeasureScale.ScaleLabel2 = ScaleLabel2.Text.Trim();

            careMeasureScale.ScaleLabel3 = ScaleLabel3.Text.Trim();

            careMeasureScale.ScaleLabel4 = ScaleLabel4.Text.Trim();

            careMeasureScale.ScaleLabel5 = ScaleLabel5.Text.Trim();


            if (!isModified)
            {
                isModified = !careMeasureScale.IsEqual(careMeasureScaleUnmodified);
            }

            if (isModified)
            {
                success = MercuryApplication.CareMeasureScaleSave(careMeasureScale);

                if (success)
                {
                    careMeasureScale = MercuryApplication.CareMeasureScaleGet(careMeasureScale.Id, false);

                    Session[SessionCachePrefix + "CareMeasureScale"] = careMeasureScale;

                    Session[SessionCachePrefix + "CareMeasureScaleUnmodified"] = careMeasureScale.Copy();

                    SaveResponseLabel.Text = "Save Successful";

                    InitializeAll();
                }

                else
                {
                    SaveResponseLabel.Text = "Unable to Save.";

                    if (MercuryApplication.LastException != null)
                    {
                        SaveResponseLabel.Text = SaveResponseLabel.Text + " [" + MercuryApplication.LastException.Message + "]";
                    }

                    success = false;
                }
            }

            else
            {
                SaveResponseLabel.Text = "No Changes Detected."; success = true;
            }

            return(success);
        }