/// <summary> /// method /// US:878 /// Used to update a pat checkList /// </summary> /// <param name="pci"></param> /// <returns></returns> public CStatus UpdatePatChecklist(CPatChecklistDataItem pci) { //create a status object and check for valid dbconnection CStatus status = new CStatus(); status = DBConnValid(); if (!status.Status) { return(status); } //load the paramaters list CParameterList pList = new CParameterList(SessionID, ClientIP, UserID); //add the rest of the parameters pList.AddInputParameter("pi_nPatCLID", pci.PatCLID); pList.AddInputParameter("pi_dtAssignmentDate", pci.AssignmentDate); pList.AddInputParameter("pi_dtProcedureDate", pci.ProcedureDate); pList.AddInputParameter("pi_nChecklistStateID", (long)pci.ChecklistStateID); pList.AddInputParameter("pi_nStateID", (long)pci.StateID); //execute the SP return(DBConn.ExecuteOracleSP("PCK_PAT_CHECKLIST.UpdatePatChecklist", pList)); }
/// <summary> /// override /// US:878 /// saves the checklist /// </summary> /// <param name="lStatusCode"></param> /// <param name="strStatusComment"></param> /// <returns></returns> public override CStatus SaveControl() { CPatChecklistData pcld = new CPatChecklistData(BaseMstr.BaseData); CPatChecklistDataItem di = null; CStatus status = pcld.GetPatChecklistDI(Convert.ToInt64(ddlPatChecklist.SelectedValue), out di); if (!status.Status) { return(status); } di.ChecklistStateID = (k_CHECKLIST_STATE_ID)Convert.ToInt64(ddlChecklistState.SelectedValue); di.ProcedureDate = CDataUtils.GetDate( tbProcedureDate.Text, ucProcedureTime.HH, ucProcedureTime.MM, ucProcedureTime.SS); status = pcld.UpdatePatChecklist(di); if (!status.Status) { return(status); } return(new CStatus()); }
protected void OnContinueExisting(object sender, CAppUserControlArgs e) { CPatChecklistDataItem di = new CPatChecklistDataItem(); di.ProcedureDate = CDataUtils.GetNullDate(); di.AssignmentDate = DateTime.Now; di.ChecklistID = ucExistingChecklist.ChecklistID; di.ChecklistStateID = k_CHECKLIST_STATE_ID.Open; di.PatientID = PatientID; di.StateID = k_STATE_ID.Unknown; long lPatCLID = 0; CPatChecklistData pcld = new CPatChecklistData(BaseMstr.BaseData); CStatus status = pcld.InsertPatChecklist(di, out lPatCLID); if (!status.Status) { ShowStatusInfo(status); return; } if (BaseMstr.MDWSTransfer) { //talk to the communicator to update the //patient checklist from mdws CCommunicator com = new CCommunicator(); status = com.RefreshPatientCheckList( BaseMstr.DBConn, BaseMstr.BaseData, PatientID, lPatCLID); if (!status.Status) { ShowStatusInfo(status); return; } } CPatientChecklist pcl = new CPatientChecklist(); status = pcl.LoadPatientChecklists(BaseMstr, PatientID, ddlPatChecklist); if (!status.Status) { ShowStatusInfo(status); return; } ddlPatChecklist.SelectedValue = lPatCLID.ToString(); status = LoadChecklist(); if (!status.Status) { ShowStatusInfo(status); return; } //set the UI permissions based on the user logged in SetPermissions(btnTIU.Enabled); }
/// <summary> /// method /// US:911 /// cancels the checklist specified by the patient checklist id /// </summary> /// <param name="lPatCLID"></param> /// <returns></returns> private CStatus CancelChecklist(long lPatCLID) { CPatChecklistData PatChecklist = new CPatChecklistData(BaseData); CPatChecklistDataItem di = null; CStatus status = PatChecklist.GetPatChecklistDI(lPatCLID, out di); if (!status.Status) { return(status); } di.ChecklistStateID = k_CHECKLIST_STATE_ID.Cancelled; return(PatChecklist.UpdatePatChecklist(di)); }
/// <summary> /// event /// displays the edit checklist item component dialog /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void OnClickEditItem(object sender, EventArgs e) { CPatChecklistData pcld = new CPatChecklistData(BaseMstr.BaseData); CPatChecklistDataItem di = null; CStatus status = pcld.GetPatChecklistDI(PatientChecklistID, out di); if (!status.Status) { ShowStatusInfo(k_STATUS_CODE.Failed, Resources.ErrorMessages.ERROR_SP_CURCHECKLIST); return; } if (di.ChecklistStateID == k_CHECKLIST_STATE_ID.Cancelled || di.ChecklistStateID == k_CHECKLIST_STATE_ID.Closed) { ShowStatusInfo(k_STATUS_CODE.Failed, Resources.ErrorMessages.ERROR_SP_CHECKLISTSTATE); return; } Button btnSender = (Button)sender; if (btnSender == null) { ShowStatusInfo(k_STATUS_CODE.Failed, Resources.ErrorMessages.ERROR_SP_ITEM); return; } ucItemEditor.PatientID = PatientID; ucItemEditor.ChecklistID = ChecklistID; ucItemEditor.ItemID = Convert.ToInt64(btnSender.Attributes["ITEM_ID"]); ucItemEditor.ChecklistItemID = Convert.ToInt64(btnSender.Attributes["ITEM_ID"]); ucItemEditor.PatientChecklistID = PatientChecklistID; k_EDIT_MODE lEditMode = k_EDIT_MODE.INITIALIZE; status = ucItemEditor.LoadControl(lEditMode); if (!status.Status) { ShowStatusInfo(status); return; } ucItemEditor.ShowMPE(); }
/// <summary> /// override /// validates the checklist's fields /// </summary> /// <param name="lStatusCode"></param> /// <param name="plistStatus"></param> /// <returns></returns> public override CStatus ValidateUserInput(out CParameterList plistStatus) { plistStatus = new CParameterList(); CPatChecklistData pcld = new CPatChecklistData(BaseMstr.BaseData); CPatChecklistDataItem di = null; CStatus status = pcld.GetPatChecklistDI(Convert.ToInt64(ddlPatChecklist.SelectedValue), out di); if (!status.Status) { plistStatus.AddInputParameter("ERROR_SP_CURCHECKLIST", Resources.ErrorMessages.ERROR_SP_CURCHECKLIST); return(status); } if (ChecklistStateID != di.ChecklistStateID && (di.ChecklistStateID == k_CHECKLIST_STATE_ID.Cancelled || di.ChecklistStateID == k_CHECKLIST_STATE_ID.Closed)) { plistStatus.AddInputParameter("ERROR_SP_CHECKLISTSTATE", Resources.ErrorMessages.ERROR_SP_CHECKLISTSTATE); status.Status = false; status.StatusCode = k_STATUS_CODE.Failed; return(status); } DateTime dtProceduteDate = CDataUtils.GetDate( tbProcedureDate.Text, ucProcedureTime.HH, ucProcedureTime.MM, ucProcedureTime.SS); if (dtProceduteDate != CDataUtils.GetNullDate() && dtProceduteDate < DateTime.Now) { plistStatus.AddInputParameter("ERROR_PROCEDURE_DATE", Resources.ErrorMessages.ERROR_PROCEDURE_DATE); } if (plistStatus.Count > 0) { status.Status = false; status.StatusCode = k_STATUS_CODE.Failed; } return(status); }
/// <summary> /// method /// US:838 /// Used to insert a pat checkList /// </summary> /// <param name="pci"></param> /// <param name="lPatCLID"></param> /// <returns></returns> public CStatus InsertPatChecklist(CPatChecklistDataItem pci, out long lPatCLID) { //initialize parameters lPatCLID = 0; //create a status object and check for valid dbconnection CStatus status = DBConnValid(); if (!status.Status) { return(status); } //load the paramaters list CParameterList pList = new CParameterList(SessionID, ClientIP, UserID); //add the rest of the parameters pList.AddInputParameter("pi_vPatientID", pci.PatientID); pList.AddInputParameter("pi_nChecklistID", pci.ChecklistID); pList.AddInputParameter("pi_dtAssignmentDate", pci.AssignmentDate); pList.AddInputParameter("pi_dtProcedureDate", pci.ProcedureDate); pList.AddInputParameter("pi_nChecklistStateID", (long)pci.ChecklistStateID); pList.AddInputParameter("pi_nStateID", (long)pci.StateID); pList.AddOutputParameter("po_nPatCLID", lPatCLID); //execute the SP status = DBConn.ExecuteOracleSP("PCK_PAT_CHECKLIST.InsertPatChecklist", pList); if (!status.Status) { return(status); } //get the TS_ID returned from the SP call lPatCLID = pList.GetParamLongValue("po_nPatCLID"); return(new CStatus()); }
/// <summary> /// Used to get a dataset holding 1 patient checklist /// by Patient Checklist ID /// </summary> /// <param name="strPatientID"></param> /// <param name="pci"></param> /// <param name="lStatusCode"></param> /// <param name="strStatus"></param> /// <returns></returns> public CStatus GetPatChecklistDI(long lPatCLID, out CPatChecklistDataItem di) { //initialize parameters di = null; //create a status object and check for valid dbconnection CStatus status = DBConnValid(); if (!status.Status) { return(status); } //load the paramaters list CParameterList pList = new CParameterList(SessionID, ClientIP, UserID); pList.AddInputParameter("pi_nPatCLID", lPatCLID); //get the dataset DataSet ds = null; CDataSet cds = new CDataSet(); status = cds.GetOracleDataSet(DBConn, "PCK_PAT_CHECKLIST.GetPatChecklistIDRS", pList, out ds); if (!status.Status) { return(status); } di = new CPatChecklistDataItem(ds); return(status); }
/// <summary> /// method /// US:902 /// runs the logic for the specified patient checklist if it is open /// </summary> /// <param name="lPatCLID"></param> /// <returns></returns> public CStatus RunLogic(long lPatCLID) { CPatChecklistData pcl = new CPatChecklistData(this); CPatChecklistDataItem di = null; CStatus status = pcl.GetPatChecklistDI(lPatCLID, out di); if (!status.Status) { return(status); } if (di.ChecklistStateID != k_CHECKLIST_STATE_ID.Open) { return(new CStatus()); } DataSet dsChecklistItems = null; CPatChecklistItemData pcli = new CPatChecklistItemData(this); status = pcli.GetPatCLItemsByPatCLIDDS(lPatCLID, out dsChecklistItems); if (!status.Status) { return(status); } foreach (DataRow drItem in dsChecklistItems.Tables[0].Rows) { try { //get the item type id long lItemTypeID = Convert.ToInt64(drItem["ITEM_TYPE_ID"]); string strPatientID = drItem["PATIENT_ID"].ToString(); long lPatChecklistID = Convert.ToInt64(drItem["PAT_CL_ID"]); long lChecklistID = Convert.ToInt64(drItem["CHECKLIST_ID"]); long lItemID = Convert.ToInt64(drItem["ITEM_ID"]); CExpressionList expList = new CExpressionList( this, drItem["PATIENT_ID"].ToString(), Convert.ToInt64(drItem["PAT_CL_ID"]), Convert.ToInt64(drItem["CHECKLIST_ID"]), Convert.ToInt64(drItem["ITEM_ID"])); status = expList.Load(drItem["LOGIC"].ToString()); if (!status.Status) { return(status); } //run the default logic for the collection if (lItemTypeID == (long)k_ITEM_TYPE_ID.Collection) { CItemCollectionData ColData = new CItemCollectionData(this); status = ColData.RunCollectionLogic(strPatientID, lPatChecklistID, lChecklistID, lItemID); if (!status.Status) { return(status); } } //run custom logic for the item status = expList.Evaluate(); if (!status.Status) { return(status); } } catch (Exception) { return(new CStatus( false, k_STATUS_CODE.Failed, LogicModuleMessages.ERROR_RUN_LOGIC)); } } return(new CStatus()); }
/// <summary> /// Generates the TIU text for a patient checklist /// </summary> /// <param name="strPatientID"></param> /// <param name="lPatCLID"></param> /// <param name="strText"></param> /// <returns></returns> public CStatus GetTIUText(string strPatientID, long lPatCLID, out string strNoteTitleTag, out string strText) { strText = string.Empty; strNoteTitleTag = string.Empty; CStatus status = new CStatus(); //patient data - get the di just in case we need more than the blurb CPatientDataItem diPat = new CPatientDataItem(); CPatientData patData = new CPatientData(this); status = patData.GetPatientDI(strPatientID, out diPat); //get the patient blurb string strBlurb = String.Empty; patData.GetPatientBlurb(strPatientID, out strBlurb); //build the TIU note text... //legend strText += "Definitions:\r\n"; //ts strText += CDataUtils.DelimitString("TS = The temporal state of an attribute defines whether the patient has had the test or event within a given time period", "\r\n", 80); strText += "\r\n"; //os strText += CDataUtils.DelimitString("OS = The outcome state of an attribute defines the resultant state of an attribute (e.g. normal, abnormal, problem/decision required)", "\r\n", 80); strText += "\r\n"; //ds strText += CDataUtils.DelimitString("DS = The decision state of an attribute defines a rule-based state of an attribute (e.g. Go, No-Go)", "\r\n", 80); strText += "\r\n"; strText += "\r\n"; DateTime dtNoteDate = DateTime.Now; string strNoteDate = CDataUtils.GetDateTimeAsString(dtNoteDate); strText += "Date: " + strNoteDate; strText += "\r\n\r\n"; //--demographics strText += CDataUtils.DelimitString(strBlurb, "\r\n", 80); strText += "\r\n"; //patient checklist data CPatChecklistDataItem diPatChecklist = new CPatChecklistDataItem(); status = GetPatChecklistDI(lPatCLID, out diPatChecklist); //checklist data CChecklistDataItem diChecklist = new CChecklistDataItem(); CChecklistData clData = new CChecklistData(this); status = clData.GetCheckListDI(diPatChecklist.ChecklistID, out diChecklist); //get the note title tag for the checklist, this is used to //write the correct note to MDWS strNoteTitleTag = diChecklist.NoteTitleTag; //--Checklist Name strText += "Checklist: "; strText += CDataUtils.DelimitString(diChecklist.ChecklistLabel, "\r\n", 80); strText += "\r\n"; //--Procedure Date strText += "Procedure Date: "; if (!CDataUtils.IsDateNull(diPatChecklist.ProcedureDate)) { strText += CDataUtils.GetDateAsString(diPatChecklist.ProcedureDate); } else { strText += "None"; } strText += "\r\n\r\n"; //patient checklist items and overall state long lColTSStateID = 0; long lColOSStateID = 0; long lColDSStateID = 0; long lSummaryStateID = 0; DataSet dsItems = null; CPatChecklistItemData diCLI = new CPatChecklistItemData(this); status = diCLI.GetPatCLItemsByPatCLIDDS(lPatCLID, out lColTSStateID, out lColOSStateID, out lColDSStateID, out lSummaryStateID, out dsItems); //--overall Checklist state string strOverallState = "Unknown"; switch (lSummaryStateID) { case (long)k_STATE_ID.Bad: strOverallState = "Bad"; break; case (long)k_STATE_ID.Good: strOverallState = "Good"; break; } strText += "Overall Checklist State: "; strText += strOverallState; strText += "\r\n\r\n"; strText += "Checklist Items:"; strText += "\r\n\r\n"; //loop over checklist items foreach (DataTable table in dsItems.Tables) { foreach (DataRow dr in table.Rows) { CPatChecklistItemDataItem itm = new CPatChecklistItemDataItem(dr); if (itm != null) { //get the data for the item CItemDataItem idi = new CItemDataItem(); CItemData itmData = new CItemData(this); itmData.GetItemDI(itm.ItemID, out idi); strText += CDataUtils.DelimitString("* " + idi.ItemLabel, "\r\n", 80); strText += "\r\n"; //temporal state CTemporalStateDataItem diTSi = new CTemporalStateDataItem(); CTemporalStateData tsdi = new CTemporalStateData(this); tsdi.GetTemporalStateDI(itm.TSID, out diTSi); strText += "TS: "; strText += CDataUtils.DelimitString(diTSi.TSLabel, "\r\n", 80); strText += " "; //outcome state COutcomeStateDataItem diOSi = new COutcomeStateDataItem(); COutcomeStateData osdi = new COutcomeStateData(this); osdi.GetOutcomeStateDI(itm.OSID, out diOSi); strText += "OS: "; strText += CDataUtils.DelimitString(diOSi.OSLabel, "\r\n", 80); strText += " "; //decision state CDecisionStateDataItem diDSi = new CDecisionStateDataItem(); CDecisionStateData dsdi = new CDecisionStateData(this); dsdi.GetDecisionStateDI(itm.DSID, out diDSi); string strDS = String.Empty; strDS += "DS: "; strDS += diDSi.DSLabel; //if decision state is overriden pull out the //last comment if (itm.IsOverridden == k_TRUE_FALSE_ID.True) { DataSet dsComments = null; //todo: override history is now stored in a diff table //this is obsolete will delete after testing //status = diCLI.GetPatientItemCommmentDS( // itm.PatCLID, // itm.ItemID, // out dsComments); status = diCLI.GetPatItemOverrideCommmentDS(itm.PatCLID, itm.ChecklistID, itm.ItemID, out dsComments); //first record is the newest comment if (!CDataUtils.IsEmpty(dsComments)) { //string strComment = CDataUtils.GetDSStringValue(dsComments, "comment_text"); //DateTime dtComment = CDataUtils.GetDSDateTimeValue(dsComments, "comment_date"); // string strComment = CDataUtils.GetDSStringValue(dsComments, "override_comment"); DateTime dtComment = CDataUtils.GetDSDateTimeValue(dsComments, "override_date"); long lCommentUserID = CDataUtils.GetDSLongValue(dsComments, "user_id"); DataSet dsUser = null; CUserData ud = new CUserData(this); ud.GetUserDS(lCommentUserID, out dsUser); string strUser = String.Empty; if (!CDataUtils.IsEmpty(dsUser)) { strUser = CDataUtils.GetDSStringValue(dsUser, "name"); } strDS += " Overridden "; strDS += CDataUtils.GetDateAsString(dtComment); strDS += " "; strDS += strUser; strDS += "\r\n\r\n"; strDS += strComment; } } //ds strText += CDataUtils.DelimitString(strDS, "\r\n", 80); strText += "\r\n\r\n"; } } } return(status); }
/// <summary> /// do the actual work of assigning the checklist /// </summary> /// <param name="state"></param> public void DoWork(Object state) { //thread hashcount work lock (HashCount) { if (!HashCount.ContainsKey(Thread.CurrentThread.GetHashCode())) { HashCount.Add(Thread.CurrentThread.GetHashCode(), 0); } HashCount[Thread.CurrentThread.GetHashCode()] = ((int)HashCount[Thread.CurrentThread.GetHashCode()]) + 1; } //do the real work here ////////////////////////////////////////////////////////////// //create a new connection for the thread CDataDBConn conn = new CDataDBConn(); conn.Connect(); CData data = new CData( conn, this.ClientIP, this.UserID, this.SessionID, this.WebSession, this.MDWSTransfer); CPatChecklistData pcl = new CPatChecklistData(data); string strPatientID = PatientID; CPatChecklistDataItem di = new CPatChecklistDataItem(); di.ProcedureDate = CDataUtils.GetNullDate(); di.AssignmentDate = DateTime.Now; di.ChecklistID = ChecklistID; di.ChecklistStateID = k_CHECKLIST_STATE_ID.Open; di.PatientID = strPatientID; di.StateID = k_STATE_ID.Unknown; long lPatCLID = 0; Status = pcl.InsertPatChecklist(di, out lPatCLID); if (Status.Status) { if (MDWSTransfer) { //talk to the communicator to update the //patient checklist from mdws CCommunicator com = new CCommunicator(); Status = com.RefreshPatientCheckList( conn, data, strPatientID, lPatCLID); } if (Status.Status) { CPatientChecklistLogic pcll = new CPatientChecklistLogic(data); Status = pcll.RunLogic(lPatCLID); } } //cleanup the database connection conn.Close(); //signals we are done. Interlocked.Increment(ref ThreadCount); if (ThreadCount == ThreadMax) { if (eventX != null) { eventX.Set(); ThreadCount = 0; ThreadMax = 0; } } }
/// <summary> /// US:1956 US:885 load the control with data /// </summary> /// <param name="lEditMode"></param> /// <returns></returns> public override CStatus LoadControl(k_EDIT_MODE lEditMode) { CStatus status = CClinic.LoadClinicDLL(BaseMstr.BaseData, ddlClinics); if (!status.Status) { return(status); } //load the tiu note string strTIU = String.Empty; string strNoteTitle = String.Empty; CPatChecklistData clData = new CPatChecklistData(BaseMstr.BaseData); status = clData.GetTIUText( PatientID, PatChecklistID, out strNoteTitle, out strTIU); if (!status.Status) { return(status); } //keep the note title as a property NoteTitle = strNoteTitle; //select the note title default clinic from the checklist CPatChecklistDataItem pdi = new CPatChecklistDataItem(); status = clData.GetPatChecklistDI(PatChecklistID, out pdi); if (!status.Status) { return(status); } CChecklistDataItem cli = new CChecklistDataItem(); CChecklistData cld = new CChecklistData(BaseMstr.BaseData); status = cld.GetCheckListDI(pdi.ChecklistID, out cli); if (!status.Status) { return(status); } if (cli.NoteTitleClinicID > 0) { ddlClinics.SelectedValue = cli.NoteTitleClinicID.ToString(); } //show the note title at the top of the popup lblNoteTitle.Text = strNoteTitle; //the note title tag is the title of the note, but we need the ien //to write the note... long lNoteTitleIEN = 0; CNoteTitleData nd = new CNoteTitleData(BaseMstr.BaseData); status = nd.GetNoteTitleIEN(strNoteTitle, out lNoteTitleIEN); if (!status.Status) { return(status); } NoteTitleIEN = Convert.ToString(lNoteTitleIEN); //set the text for the note txtTIU.Text = strTIU; return(new CStatus()); }
/// <summary> /// US:1880 method /// loads the selected checklist /// </summary> /// <returns></returns> protected CStatus LoadChecklist() { PatCLID = Convert.ToInt64(ddlPatChecklist.SelectedValue); if (PatCLID < 1) { return(new CStatus(false, k_STATUS_CODE.Failed, "TODO")); } CPatientChecklist pcl = new CPatientChecklist(); CStatus status = pcl.LoadPatientChecklists(BaseMstr, PatientID, ddlPatChecklist); if (!status.Status) { return(status); } ddlPatChecklist.SelectedValue = PatCLID.ToString(); CPatChecklistData pcld = new CPatChecklistData(BaseMstr.BaseData); CPatChecklistDataItem di = null; status = pcld.GetPatChecklistDI(PatCLID, out di); if (!status.Status) { return(status); } ddlChecklistState.SelectedValue = Convert.ToInt64(di.ChecklistStateID).ToString(); ChecklistID = di.ChecklistID; ChecklistStateID = di.ChecklistStateID; EnableBasedOnChecklistState(); //enable/disable the button based on the checklist selected CPatChecklistData dta = new CPatChecklistData(BaseMstr.BaseData); DataSet dsCL = null; dta.GetOutOfDatePatCLDS(PatientID, ChecklistID, out dsCL); if (!CDataUtils.IsEmpty(dsCL)) { btnUpdateCLVersion.Enabled = true; lblVersion.Text = "New Version Available!"; } else { btnUpdateCLVersion.Enabled = false; lblVersion.Text = "Version is Current."; } if (!CDataUtils.IsDateNull(di.ProcedureDate)) { tbProcedureDate.Text = CDataUtils.GetDateAsString(di.ProcedureDate); calProcedureDate.SelectedDate = di.ProcedureDate; ucProcedureTime.SetTime(di.ProcedureDate); } else { tbProcedureDate.Text = string.Empty; calProcedureDate.SelectedDate = null; ucProcedureTime.HH = 0; ucProcedureTime.MM = 0; ucProcedureTime.SS = 0; } //checklist data - check for notetitle and disable tiu if we dont have one CChecklistData clData = new CChecklistData(BaseMstr.BaseData); CChecklistDataItem diChecklist = null; status = clData.GetCheckListDI(di.ChecklistID, out diChecklist); if (!status.Status) { return(status); } btnTIU.Enabled = (diChecklist.NoteTitleTag != "-1") ? true: false; CPatientData p = new CPatientData(BaseMstr.BaseData); string strBlurb = string.Empty; status = p.GetPatientBlurb(PatientID, out strBlurb); if (!status.Status) { return(status); } sPatientBlurb.InnerText = strBlurb + " for " + diChecklist.ChecklistLabel; ucPatCLItems.PatientChecklistID = di.PatCLID; ucPatCLItems.PatientID = di.PatientID; ucPatCLItems.ChecklistID = di.ChecklistID; status = LoadPatientChecklistItems(); if (!status.Status) { return(status); } EnableTIU(); return(new CStatus()); }