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]); }
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); } }
//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(); }
private IEnumerable <Specimen> GetSpecimens(IEnumerable <int> specimenIds) { foreach (int specimenId in specimenIds) { Specimen specimen = new Specimen(); specimen.Get(specimenId); yield return(specimen); } }
/// <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(); } }
// 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(); }
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(); } }
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(); } }
// 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(); } }
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(); }
/// <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); } }
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(); }
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(); } }
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(); } }
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); }
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); }