Example #1
0
        /// <summary>
        /// Deletes SpecimenBox and SpecimenPosition records when deleting a specimen
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void SpecimenGridRowDeleted(object sender, GridViewDeletedEventArgs e)
        {
            string positionId = e.Values[Specimen.PositionId].ToString();

            // Check for existnce of position id in deleted record
            if (!string.IsNullOrEmpty(positionId))
            {
                SpecimenPosition biz = new SpecimenPosition();
                biz.Delete(int.Parse(positionId));
            }
        }
Example #2
0
            public string SaveRecord()
            {
                SpecimenPosition biz = new SpecimenPosition();

                if (!string.IsNullOrEmpty(pId))
                {
                    biz.Get(int.Parse(pId));
                }

                biz[SpecimenPosition.BoxId]          = bId;
                biz[SpecimenPosition.Position]       = pName;
                biz[SpecimenPosition.PositionStatus] = "Filled";

                biz.Save();

                string posIdOnSaveInsert = biz[SpecimenPosition.PositionId].ToString();

                return(posIdOnSaveInsert);
            }
Example #3
0
        protected void UpdateSpecimenLocation()
        {
            Response.ContentType = "text/html";

            int collectionId = int.Parse(Request.Form["collectionId"]);
            int srcBoxId     = int.Parse(Request.Form["srcBoxId"]);
            int srcPos       = int.Parse(Request.Form["srcPosition"]);
            int destBoxId    = int.Parse(Request.Form["destBoxId"]);
            int destPos      = int.Parse(Request.Form["destPosition"]);

            SpecimenManagerDa da  = new SpecimenManagerDa();
            DataTable         tmp = da.GetSpecimensByBoxId(srcBoxId, collectionId);

            // Trace back to specimen record
            DataRow[] rows = tmp.Select(SpecimenPosition.Position + " = '" + srcPos + "'");
            if (rows.Length > 0)
            {
                DataRow          row        = rows[0];
                SpecimenPosition specPosBiz = new SpecimenPosition();
                int positionId = int.Parse(row[Specimen.PositionId].ToString());
                specPosBiz.Get(positionId);
                specPosBiz[SpecimenPosition.BoxId]    = destBoxId;
                specPosBiz[SpecimenPosition.Position] = destPos;
                specPosBiz.Save();

                Specimen specBiz    = new Specimen();
                int      specimenId = int.Parse(row[Specimen.SpecimenId].ToString());
                specBiz.Get(specimenId);
                specBiz[Specimen.BoxId] = destBoxId;
                specBiz.Save();

                Response.Write("true");
                Response.End();
            }
            Response.Write("false");
            Response.End();
        }
Example #4
0
        /// <summary>
        /// Creates controls for placing the Position and Box name in a grid.
        /// In addition, the rows positionid and boxid are tracked in the viewstate to trigger SpecimenPosition records updates/deletes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LocateAndWireReferencedControls(object sender, EventArgs e)
        {
            if (specimensGrid != null)
            {
                List <ICaisisInputControl> tmpKeys = new List <ICaisisInputControl>();

                string jsArray = "";
                foreach (GridViewRow row in specimensGrid.Rows)
                {
                    int    rowIndex   = row.RowIndex;
                    string specimenId = specimensGrid.DataKeyNames[0] == Specimen.SpecimenId ? specimensGrid.DataKeys[0].Value.ToString() : string.Empty;

                    ICaisisInputControl boxId      = PageUtil.DeepFindICaisisInputControl(row, Specimen.BoxId);
                    ICaisisInputControl positionId = PageUtil.DeepFindICaisisInputControl(row, SpecimenPosition.PositionId);
                    string uniqueClientKey         = (boxId as Control).UniqueID;

                    TextBox boxName = new TextBox();
                    boxName.ID = uniqueClientKey + "RefBoxName";
                    boxName.Style.Add(HtmlTextWriterStyle.Display, "none");
                    controlsToRender.Add(boxName);

                    TextBox positionName = new TextBox();
                    positionName.ID = uniqueClientKey + "RefPositionName";
                    positionName.Style.Add(HtmlTextWriterStyle.Display, "none");
                    controlsToRender.Add(positionName);

                    // Set Box Name and Position Name based off of records
                    if (!string.IsNullOrEmpty(boxId.Value))
                    {
                        SpecimenBox box = new SpecimenBox();
                        box.Get(int.Parse(boxId.Value));
                        boxName.Text = box[SpecimenBox.BoxName].ToString();
                        if (Page.IsPostBack)
                        {
                            if (!string.IsNullOrEmpty(positionId.Value))
                            {
                                SpecimenPosition pos = new SpecimenPosition();
                                pos.Get(int.Parse(positionId.Value));
                                positionName.Text = pos[SpecimenPosition.Position].ToString();
                            }
                            else if (this.ViewState["SpecimenId$" + rowIndex] != null)
                            {
                                string posName = Request.Form[(this.ViewState["SpecimenId$" + rowIndex] as string[])[3]];
                                positionName.Text = posName;
                            }
                        }
                        else if (!string.IsNullOrEmpty(positionId.Value))
                        {
                            SpecimenPosition pos = new SpecimenPosition();
                            pos.Get(int.Parse(positionId.Value));
                            positionName.Text = pos[SpecimenPosition.Position].ToString();
                        }
                    }

                    SpecimenFormHelper helper = new SpecimenFormHelper(rowIndex.ToString(), specimenId, boxId as Control, positionId as Control, boxName as Control, positionName as Control);
                    jsArray += helper.ClientIdsJavaScriptArray + ",";

                    string   key = helper.AccessKey;
                    string[] val = helper.FormArray;
                    this.ViewState.Add(key, val);
                }

                // Register ClientIds Array to page, where populating is handled via JavaScript
                jsArray = jsArray.TrimEnd(",".ToCharArray());
                Page.ClientScript.RegisterArrayDeclaration("SpecimenLocationRefList", jsArray);
                string disableControls = (!specimensGrid.Enabled).ToString().ToLower();
                Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "DisabledPickerControls", "var disablePickerControls = " + disableControls + ";", true);
            }
        }
Example #5
0
        private void LoadSpecimenInfo()
        {
            Specimen specimen = new Specimen();

            specimen.Get(this.specimenId);

            string parentspecId = specimen[Specimen.ParentSpecimenId].ToString();

            pspecId.Value = parentspecId.ToString();

            //if (!string.IsNullOrEmpty(parentspecId))
            //{
            //    Specimen ParentSpecimen = new Specimen();
            //    ParentSpecimen.Get(Int32.Parse(parentspecId.ToString()));

            //    pRemQty.Value = ParentSpecimen[Specimen.SpecimenRemainingQty].ToString();
            //}

            CICHelper.SetFieldValues(this.inputControlsRow.Controls, specimen);

            //getting patient identifier
            PtId.Text = _identifierType + " :";
            SpecimenManagerDa da         = new SpecimenManagerDa();
            string            datasetSql = CacheManager.GetDatasetSQL(Session[SessionKey.DatasetId]);
            DataTable         dt         = da.GetIdentifier(this.specimenId, _identifierType, datasetSql);
            string            identifier = dt.Rows[0].ItemArray[2].ToString();

            TumorBankNumber.Text = identifier.ToString();

            //load box and position from SpecimenBoxes and SpecimenPositions tables
            string sBoxId = specimen[Specimen.BoxId].ToString();

            if (!String.IsNullOrEmpty(sBoxId))
            {
                int         boxId = int.Parse(sBoxId);
                SpecimenBox box   = new SpecimenBox();
                box.Get(boxId);
                this.BoxId.Value   = box[SpecimenBox.BoxId].ToString();
                this.BoxName.Value = box[SpecimenBox.BoxName].ToString();

                DataSet hierarchySet = da.GetBoxAndAncestors(boxId);

                DataTable boxesDT      = hierarchySet.Tables[0];
                DataTable containersDT = hierarchySet.Tables[1];
                DataTable storagesDT   = hierarchySet.Tables[2];
                DataTable siteDT       = hierarchySet.Tables[3];

                if (boxesDT.Rows.Count >= 1)
                {
                    string  containerIdStr = boxesDT.Rows[0][SpecimenBox.ContainerId].ToString();
                    DataRow containerRow   = containersDT.Select(SpecimenContainer.ContainerId + " = " + containerIdStr)[0];
                    this.ContainerName.Value = PageUtil.EscapeSingleQuotes(containerRow[SpecimenContainer.ContainerName].ToString());
                }
                if (containersDT.Rows.Count >= 1)
                {
                    string  storagesIdStr = containersDT.Rows[0][Caisis.BOL.SpecimenContainer.StorageId].ToString();
                    DataRow specimenRow   = storagesDT.Select(Caisis.BOL.SpecimenStorage.StorageId + " = " + storagesIdStr)[0];
                    this.StorageName.Value = PageUtil.EscapeSingleQuotes(specimenRow[Caisis.BOL.SpecimenStorage.StorageName].ToString());
                }
                if (siteDT.Rows.Count >= 1)
                {
                    string  siteId  = siteDT.Rows[0][SpecimenSite.SiteId].ToString();
                    DataRow siteRow = siteDT.Select(SpecimenSite.SiteId + " = " + siteId)[0];
                    this.SiteName.Value = PageUtil.EscapeSingleQuotes(siteRow[SpecimenSite.SiteName].ToString());
                }
            }

            string sPositionId = specimen[Specimen.PositionId].ToString();

            if (!String.IsNullOrEmpty(sPositionId))
            {
                int positionId       = int.Parse(sPositionId);
                SpecimenPosition pos = new SpecimenPosition();
                pos.Get(positionId);
                this.PositionName.Value = pos[SpecimenPosition.Position].ToString();
                this.PositionId.Value   = pos[SpecimenPosition.PositionId].ToString();
            }
        }
Example #6
0
        protected void Update_Click(object sender, CommandEventArgs e)
        {
            SpecimenPosition pos = new SpecimenPosition();

            if (!string.IsNullOrEmpty(BoxId.Value))
            {
                int boxId = int.Parse(BoxId.Value);
                // checks for Position & set values in Specimen Position Table
                if (!string.IsNullOrEmpty(PositionName.Value))
                {
                    if (!string.IsNullOrEmpty(this.PositionId.Value))
                    {
                        // Load Position Record
                        int posId = int.Parse(this.PositionId.Value);
                        pos.Get(posId);
                    }
                    pos[SpecimenPosition.BoxId]          = this.BoxId.Value;
                    pos[SpecimenPosition.Position]       = this.PositionName.Value;
                    pos[SpecimenPosition.PositionStatus] = "Filled";
                    pos.Save();

                    // Update specimens table with boxid and position ids
                    CurrentSpecimen[Specimen.PositionId] = pos[SpecimenPosition.PositionId].ToString();
                    CurrentSpecimen[Specimen.BoxId]      = pos[SpecimenPosition.BoxId].ToString();
                }
                else
                {
                    string currentPosId = CurrentSpecimen[Specimen.PositionId].ToString();
                    // Checks for PositionId if already exists
                    // then remove from SpecimenPositions, since a box is choosen instead of a position
                    if (!string.IsNullOrEmpty(currentPosId))
                    {
                        CurrentSpecimen[Specimen.BoxId]      = boxId;
                        CurrentSpecimen[Specimen.PositionId] = string.Empty;

                        pos.Delete(int.Parse(currentPosId));
                    }
                    else
                    {
                        CurrentSpecimen[Specimen.BoxId]      = boxId;
                        CurrentSpecimen[Specimen.PositionId] = string.Empty;
                    }
                }
            }
            CurrentSpecimen[Specimen.SpecimenNotes]            = this.SpecimenNotes.Value;
            CurrentSpecimen[Specimen.SpecimenOriginalQty]      = this.SpecimenOriginalQty.Value;
            CurrentSpecimen[Specimen.SpecimenRemainingQty]     = this.SpecimenRemainingQty.Value;
            CurrentSpecimen[Specimen.SpecimenPreservationType] = this.SpecimenPreservationType.Value;
            CurrentSpecimen[Specimen.SpecimenReferenceNumber]  = this.SpecimenReferenceNumber.Value;
            CurrentSpecimen[Specimen.SpecimenStatus]           = this.SpecimenStatus.Value;
            CurrentSpecimen[Specimen.ContactId]       = this.Contact.Value;
            CurrentSpecimen[Specimen.SpecimenSubType] = this.SpecimenSubType.Value;
            CurrentSpecimen[Specimen.SpecimenType]    = this.SpecimenType.Value;
            CurrentSpecimen[Specimen.SpecimenUnits]   = this.SpecimenUnits.Value;

            CurrentSpecimen.Save();

            string specId       = CurrentSpecimen[Specimen.SpecimenId].ToString();
            string parentspecId = CurrentSpecimen[Specimen.ParentSpecimenId].ToString();

            //calculating parent specimen RemQty on updating sub-specimen OrgQty
            //if (!string.IsNullOrEmpty(parentspecId))
            //{
            //    Specimen ParentSpecimen = new Specimen();
            //    ParentSpecimen.Get(Int32.Parse(parentspecId.ToString()));
            //    string PparentspecId = ParentSpecimen[Specimen.ParentSpecimenId].ToString();

            //    string specimenRemQty = ParentSpecimen[Specimen.SpecimenRemainingQty].ToString();
            //    if (!string.IsNullOrEmpty(specimenRemQty))
            //    {
            //        specimenRemQty = ParentSpecimen[Specimen.SpecimenRemainingQty].ToString();
            //    }
            //    else
            //    {
            //        specimenRemQty = ParentSpecimen[Specimen.SpecimenOriginalQty].ToString();
            //    }
            //    string subspecOrgQty = this.SpecimenOriginalQty.Value;
            //    int specRemQty;

            //    if (!string.IsNullOrEmpty(subspecOrgQty))
            //    {
            //        if (Int32.Parse(subspecOrgQty) <= Int32.Parse(specimenRemQty))
            //        {
            //            specRemQty = Int32.Parse(specimenRemQty) - Int32.Parse(subspecOrgQty);
            //            ParentSpecimen[Specimen.SpecimenRemainingQty] = specRemQty;
            //        }
            //    }
            //    else
            //    {
            //        specRemQty = Int32.Parse(specimenRemQty) - 0;
            //        ParentSpecimen[Specimen.SpecimenRemainingQty] = specRemQty;
            //    }

            //    ParentSpecimen.Save();
            //}
            SetRefreshClientBlock();
        }