Ejemplo n.º 1
0
        public int UpdateSpecimenCondition(int specimenId, string condition)
        {
            Specimen biz = new Specimen();

            biz.Get(specimenId);
            string notes = biz[Specimen.SpecimenNotes].ToString();

            if (!string.IsNullOrEmpty(condition) && GetSpecimenCondition(notes) != condition)
            {
                string updatedNotes = notes;
                bool   found        = false;
                foreach (string conditionValue in conditions)
                {
                    if (updatedNotes.Contains(conditionValue))
                    {
                        updatedNotes = updatedNotes.Replace(conditionValue, condition);
                        found        = true;
                        break;
                    }
                }
                if (found == false)
                {
                    updatedNotes = updatedNotes + (updatedNotes == "" ? "" : " ") + condition;
                }

                if (notes != updatedNotes)
                {
                    biz[Specimen.SpecimenNotes] = updatedNotes;
                    biz.Save();
                }
            }
            return((int)biz[Specimen.SpecimenId]);
        }
Ejemplo n.º 2
0
        private void AddSpecimensToCollection(int colId, string specimenIds, bool isNewCollection)
        {
            if (!string.IsNullOrEmpty(specimenIds))
            {
                char[]   delimiters = { ',' };
                string[] ids        = specimenIds.Split(new char[] { ',' });
                this.numOfSpecimensAdded = ids.GetLength(0);

                //get each specimen by id and set its collectionId
                foreach (string sId in ids)
                {
                    Specimen biz = new Specimen();
                    Specimen_SpecimenCollections bizcol = new Specimen_SpecimenCollections();

                    biz.Get(int.Parse(sId));
                    //biz[Specimen.CollectionId] = colId;
                    //biz[Specimen.SpecimenStatus] = "Unavailable: Reserved"; //bug fix
                    //biz.Save();

                    if (!SpecimenCollectionExists(int.Parse(sId), colId))
                    {
                        bizcol[Specimen_SpecimenCollections.SpecimenId]   = sId;
                        bizcol[Specimen_SpecimenCollections.CollectionId] = colId;
                        bizcol.Save();
                    }
                    BindSpecimensGrid();
                }

                LoadExistingCollection(colId, isNewCollection);
            }
        }
        /// <summary>
        /// Build a data grid interface for updating in bulk
        /// </summary>
        private void BuildBulkEditForm()
        {
            string            postedSpecimens = Request.Form["specimens"] + "";
            IEnumerable <int> specimenIds     = postedSpecimens.Split(',').Select(s => int.Parse(s));

            // get a list of Specimens
            List <Specimen> specimens = new List <Specimen>();

            foreach (int specimenId in specimenIds)
            {
                Specimen specimen = new Specimen();
                specimen.Get(specimenId);
                specimens.Add(specimen);
            }
            // data bind
            DataView specimenDataView = specimens.AsDataView <Specimen>();

            BulkEditGrid.DataSource = specimenDataView;
            BulkEditGrid.DataBind();

            // adjust UI
            int startIndex  = 3;                              // exclude required columns
            int endIndex    = BulkEditGrid.Columns.Count - 1; // exclude date column
            var showIndexes = EVENT_TYPE_INDEXES[InventoryMode];

            for (int i = startIndex; i < endIndex; i++)
            {
                BulkEditGrid.Columns[i].Visible = showIndexes.Contains(i);
            }
        }
Ejemplo n.º 4
0
        //used to update specimen status on deleting collection
        private void UpdateSpecimenStatus(int specId, string status)
        {
            Specimen bizSpec = new Specimen();

            bizSpec.Get(specId);

            bizSpec[Specimen.SpecimenStatus] = status;
            bizSpec.Save();
        }
Ejemplo n.º 5
0
 private IEnumerable <Specimen> GetSpecimens(IEnumerable <int> specimenIds)
 {
     foreach (int specimenId in specimenIds)
     {
         Specimen specimen = new Specimen();
         specimen.Get(specimenId);
         yield return(specimen);
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Foreach specimen id, update specimen record with new status
 /// </summary>
 /// <param name="specimens"></param>
 /// <param name="status"></param>
 private void UpdateSpecimenStatus(IEnumerable <int> specimens, string status)
 {
     foreach (int specimenId in specimens)
     {
         Specimen biz = new Specimen();
         biz.Get(specimenId);
         biz[Specimen.SpecimenStatus] = status;
         biz.Save();
     }
 }
Ejemplo n.º 7
0
        // TODO:
        // 1) should use all CaisisInputControls and BizO's to get/set data
        // 2) set lookup code values properly

        override protected void Page_Load(object sender, System.EventArgs e)
        {
            base.Page_Load(sender, e);

            specimenId = Convert.ToInt32(Request.QueryString["specimenId"]);

            // Set Parent Specimen
            CurrentSpecimen = new Specimen();
            CurrentSpecimen.Get(specimenId);

            BindSpecimenEventsGrid();
        }
Ejemplo n.º 8
0
 protected void UpdateSpecimens(object sender, EventArgs e)
 {
     foreach (GridViewRow dirtyRow in SpecimenInventory.DirtyGridRows)
     {
         var keys = SpecimenInventory.DataKeys[dirtyRow.RowIndex];
         int specimenAccessionId = (int)keys[Specimen.SpecimenAccessionId];
         int specimenId = (int)keys[Specimen.SpecimenId];
         Specimen specimen = new Specimen();
         specimen.Get(specimenId);
         CICHelper.SetBOValues(dirtyRow.Controls, specimen, specimenAccessionId);
         specimen.Save();
     }
 }
Ejemplo n.º 9
0
        protected override void Page_Load(object sender, System.EventArgs e)
        {
            specimenId       = Convert.ToInt32(Request.QueryString["specimenId"]);
            parentspecimenId = (Request.QueryString["parentspecimenId"]);

            //get parent specimen
            specimen = new Specimen();
            specimen.Get(specimenId);

            if (!Page.IsPostBack)
            {
                LoadSpecimenInfo();
            }
        }
Ejemplo n.º 10
0
        // TODO:
        // 1) should use all CaisisInputControls and BizO's to get/set data
        // 2) set lookup code values properly
        // 3) see if any data from SpecimenAccession table should be shown on this form

        override protected void Page_Load(object sender, System.EventArgs e)
        {
            specimenId   = Convert.ToInt32(Request.QueryString["specimenId"]);
            specId.Value = specimenId.ToString();

            CurrentSpecimen = new Specimen();
            CurrentSpecimen.Get(this.specimenId);

            if (!Page.IsPostBack)
            {
                //populating Contacts field
                DataTable contactsdt = da.GetContactsForSpecimens();
                Contact.DataSource = contactsdt;
                Contact.DataBind();

                LoadSpecimenInfo();
            }
        }
Ejemplo n.º 11
0
        protected void RemoveFromCollection(object sender, CommandEventArgs e)
        {
            int priKey = int.Parse(e.CommandArgument.ToString());

            Specimen biz = new Specimen();

            biz.Get(priKey);
            //biz[Specimen.CollectionId] = DBNull.Value;
            //biz[Specimen.SpecimenStatus] = "Available";
            //biz.Save();

            SpecimenManagerDa da = new SpecimenManagerDa();
            int specColId        = da.GetPrimKeybySpecId(priKey);
            Specimen_SpecimenCollections bizcol = new Specimen_SpecimenCollections();

            bizcol.Delete(specColId);

            BindSpecimensGrid();
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Special logic for removing specimen and rolling back the status
        /// </summary>
        /// <param name="specimenCollectionId"></param>
        private void RemoveSpecimenFromCollection(int specimenCollectionId)
        {
            Specimen_SpecimenCollections biz = new Specimen_SpecimenCollections();

            biz.Get(specimenCollectionId);
            if (!biz.IsEmpty)
            {
                int      specimenId = (int)biz[Specimen_SpecimenCollections.SpecimenId];
                Specimen specimen   = new Specimen();
                specimen.Get(specimenId);
                string currentStatus  = specimen[Specimen.SpecimenStatus].ToString();
                string rollbackStatus = "";
                switch (currentStatus)
                {
                case "In Transit to Pathology":
                    rollbackStatus = "Collected";
                    break;

                case "In Transit to Sequencing":
                    rollbackStatus = "Pathology Review Completed";
                    break;

                case "In Transit to Analysis":
                    rollbackStatus = "Sequenced";
                    break;

                case "In Transit to cBIO Portal":
                    rollbackStatus = "Analysis Complete";
                    break;

                default:
                    break;
                }
                // rollback status
                if (!string.IsNullOrEmpty(currentStatus) && !string.IsNullOrEmpty(rollbackStatus))
                {
                    specimen[Specimen.SpecimenStatus] = rollbackStatus;
                    specimen.Save();
                }
                biz.Delete(specimenCollectionId);
            }
        }
Ejemplo n.º 13
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();
        }
Ejemplo n.º 14
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();
            }
        }
        private void PopulateSpecimenDetailsRow(Control row, int specimenId)
        {
            // Core
            HiddenField   SpecimenNumField     = row.FindControl("SpecimenNumField") as HiddenField;
            HiddenField   SpecimenSubTypeField = row.FindControl("SpecimenSubTypeField") as HiddenField;
            CaisisTextBox StatusDate           = row.FindControl("StatusDate") as CaisisTextBox;
            // Sequencing
            CaisisSelect          Sequencing_Failed_Reason = row.FindControl("Sequencing_Failed_Reason") as CaisisSelect;
            CaisisRadioButtonList Extraction_Radio         = row.FindControl("Extraction_Radio") as CaisisRadioButtonList;
            CaisisRadioButtonList Library_Radio            = row.FindControl("Library_Radio") as CaisisRadioButtonList;
            CaisisRadioButtonList Sequenced_Radio          = row.FindControl("Sequenced_Radio") as CaisisRadioButtonList;
            // Analysis
            CaisisRadioButtonList Analysis_Radio  = row.FindControl("Analysis_Radio") as CaisisRadioButtonList;
            CaisisRadioButtonList Pathology_Radio = row.FindControl("Pathology_Radio") as CaisisRadioButtonList;
            // Pathology
            CaisisSelect   Analysis_Failed_Reason = row.FindControl("Analysis_Failed_Reason") as CaisisSelect;
            CaisisComboBox SpecimenConditionNotes = row.FindControl("SpecimenConditionNotes") as CaisisComboBox;

            Specimen specimen = new Specimen();

            specimen.Get(specimenId);
            string num    = specimen[BOL.Specimen.SpecimenReferenceNumber].ToString();
            string status = specimen[BOL.Specimen.SpecimenStatus].ToString();
            string notes  = specimen[BOL.Specimen.SpecimenNotes].ToString();

            SpecimenNumField.Value     = num;
            SpecimenSubTypeField.Value = specimen[BOL.Specimen.SpecimenSubType].ToString();

            SpecimenEvents specimenEvent = GetSequencingEvent(specimenId);

            // applies to all
            if (specimenEvent != null)
            {
                StatusDate.Value = string.Format("{0:d}", specimenEvent[SpecimenEvents.EventDate]);
            }
            // set relevant radios
            if (InventoryMode == SpecimenInventoryMode.Sequencing)
            {
                switch (status)
                {
                case "Tissue Extraction Successful":
                    Extraction_Radio.Value = ANSWER_YES;
                    break;

                case "Tissue Extraction Unsuccessful":
                    Extraction_Radio.Value = ANSWER_NO;
                    if (specimenEvent != null && !specimenEvent.IsNull(SpecimenEvents.EventResult))
                    {
                        Sequencing_Failed_Reason.Value = specimenEvent[SpecimenEvents.EventResult].ToString();
                    }
                    break;

                case "Library Construction Successful":
                    Extraction_Radio.Value = ANSWER_YES;
                    Library_Radio.Value    = ANSWER_YES;
                    break;

                case "Library Construction Unsuccessful":
                    Extraction_Radio.Value = ANSWER_YES;
                    Library_Radio.Value    = ANSWER_NO;
                    if (specimenEvent != null && !specimenEvent.IsNull(SpecimenEvents.EventResult))
                    {
                        Sequencing_Failed_Reason.Value = specimenEvent[SpecimenEvents.EventResult].ToString();
                    }
                    break;

                case "Sequenced":
                    Extraction_Radio.Value = ANSWER_YES;
                    Library_Radio.Value    = ANSWER_YES;
                    Sequenced_Radio.Value  = ANSWER_YES;
                    break;

                case "Sequencing Unsuccessful":
                    Extraction_Radio.Value = ANSWER_YES;
                    Library_Radio.Value    = ANSWER_YES;
                    Sequenced_Radio.Value  = ANSWER_NO;
                    if (specimenEvent != null && !specimenEvent.IsNull(SpecimenEvents.EventResult))
                    {
                        Sequencing_Failed_Reason.Value = specimenEvent[SpecimenEvents.EventResult].ToString();
                    }
                    break;

                default:
                    Extraction_Radio.ClearSelection();
                    Library_Radio.ClearSelection();
                    Sequenced_Radio.ClearSelection();
                    break;
                }
            }
            else if (InventoryMode == SpecimenInventoryMode.Analysis)
            {
                switch (status)
                {
                case "Analysis Complete":
                    Analysis_Radio.Value = ANSWER_YES;
                    break;

                case "Analysis Unsuccessul":
                    Analysis_Radio.Value = ANSWER_NO;
                    if (specimenEvent != null && !specimenEvent.IsNull(SpecimenEvents.EventResult))
                    {
                        Analysis_Failed_Reason.Value = specimenEvent[SpecimenEvents.EventResult].ToString();
                    }
                    break;

                default:
                    Analysis_Radio.ClearSelection();
                    break;
                }
            }
            else if (InventoryMode == SpecimenInventoryMode.Pathology)
            {
                switch (status)
                {
                case "Pathology Review Completed":
                    Pathology_Radio.Value = ANSWER_YES;
                    break;

                case "Banked by Pathology":
                    Pathology_Radio.Value = ANSWER_NO;
                    break;

                default:
                    Pathology_Radio.ClearSelection();
                    break;
                }
                // build condition list, fill into notes field
                DataTable conditions = new DataTable();
                conditions.Columns.Add("Condition");
                string foundCondition = "";
                foreach (string condition in specimenController.GetConditions())
                {
                    // find selected
                    if (specimenController.GetSpecimenCondition(notes) == condition)
                    {
                        foundCondition = condition;
                    }
                    // add data
                    conditions.Rows.Add(new object[] { condition });
                }

                SpecimenConditionNotes.BuildComboData(conditions, "Condition", "Condition");

                SpecimenConditionNotes.Value = notes;
            }
        }
        private void UpdateSpecimenDetailsRow(Control row, int specimenId)
        {
            // Core
            HiddenField   SpecimenNumField     = row.FindControl("SpecimenNumField") as HiddenField;
            HiddenField   SpecimenSubTypeField = row.FindControl("SpecimenSubTypeField") as HiddenField;
            CaisisTextBox StatusDate           = row.FindControl("StatusDate") as CaisisTextBox;
            // Sequencing
            CaisisSelect          Sequencing_Failed_Reason = row.FindControl("Sequencing_Failed_Reason") as CaisisSelect;
            CaisisRadioButtonList Extraction_Radio         = row.FindControl("Extraction_Radio") as CaisisRadioButtonList;
            CaisisRadioButtonList Library_Radio            = row.FindControl("Library_Radio") as CaisisRadioButtonList;
            CaisisRadioButtonList Sequenced_Radio          = row.FindControl("Sequenced_Radio") as CaisisRadioButtonList;
            // Analysis
            CaisisRadioButtonList Analysis_Radio  = row.FindControl("Analysis_Radio") as CaisisRadioButtonList;
            CaisisRadioButtonList Pathology_Radio = row.FindControl("Pathology_Radio") as CaisisRadioButtonList;
            // Pathology
            CaisisSelect   Analysis_Failed_Reason = row.FindControl("Analysis_Failed_Reason") as CaisisSelect;
            CaisisComboBox SpecimenConditionNotes = row.FindControl("SpecimenConditionNotes") as CaisisComboBox;


            // shared variables
            string   status     = "";
            DateTime?statusDate = null;

            if (!string.IsNullOrEmpty(StatusDate.Value))
            {
                statusDate = DateTime.Parse(StatusDate.Value);
            }
            if (InventoryMode == SpecimenInventoryMode.Sequencing)
            {
                string failedReason = Sequencing_Failed_Reason.Value;
                string statusResult = "";
                // determine new status, top down
                if (Extraction_Radio.Value == ANSWER_NO)
                {
                    status       = "Tissue Extraction Unsuccessful";
                    statusResult = failedReason;
                }
                else if (Extraction_Radio.Value == ANSWER_YES)
                {
                    if (Library_Radio.Value == ANSWER_NO)
                    {
                        status       = "Library Construction Unsuccessful";
                        statusResult = failedReason;
                    }
                    else if (Library_Radio.Value == ANSWER_YES)
                    {
                        if (Sequenced_Radio.Value == ANSWER_NO)
                        {
                            status       = "Sequencing Unsuccessful";
                            statusResult = failedReason;
                        }
                        else if (Sequenced_Radio.Value == ANSWER_YES)
                        {
                            status = "Sequenced";
                        }
                        else
                        {
                            status = "Library Construction Successful";
                        }
                    }
                    else
                    {
                        status = "Tissue Extraction Successful";
                    }
                }
                // update event
                if (!string.IsNullOrEmpty(status) || statusDate.HasValue || !string.IsNullOrEmpty(statusResult))
                {
                    UpdateSequencingEvent(specimenId, status, statusDate, statusResult);
                }
            }
            else if (InventoryMode == SpecimenInventoryMode.Pathology)
            {
                if (Pathology_Radio.Value == ANSWER_YES)
                {
                    status = "Pathology Review Completed";
                }
                else if (Analysis_Radio.Value == ANSWER_NO)
                {
                    status = "Banked by Pathology";
                }
                // update event
                if (!string.IsNullOrEmpty(status) || statusDate.HasValue)
                {
                    UpdateSequencingEvent(specimenId, status, statusDate, "");
                }
            }
            else if (InventoryMode == SpecimenInventoryMode.Analysis)
            {
                string failedReason = Analysis_Failed_Reason.Value;
                if (Analysis_Radio.Value == ANSWER_YES)
                {
                    status = "Analysis Complete";
                    // on successful analysis, update event
                    UpdateSequencingEvent(specimenId, status, statusDate, "");
                }
                else if (Analysis_Radio.Value == ANSWER_NO)
                {
                    status = "Analysis Unsuccessul";
                    UpdateSequencingEvent(specimenId, status, statusDate, failedReason);
                }
            }
            // update specimen status
            if (!string.IsNullOrEmpty(status))
            {
                Specimen specimen = new Specimen();
                specimen.Get(specimenId);
                specimen[Specimen.SpecimenStatus] = status;
                // special case
                if (InventoryMode == SpecimenInventoryMode.Pathology)
                {
                    specimen[Specimen.SpecimenNotes] = SpecimenConditionNotes.Value;
                }
                specimen.Save();
            }
        }
Ejemplo n.º 17
0
        private void LoadSpecimenInfo()
        {
            CurrentSpecimen = new Specimen();
            CurrentSpecimen.Get(this.specimenId);

            string parentspecId = CurrentSpecimen[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();
            //}
            //RemQty.Value = CurrentSpecimen[Specimen.SpecimenRemainingQty].ToString();

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


            //load box and position from SpecimenBoxes and SpecimenPositions tables
            string sBoxId = CurrentSpecimen[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 = CurrentSpecimen[Specimen.PositionId].ToString();

            if (!String.IsNullOrEmpty(sPositionId))
            {
                int positionId = int.Parse(sPositionId);
                pos.Get(positionId);
                this.PositionName.Value = pos[SpecimenPosition.Position].ToString();
                this.PositionId.Value   = pos[SpecimenPosition.PositionId].ToString();
            }
        }
Ejemplo n.º 18
0
        protected void UpdateBtn_Click(object sender, ImageClickEventArgs e)
        {
            CurrentSpecimen = new Specimen();
            CurrentSpecimen.Get(this.specimenId);

            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;

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

            //calculating parent Rem qty based on child Qty
            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;
                //}

                CurrentSpecimen.Save();
                ParentSpecimen.Save();
            }
            else
            {
                CurrentSpecimen.Save();
            }

            //Refreshing specimens hierarchy frame of Parent page
            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "RefreshParentwindow", "refreshParentwindow();", true);
        }
Ejemplo n.º 19
0
        protected void SaveBtn_Click(object sender, ImageClickEventArgs e)
        {
            CurrentSpecimen = new Specimen();
            CurrentSpecimen.Get(specimenId);

            Specimen subspecimen = new Specimen();

            CICHelper.SetBOValues(inputControlsRow.Controls, subspecimen, specimenId);

            subspecimen[Specimen.SpecimenAccessionId] = CurrentSpecimen[Specimen.SpecimenAccessionId];
            subspecimen[Specimen.ParentSpecimenId]    = CurrentSpecimen[Specimen.SpecimenId];
            subspecimen[Specimen.EnteredTime]         = DateTime.Now;
            subspecimen[Specimen.EnteredBy]           = new Caisis.Security.SecurityController().GetUserName();

            if (!string.IsNullOrEmpty(BoxId.Value))
            {
                int boxId = int.Parse(BoxId.Value);
                if (!string.IsNullOrEmpty(PositionName.Value))
                {
                    if (!string.IsNullOrEmpty(this.PositionId.Value))
                    {
                        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 positionids
                    subspecimen[Specimen.PositionId] = pos[SpecimenPosition.PositionId].ToString();
                    subspecimen[Specimen.BoxId]      = pos[SpecimenPosition.BoxId].ToString();
                }
                else
                {
                    string currentPosId = subspecimen[Specimen.PositionId].ToString();
                    if (!string.IsNullOrEmpty(currentPosId))
                    {
                        subspecimen[Specimen.BoxId]      = boxId;
                        subspecimen[Specimen.PositionId] = string.Empty;

                        pos.Delete(int.Parse(currentPosId));
                    }
                    else
                    {
                        subspecimen[Specimen.BoxId]      = boxId;
                        subspecimen[Specimen.PositionId] = string.Empty;
                    }
                }
            }

            //calculating parent Rem qty based on child Org qty

            //string specimenRemQty = CurrentSpecimen[Specimen.SpecimenRemainingQty].ToString();
            //if (!string.IsNullOrEmpty(specimenRemQty))
            //{
            //    specimenRemQty = CurrentSpecimen[Specimen.SpecimenRemainingQty].ToString();
            //}
            //else
            //{
            //    specimenRemQty = CurrentSpecimen[Specimen.SpecimenOriginalQty].ToString();
            //}

            //string subspecOrgQty = this.SpecimenOriginalQty.Value;
            //string specimenUnits = CurrentSpecimen[Specimen.SpecimenUnits].ToString();
            //string subspecUnits = this.SpecimenUnits.Value;
            //int specRemQty;

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

            CurrentSpecimen.Save();

            //if user didn't enter rem qty, then it is same as org qty
            if (!string.IsNullOrEmpty(SpecimenRemainingQty.Text))
            {
                subspecimen[Specimen.SpecimenRemainingQty] = SpecimenRemainingQty.Text;
            }
            else
            {
                subspecimen[Specimen.SpecimenRemainingQty] = SpecimenOriginalQty.Text;
            }

            subspecimen.Save();

            //Refreshing parent page
            string specId       = subspecimen[Specimen.SpecimenId].ToString();
            string parentspecId = subspecimen[Specimen.ParentSpecimenId].ToString();

            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "RefreshParentwindow", "refreshParent('" + specId + "','" + parentspecId + "');", true);
        }