public GridViewTable(
			Func<IEnumerable<TableLegendItemViewModel>> getViewModels,
			ExtendedGridView extendedGridView)
        {
            _getViewModels = getViewModels;
            _extendedGridView = extendedGridView;
        }
Exemple #2
0
        /// <summary>
        /// When Stages Grid is bound, color boxes need to be set and colors assigned
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void SetColorBox(object sender, GridViewRowEventArgs e)
        {
            ExtendedGridView srcGrid = sender as ExtendedGridView;

            if (srcGrid == StagesGrid && e.Row.RowType == DataControlRowType.DataRow)
            {
                int lkpCodeId = int.Parse(StagesGrid.DataKeys[e.Row.RowIndex][LookupCode.LookupCodeId].ToString());

                HiddenField lkpCodeIdField = e.Row.FindControl("LookupCodeId") as HiddenField;
                lkpCodeIdField.Value = lkpCodeId.ToString();

                HiddenField colorCodeField        = e.Row.FindControl("ColorCode") as HiddenField;
                HiddenField lookupCodeAttributeId = e.Row.FindControl("LookupCodeAttributeId") as HiddenField;
                Label       colorBoxField         = e.Row.FindControl("ColorCodeBox") as Label;
                // Show color picker when clicking on box and copy selected value to hidden field
                colorBoxField.Attributes["onclick"] = "showColorPicker('" + colorCodeField.ClientID + "',this,event);";

                if (stageColorCodeAttributes != null)
                {
                    DataRow[] attValues = stageColorCodeAttributes.Select("LookupCodeId = " + lkpCodeId);
                    if (attValues.Length > 0)
                    {
                        string colorCode = attValues[0][LookupCodeAttribute.AttributeValue].ToString();
                        lookupCodeAttributeId.Value = attValues[0][LookupCodeAttribute.LookupCodeAttributeId].ToString();
                        colorCodeField.Value        = colorCode;
                        colorBoxField.Style[HtmlTextWriterStyle.BackgroundColor] = colorCode;
                    }
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Hide show options row/label if no records
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ShowHideOptionsLink(object sender, EventArgs e)
        {
            ExtendedGridView attributesGrid = sender as ExtendedGridView;

            if (attributesGrid.Rows.Count == 0)
            {
                GridViewRow  eventRow          = attributesGrid.NamingContainer as GridViewRow;
                HtmlTableRow showAttributesRow = eventRow.FindControl("ShowOptionFieldsRow") as HtmlTableRow;
                showAttributesRow.Visible = false;
            }
        }
Exemple #4
0
        /// <summary>
        /// Builds the matrix representing Diagnostic and DxImageFinding Records based on DxType
        /// </summary>
        private void BuildMatrix()
        {
            if (!string.IsNullOrEmpty(ImageType))
            {
                // Bind Header Columns
                DiagnosticsHeaderRptr.DataSource = DiagnosticRecords;
                DiagnosticsHeaderRptr.DataBind();

                // Bind Main Matrix Spacer Headers
                DxImageFindingGroupRowsHeaderRptr.DataSource = DiagnosticRecords;
                DxImageFindingGroupRowsHeaderRptr.DataBind();

                // Bind Diagnostic List for Adding new Legion
                CTMRI_ExistingDiagnostics.DataSource = DiagnosticRecords;
                CTMRI_ExistingDiagnostics.DataBind();
                PET_ExistingDiagnostics.DataSource = DiagnosticRecords;
                PET_ExistingDiagnostics.DataBind();

                // Build Left Rows by GroupNum
                DxImageFindingsGroupsRptr.DataSource = DxImgGroups;
                DxImageFindingsGroupsRptr.DataBind();

                // Build Main Matrix Rows by GroupNum
                DxImageFindingGroupRowsRptr.DataSource = DxImgGroups;
                DxImageFindingGroupRowsRptr.DataBind();

                // Can't add Lesion without exisiting Diagnostic
                AddNewLesionBtn.Visible = DiagnosticRecords.Count > 0;

                // build default PET grid fields
                ExtendedGridView hottestGrid = DxGrid1;
                ExtendedGridView newGrid = DxGrid2;
                DataView         childFindings = new BusinessObject[] { }.AsDataView("DxImageFindings");

                hottestGrid.DataSource = childFindings;
                hottestGrid.DataBind();

                newGrid.DataSource = new DataView(childFindings.Table);
                newGrid.DataBind();
            }
        }
        private void SetupGrid(int gridHeight)
        {
            try
            {
                if (_gridSetup)
                {
                    return;
                }

                if (_gridCalendar != null)
                {
                    _gridView = new ExtendedGridView(this, gridHeight);
                    var newParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
                    _gridView.LayoutParameters = newParams;
                    if (_gridView != null)
                    {
                        _gridView.SetHorizontalSpacing(1);
                        _gridView.SetVerticalSpacing(1);
                        _gridView.SetPadding(1, 1, 0, 0);
                        _gridView.SetBackgroundColor(Color.Argb(100, 10, 80, 255));
                        _gridCalendar.AddView(_gridView);
                        _gridSetup = true;
                        if (_isOrientationChange)
                        {
                            Log.Info(TAG, "SetupGrid: Orientation has changed, setting grid view month to " + _currentMonth.ToString());
                            _gridView.CalendarInstance.Set(Java.Util.CalendarField.Month, _currentMonth);
                            _isOrientationChange = false;
                        }
                        _gridView.UpdateAdapter();
                    }
                }
            }
            catch (Exception e)
            {
                Log.Error(TAG, "SetupGrid: Exception - " + e.Message);
                if (GlobalData.ShowErrorDialog)
                {
                    ErrorDisplay.ShowErrorAlert(this, e, "Setting up grid", "ResourcesAppointmentPlannerActivity.SetupGrid");
                }
            }
        }
Exemple #6
0
 /// <summary>
 /// Add dirty input controls tracking
 /// </summary>
 /// <param name="control"></param>
 protected void InitDirtyControlTracking(Control control)
 {
     if (control is Repeater)
     {
         Repeater rptr = control as Repeater;
         // reset dirty values
         rptr.DataBinding += (o, e) =>
         {
             ClearDirtyInputControls(rptr.Items.Cast <Control>().ToArray());
         };
         // track dirty values
         rptr.ItemCreated += (o, e) => TrackDirtyInputControl(e.Item);
     }
     else if (control is GridView)
     {
         GridView grid = control as GridView;
         // reset dirty values
         grid.DataBinding += (o, e) =>
         {
             ClearDirtyInputControls(grid.Rows.Cast <Control>().ToArray());
         };
         // track dirty values
         grid.RowCreated += (o, e) => TrackDirtyInputControl(e.Row);
         // special AppendTo logic
         if (grid is ExtendedGridView)
         {
             ExtendedGridView extendedGridView = grid as ExtendedGridView;
             extendedGridView.AppendToUserName = AppendToUserName;
         }
     }
     // TODO: better handling
     else
     {
         // reset dirty values
         control.Load += (o, e) => ClearDirtyInputControls(control);
         //var inputs = CICHelper.GetCaisisInputControls(control).Cast<Control>().ToArray();
         TrackDirtyInputControl(control);
     }
 }
Exemple #7
0
        /// <summary>
        /// Inserts/Updates the Diagnostic record in the specific container, i.e., RepeaterItem, Control, etc...
        /// </summary>
        /// <param name="fieldsContainer"></param>
        /// <param name="patientId"></param>
        /// <returns></returns>
        private Diagnostic UpdateDiagnosticsByContainer(Control fieldsContainer, int patientId)
        {
            Control petFields   = fieldsContainer.FindControl("PET_Fields");
            Control ctMRIFields = fieldsContainer.FindControl("CTMRI_Fields");
            Control shareFields = fieldsContainer.FindControl("SHARED_Fields");
            Control mainFields  = ImageType == "PET" ? petFields : ctMRIFields;

            CaisisHidden diagIdField  = fieldsContainer.FindControl("DiagnosticIdField") as CaisisHidden;
            Diagnostic   biz          = new Diagnostic();
            int?         diagnosticId = null;

            if (!string.IsNullOrEmpty(diagIdField.Value))
            {
                diagnosticId = int.Parse(diagIdField.Value);
                biz.Get(diagnosticId.Value);
            }
            // set main fields
            CICHelper.SetBOValues(shareFields.Controls, biz, patientId);
            CICHelper.SetBOValues(mainFields.Controls, biz, patientId);
            biz.Save();
            // update key
            diagnosticId      = (int)biz[Diagnostic.DiagnosticId];
            diagIdField.Value = diagnosticId.ToString();

            // special case: updated/insert PET image findings
            if (mainFields == petFields && diagnosticId.HasValue)
            {
                // containers are named by index
                Control boneFields       = petFields.FindControl("PET_Fields_Finding0");
                Control softTissueFields = petFields.FindControl("PET_Fields_Finding1");
                Control lymphNodeFields  = petFields.FindControl("PET_Fields_Finding2");

                // generic insert/update logic
                foreach (Control petFindingContainer in new Control[] { boneFields, softTissueFields, lymphNodeFields })
                {
                    ImageFinding        findingBiz      = new ImageFinding();
                    ICaisisInputControl findingKeyField = FindInputControl(petFindingContainer, ImageFinding.DxImageFindingId);
                    // only continue if fields have values
                    bool fieldsHaveData = (from input in CICHelper.GetCaisisInputControls(petFindingContainer)
                                           where input != findingKeyField && !string.IsNullOrEmpty(input.Value)
                                           select input).Count() > 0;
                    // update
                    if (!string.IsNullOrEmpty(findingKeyField.Value))
                    {
                        int dxImageFindingId = int.Parse(findingKeyField.Value);
                        findingBiz.Get(dxImageFindingId);
                    }
                    // insert
                    else if (fieldsHaveData)
                    {
                        // !important, mark special DxImageFinding status for later retrieval (bone/soft tissue)
                        if (petFindingContainer == boneFields)
                        {
                            findingBiz[ImageFinding.ImgFindStatus] = PET_SCAN_LOCATION_BONE;
                        }
                        else if (petFindingContainer == softTissueFields)
                        {
                            findingBiz[ImageFinding.ImgFindStatus] = PET_SCAN_LOCATION_SOFT_TISSUE;
                        }
                        else if (petFindingContainer == lymphNodeFields)
                        {
                            findingBiz[ImageFinding.ImgFindStatus] = PET_SCAN_LOCATION_NYMPH_NODE;
                        }
                    }
                    // if field have no data on new records, ignore, do not insert
                    else
                    {
                        continue;
                    }
                    // set fields and update
                    CICHelper.SetBOValues(petFindingContainer.Controls, findingBiz, diagnosticId.Value);
                    findingBiz.Save();
                    findingKeyField.Value = findingBiz[ImageFinding.DxImageFindingId].ToString();
                }

                // udpate/insert special findings datagrids
                ExtendedGridView hottestGrid = petFields.FindControl("DxGrid1") as ExtendedGridView;
                ExtendedGridView newGrid     = petFields.FindControl("DxGrid2") as ExtendedGridView;
                if (hottestGrid != null && newGrid != null)
                {
                    string type = Request.Form["NewLesionsGroup_Type"];
                    // update grids
                    foreach (ExtendedGridView grid in new ExtendedGridView[] { hottestGrid, newGrid })
                    {
                        // special fix, set ImgFindGroupNum
                        foreach (GridViewRow row in grid.Rows)
                        {
                            int groupNum          = row.RowIndex + 1;
                            var imgFindGroupField = FindInputControl(row, ImageFinding.ImgFindGroupNum);
                            imgFindGroupField.Value = groupNum.ToString();
                        }
                        if ((grid == hottestGrid && type == "Hottest") || (grid == newGrid && type == "New"))
                        {
                            grid.Save(diagnosticId.Value);
                        }
                    }
                }
            }
            return(biz);
        }