/// <summary>
    /// US:864 US:876 loads closeable properties from the dataset
    /// </summary>
    /// <param name="dsViewable"></param>
    protected CStatus LoadCloseableRoles(DataSet dsCloseable)
    {
        CStatus status = new CStatus();

        if (CDataUtils.IsEmpty(dsCloseable))
        {
            return(status);
        }

        foreach (DataTable table in dsCloseable.Tables)
        {
            foreach (DataRow dr in table.Rows)
            {
                long lRoleID = CDataUtils.GetDSLongValue(dr, "USER_ROLE_ID");
                if (lRoleID == (long)k_USER_ROLE_ID.Administrator)
                {
                    CloseableAdministrator = true;
                }
                else if (lRoleID == (long)k_USER_ROLE_ID.Doctor)
                {
                    CloseableDoctor = true;
                }
                else if (lRoleID == (long)k_USER_ROLE_ID.Nurse)
                {
                    CloseableNurse = true;
                }
            }
        }

        return(status);
    }
Exemplo n.º 2
0
 public CStateDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         StateID    = CDataUtils.GetDSLongValue(ds, "STATE_ID");
         StateLabel = CDataUtils.GetDSStringValue(ds, "STATE_LABEL");
     }
 }
Exemplo n.º 3
0
 public CServiceDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ServiceID    = CDataUtils.GetDSLongValue(ds, "SERVICE_ID");
         ServiceLabel = CDataUtils.GetDSStringValue(ds, "SERVICE_LABEL");
         IsActive     = (CDataUtils.GetDSLongValue(ds, "IS_ACTIVE") == (long)k_TRUE_FALSE_ID.True) ? true : false;
     }
 }
Exemplo n.º 4
0
 public CItemGroupDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ItemGroupLabel = CDataUtils.GetDSStringValue(ds, "ITEM_GROUP_LABEL");
         ItemGroupID    = CDataUtils.GetDSLongValue(ds, "ITEM_GROUP_ID");
         IsActive       = (CDataUtils.GetDSLongValue(ds, "IS_ACTIVE") == (long)k_TRUE_FALSE_ID.True) ? true : false;
     }
 }
Exemplo n.º 5
0
    protected void GetAccountDetails()
    {
        #region account_details
        if (this.IsLoggedIn() && Session["ACC_DETAILS"] == null)
        {
            CUser   user   = new CUser();
            DataSet dsUser = user.GetLoginUserDS(this, this.FXUserID);
            if (dsUser != null)
            {
                //divLoginInfo.Visible = true;

                CDataUtils utils         = new CDataUtils();
                string     strAccDetails = String.Empty;

                DateTime dtLastLogin    = utils.GetDSDateTimeValue(dsUser, "date_last_login");
                string   strLastLogin   = utils.GetDateTimeAsString(dtLastLogin);
                string   strLastLoginIP = utils.GetDSStringValue(dsUser, "last_login_ip");

                DateTime dtFLastLogin    = utils.GetDSDateTimeValue(dsUser, "last_flogin_date");
                string   strFLastLogin   = utils.GetDateTimeAsString(dtFLastLogin);
                string   strFLastLoginIP = utils.GetDSStringValue(dsUser, "last_flogin_ip");

                long   lFAttempts   = utils.GetDSLongValue(dsUser, "flogin_attempts");
                string strFAttempts = Convert.ToString(lFAttempts);

                strAccDetails += "Unsuccessful Logon Attempts Since Last Successful Logon: " + strFAttempts;
                strAccDetails += "<br>";
                if (!String.IsNullOrEmpty(strFLastLoginIP))
                {
                    strAccDetails += "Last Unsuccessful Logon:";
                    strAccDetails += " " + strFLastLogin;
                    strAccDetails += " - IP Address: " + strFLastLoginIP;
                }
                else
                {
                    strAccDetails += "No Unsuccessful Logons";
                }

                strAccDetails += "<br>";
                strAccDetails += "Last Successful Logon:";
                strAccDetails += " " + strLastLogin;
                strAccDetails += " - IP Address: " + strLastLoginIP;

                //litLoginInfo.Text = strAccDetails;

                Session["ACC_DETAILS"] = strAccDetails;
            }

            if (this.APPMaster.PasswordExpires > 0 && this.APPMaster.PasswordExpires <= 10)
            {
                this.StatusCode    = 1;
                this.StatusComment = "Your account password will expire in " + Convert.ToString(this.APPMaster.PasswordExpires) + " days!";
            }
        }
        #endregion
    }
Exemplo n.º 6
0
 public CICStateDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ItemID          = CDataUtils.GetDSLongValue(ds, "ITEM_ID");
         ItemComponentID = CDataUtils.GetDSLongValue(ds, "ITEM_COMPONENT_ID");
         ICStateID       = CDataUtils.GetDSLongValue(ds, "IC_STATE_ID");
         StateID         = CDataUtils.GetDSLongValue(ds, "STATE_ID");
     }
 }
 public CItemComponentDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ItemID             = CDataUtils.GetDSLongValue(ds, "ITEM_ID");
         ItemComponentID    = CDataUtils.GetDSLongValue(ds, "ITEM_COMPONENT_ID");
         ItemComponentLabel = CDataUtils.GetDSStringValue(ds, "ITEM_COMPONENT_LABEL");
         SortOrder          = CDataUtils.GetDSLongValue(ds, "SORT_ORDER");
         ActiveID           = (k_ACTIVE_ID)CDataUtils.GetDSLongValue(ds, "ACTIVE_ID");
     }
 }
 public CDecisionStateDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         DSLabel        = CDataUtils.GetDSStringValue(ds, "DS_LABEL");
         DSDefinitionID = CDataUtils.GetDSLongValue(ds, "DS_DEFINITION_ID");
         DSID           = CDataUtils.GetDSLongValue(ds, "DS_ID");
         IsActive       = (CDataUtils.GetDSLongValue(ds, "IS_ACTIVE") == (long)k_TRUE_FALSE_ID.True) ? true : false;
         IsDefault      = (CDataUtils.GetDSLongValue(ds, "IS_DEFAULT") == (long)k_TRUE_FALSE_ID.True) ? true : false;
     }
 }
Exemplo n.º 9
0
 public CPlaceHolderDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         PlaceHolderID     = CDataUtils.GetDSLongValue(ds, "PLACE_HOLDER_ID");
         PlaceHolderLabel  = CDataUtils.GetDSStringValue(ds, "PLACE_HOLDER_LABEL");
         PlaceHolderSyntax = CDataUtils.GetDSStringValue(ds, "PLACE_HOLDER_SYNTAX");
         PHParentID        = CDataUtils.GetDSLongValue(ds, "PH_PARENT_ID");
         IsGroup           = (CDataUtils.GetDSLongValue(ds, "IS_GROUP") == (long)k_TRUE_FALSE_ID.True) ? true : false;
     }
 }
Exemplo n.º 10
0
    /// <summary>
    /// US:864 US:876 loads a dropdown list with patient checklists, will screen out
    /// check lists that the user does not have view permissions for.
    /// </summary>
    /// <param name="BaseMastr"></param>
    /// <param name="strPatientID"></param>
    /// <param name="ddl"></param>
    /// <returns></returns>
    public CStatus LoadPatientChecklists(CBaseMaster BaseMstr, string strPatientID, DropDownList ddl)
    {
        CPatientChecklistLogic pcl = new CPatientChecklistLogic(BaseMstr.BaseData);
        CStatus status             = pcl.RunLogic(strPatientID);

        if (!status.Status)
        {
            return(status);
        }

        CPatChecklistData pc = new CPatChecklistData(BaseMstr.BaseData);
        DataSet           ds = null;

        status = pc.GetPatChecklistDS(strPatientID, out ds);
        if (!status.Status)
        {
            return(status);
        }

        //remove records from the ds that the user is not allowed to view
        foreach (DataTable table in ds.Tables)
        {
            foreach (DataRow dr in table.Rows)
            {
                long lChecklistID = CDataUtils.GetDSLongValue(dr, "CHECKLIST_ID");

                CChecklistPermissionsDataItem pdi = null;
                CChecklistData clData             = new CChecklistData(BaseMstr.BaseData);
                clData.GetCheckListPermissionsDI(lChecklistID, out pdi);

                //is the user allowed to view this checklist
                if (!pdi.HasPermission(BaseMstr.AppUser, k_CHECKLIST_PERMISSION.Viewable))
                {
                    dr.Delete();
                }
            }
        }
        ds.AcceptChanges();

        //render the dataset
        status = CDropDownList.RenderDataSet(
            ds,
            ddl,
            "CHECKLIST_LABEL",
            "PAT_CL_ID");
        if (!status.Status)
        {
            return(status);
        }

        return(new CStatus());
    }
Exemplo n.º 11
0
 public CChecklistItemDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ChecklistID     = CDataUtils.GetDSLongValue(ds, "CHECKLIST_ID");
         ItemID          = CDataUtils.GetDSLongValue(ds, "ITEM_ID");
         CLITSTimePeriod = CDataUtils.GetDSLongValue(ds, "CLI_TS_TIME_PERIOD");
         TimeUnitID      = (k_TIME_UNIT_ID)CDataUtils.GetDSLongValue(ds, "TIME_UNIT_ID");
         SortOrder       = CDataUtils.GetDSLongValue(ds, "SORT_ORDER");
         ActiveID        = (k_ACTIVE_ID)CDataUtils.GetDSLongValue(ds, "ACTIVE_ID");
         Logic           = CDataUtils.GetDSStringValue(ds, "LOGIC");;
     }
 }
Exemplo n.º 12
0
 public CPatChecklistDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         PatientID        = CDataUtils.GetDSStringValue(ds, "PATIENT_ID");
         ChecklistID      = CDataUtils.GetDSLongValue(ds, "CHECKLIST_ID");
         AssignmentDate   = CDataUtils.GetDSDateTimeValue(ds, "ASSIGNMENT_DATE");
         ProcedureDate    = CDataUtils.GetDSDateTimeValue(ds, "PROCEDURE_DATE");
         StateID          = (k_STATE_ID)CDataUtils.GetDSLongValue(ds, "STATE_ID");
         ChecklistStateID = (k_CHECKLIST_STATE_ID)CDataUtils.GetDSLongValue(ds, "CHECKLIST_STATE_ID");
         PatCLID          = CDataUtils.GetDSLongValue(ds, "PAT_CL_ID");
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// US:1951 US:1945 loads data item from data set
 /// </summary>
 /// <param name="ds"></param>
 public CChecklistDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ChecklistID          = CDataUtils.GetDSLongValue(ds, "CHECKLIST_ID");
         ChecklistLabel       = CDataUtils.GetDSStringValue(ds, "CHECKLIST_LABEL");
         ServiceID            = CDataUtils.GetDSLongValue(ds, "SERVICE_ID");
         ChecklistDescription = CDataUtils.GetDSStringValue(ds, "CHECKLIST_DESCRIPTION");
         NoteTitleTag         = CDataUtils.GetDSStringValue(ds, "NOTE_TITLE_TAG");
         NoteTitleClinicID    = CDataUtils.GetDSLongValue(ds, "NOTE_TITLE_CLINIC_ID");
         ActiveID             = (k_ACTIVE_ID)CDataUtils.GetDSLongValue(ds, "ACTIVE_ID");
     }
 }
 public CPatientItemComponentDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         PatientID      = CDataUtils.GetDSStringValue(ds, "PATIENT_ID");
         EntryDate      = CDataUtils.GetDSDateTimeValue(ds, "ENTRY_DATE");
         ItemID         = CDataUtils.GetDSLongValue(ds, "ITEM_ID");
         PatItemID      = CDataUtils.GetDSLongValue(ds, "PAT_ITEM_ID");
         SourceTypeID   = CDataUtils.GetDSLongValue(ds, "SOURCE_TYPE_ID");
         ComponentValue = CDataUtils.GetDSStringValue(ds, "COMPONENT_VALUE");
         ComponentID    = CDataUtils.GetDSLongValue(ds, "ITEM_COMPONENT_ID");
     }
 }
Exemplo n.º 15
0
 public CTrueFalseDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         TrueFalseID   = CDataUtils.GetDSLongValue(ds, "TRUE_FALSE_ID");
         TrueLabel     = CDataUtils.GetDSStringValue(ds, "TRUE_LABEL");
         ActiveLabel   = CDataUtils.GetDSStringValue(ds, "ACTIVE_LABEL");
         DefaultLabel  = CDataUtils.GetDSStringValue(ds, "DEFAULT_LABEL");
         YesLabel      = CDataUtils.GetDSStringValue(ds, "YES_LABEL");
         EnableLabel   = CDataUtils.GetDSStringValue(ds, "ENABLE_LABEL");
         OverrideLabel = CDataUtils.GetDSStringValue(ds, "OVERRIDE_LABEL");
         SelectedLabel = CDataUtils.GetDSStringValue(ds, "SELECTED_LABEL");
     }
 }
Exemplo n.º 16
0
 public CItemDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ItemID          = CDataUtils.GetDSLongValue(ds, "ITEM_ID");
         ItemTypeID      = CDataUtils.GetDSLongValue(ds, "ITEM_TYPE_ID");
         ItemGroupID     = CDataUtils.GetDSLongValue(ds, "ITEM_GROUP_ID");
         ItemLabel       = CDataUtils.GetDSStringValue(ds, "ITEM_LABEL");
         ItemDescription = CDataUtils.GetDSStringValue(ds, "ITEM_DESCRIPTION");
         LookbackTime    = CDataUtils.GetDSLongValue(ds, "LOOKBACK_TIME");
         ActiveID        = (k_ACTIVE_ID)CDataUtils.GetDSLongValue(ds, "ACTIVE_ID");
         MapID           = CDataUtils.GetDSStringValue(ds, "MAP_ID");
     }
 }
Exemplo n.º 17
0
 public CPatientItemDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         PatientID       = CDataUtils.GetDSStringValue(ds, "PATIENT_ID");
         EntryDate       = CDataUtils.GetDSDateTimeValue(ds, "ENTRY_DATE");
         ItemDescription = CDataUtils.GetDSStringValue(ds, "ITEM_DESCRIPTION");
         ItemGroupID     = CDataUtils.GetDSLongValue(ds, "ITEM_GROUP_ID");
         ItemID          = CDataUtils.GetDSLongValue(ds, "ITEM_ID");
         ItemLabel       = CDataUtils.GetDSStringValue(ds, "ITEM_LABEL");
         ItemTypeID      = CDataUtils.GetDSLongValue(ds, "ITEM_TYPE_ID");
         LookbackTime    = CDataUtils.GetDSLongValue(ds, "LOOKBACK_TIME");
         PatItemID       = CDataUtils.GetDSLongValue(ds, "PAT_ITEM_ID");
         SourceTypeID    = CDataUtils.GetDSLongValue(ds, "SOURCE_TYPE_ID");
     }
 }
Exemplo n.º 18
0
 public CICRangeDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         ItemID          = CDataUtils.GetDSLongValue(ds, "ITEM_ID");
         ItemComponentID = CDataUtils.GetDSLongValue(ds, "ITEM_COMPONENT_ID");
         ICRangeID       = CDataUtils.GetDSLongValue(ds, "IC_RANGE_ID");
         Units           = CDataUtils.GetDSStringValue(ds, "UNITS");
         LegalMin        = CDataUtils.GetDSDoubleValue(ds, "LEGAL_MIN");
         CriticalLow     = CDataUtils.GetDSDoubleValue(ds, "CRITICAL_LOW");
         Low             = CDataUtils.GetDSDoubleValue(ds, "LOW");
         High            = CDataUtils.GetDSDoubleValue(ds, "HIGH");
         CriticalHigh    = CDataUtils.GetDSDoubleValue(ds, "CRITICAL_HIGH");
         LegalMax        = CDataUtils.GetDSDoubleValue(ds, "LEGAL_MAX");
     }
 }
 public CPatChecklistItemDataItem(DataRow dr)
 {
     PatCLID      = CDataUtils.GetDSLongValue(dr, "PAT_CL_ID");
     PatientID    = CDataUtils.GetDSStringValue(dr, "PATIENT_ID");
     ChecklistID  = CDataUtils.GetDSLongValue(dr, "CHECKLIST_ID");
     ItemID       = CDataUtils.GetDSLongValue(dr, "ITEM_ID");
     TSID         = CDataUtils.GetDSLongValue(dr, "TS_ID");
     TSStateID    = CDataUtils.GetDSLongValue(dr, "TS_STATE_ID");
     OSID         = CDataUtils.GetDSLongValue(dr, "OS_ID");
     OSStateID    = CDataUtils.GetDSLongValue(dr, "OS_STATE_ID");
     DSID         = CDataUtils.GetDSLongValue(dr, "DS_ID");
     DSStateID    = CDataUtils.GetDSLongValue(dr, "DS_STATE_ID");
     IsOverridden = (k_TRUE_FALSE_ID)CDataUtils.GetDSLongValue(dr, "IS_OVERRIDDEN");
     IsEnabled    = (k_TRUE_FALSE_ID)CDataUtils.GetDSLongValue(dr, "IS_ENABLE");
     OverrideDate = CDataUtils.GetDSDateTimeValue(dr, "OVERRIDE_DATE");
 }
Exemplo n.º 20
0
        /// <summary>
        /// Checks or unchecks the checkbox (chk) based on the
        /// value of active_id in the dataset (ds)
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="chk"></param>
        public void SetActive(CheckBox chk, DataSet ds)
        {
            if (chk == null)
            {
                return;
            }

            if (CDataUtils.GetDSLongValue(ds, "ACTIVE_ID") == (long)k_ACTIVE.ACTIVE)
            {
                chk.Checked = true;
            }
            else
            {
                chk.Checked = false;
            }
        }
Exemplo n.º 21
0
 public CPatientDataItem(DataSet ds)
 {
     if (!CDataUtils.IsEmpty(ds))
     {
         PatientID       = CDataUtils.GetDSStringValue(ds, "PATIENT_ID");
         FirstName       = CDataUtils.GetDSStringValue(ds, "FIRST_NAME");
         MI              = CDataUtils.GetDSStringValue(ds, "MIDDLE_INITIAL");
         LastName        = CDataUtils.GetDSStringValue(ds, "LAST_NAME");
         SSN             = CDataUtils.GetDSStringValue(ds, "SSN");
         DOB             = CDataUtils.GetDSDateTimeValue(ds, "DATE_OF_BIRTH");
         Sex             = (k_SEX)CDataUtils.GetDSLongValue(ds, "SEX_ID");
         SexLabel        = CDataUtils.GetDSStringValue(ds, "SEX_LABEL");
         SexAbbreviation = CDataUtils.GetDSStringValue(ds, "SEX_ABBREVIATION");
         SSNLast4        = CDataUtils.GetDSStringValue(ds, "SSN_LAST_4");
         Age             = CDataUtils.GetDSLongValue(ds, "PATIENT_AGE");
     }
 }
    /// <summary>
    /// loads the component from a data row
    /// </summary>
    /// <param name="dr"></param>
    /// <returns></returns>
    public CStatus Load(DataRow dr)
    {
        if (dr == null)
        {
            return(new CStatus(false, k_STATUS_CODE.Failed, "Could not load data row!"));
        }

        PatientID      = CDataUtils.GetDSStringValue(dr, "PATIENT_ID");
        EntryDate      = CDataUtils.GetDSDateTimeValue(dr, "ENTRY_DATE");
        ItemID         = CDataUtils.GetDSLongValue(dr, "ITEM_ID");
        PatItemID      = CDataUtils.GetDSLongValue(dr, "PAT_ITEM_ID");
        SourceTypeID   = CDataUtils.GetDSLongValue(dr, "SOURCE_TYPE_ID");
        ComponentValue = CDataUtils.GetDSStringValue(dr, "COMPONENT_VALUE");
        ComponentID    = CDataUtils.GetDSLongValue(dr, "ITEM_COMPONENT_ID");

        return(new CStatus());
    }
Exemplo n.º 23
0
        /// <summary>
        /// method
        /// checks the specified checkbox in the gridview based on a ds active field
        /// </summary>
        /// <param name="gv"></param>
        /// <param name="strCheckBoxID"></param>
        /// <param name="ds"></param>
        /// <param name="strIDFieldName"></param>
        /// <param name="strActiveFieldName"></param>
        public static void SetActive(
            GridView gv,
            string strCheckBoxID,
            DataSet ds,
            string strIDFieldName,
            string strActiveFieldName)
        {
            if (gv == null || ds == null)
            {
                return;
            }

            foreach (GridViewRow gvr in gv.Rows)
            {
                CheckBox cb = (CheckBox)gvr.FindControl(strCheckBoxID);
                if (cb == null)
                {
                    return;
                }

                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    long lDSIdValue = CDataUtils.GetDSLongValue(row, strIDFieldName);
                    if (lDSIdValue < 1)
                    {
                        continue;
                    }

                    long lGVIdValue = CDataUtils.ToLong(gv.DataKeys[gvr.RowIndex].Value.ToString());
                    if (lDSIdValue == lGVIdValue)
                    {
                        long lIsActive = CDataUtils.GetDSLongValue(row, strActiveFieldName);
                        cb.Checked = (lIsActive == 1) ? true : false;
                        break;
                    }
                }
            }
        }
Exemplo n.º 24
0
    /// <summary>
    /// get the default DS id
    /// </summary>
    /// <param name="dsDS"></param>
    /// <param name="lStateID"></param>
    /// <returns></returns>
    public long GetDSDefaultStateID(DataSet dsDS, k_STATE_ID lStateID)
    {
        long lDSID = -1;

        foreach (DataTable table in dsDS.Tables)
        {
            foreach (DataRow dr in table.Rows)
            {
                long lSID       = CDataUtils.GetDSLongValue(dr, "STATE_ID");
                long lIsDefault = CDataUtils.GetDSLongValue(dr, "IS_DEFAULT");
                if (lSID == (long)lStateID)
                {
                    if (lIsDefault == 1)
                    {
                        lDSID = CDataUtils.GetDSLongValue(dr, "DS_ID");
                        return(lDSID);
                    }
                }
            }
        }

        return(lDSID);
    }
Exemplo n.º 25
0
    /// <summary>
    /// method to run logic over a colletion
    ///     1. all items in multi select must be have an option selected
    ///     2. all free text items must have data entered
    ///     3. labs and note titles are ignored
    ///     4. items that are not ACTIVE are ignored
    /// </summary>
    public CStatus RunCollectionLogic(string strPatientID,
                                      long lPatChecklistID,
                                      long lChecklistID,
                                      long lCollectionItemID)
    {
        //Get the patient checklist item data
        CPatChecklistItemData     PatChecklistItem = new CPatChecklistItemData(this);
        CPatChecklistItemDataItem pdi = null;

        PatChecklistItem.GetPatCLItemDI(lPatChecklistID,
                                        lCollectionItemID,
                                        out pdi);

        //get all the items in the collection
        CItemCollectionData coll   = new CItemCollectionData(this);
        DataSet             dsColl = null;
        CStatus             status = coll.GetItemCollectionDS(lCollectionItemID, out dsColl);

        //get all the patient item components in the collection
        DataSet dsPatItemComps = null;

        status = coll.GetItemColMostRecentPatICDS(lCollectionItemID, strPatientID, out dsPatItemComps);

        //if this collection item is overridden just return and don't update the state
        if (pdi.IsOverridden == k_TRUE_FALSE_ID.True)
        {
            bool bReturn = true;

            //check to see if there is a new result and override if there is...
            foreach (DataTable tableI in dsColl.Tables)
            {
                foreach (DataRow drI in tableI.Rows)
                {
                    //get values from the the item in the collection (not the patient items, the collection items)
                    long lItemID     = CDataUtils.GetDSLongValue(drI, "ITEM_ID");
                    long lItemTypeID = CDataUtils.GetDSLongValue(drI, "ITEM_TYPE_ID");
                    long lActiveID   = CDataUtils.GetDSLongValue(drI, "ACTIVE_ID");

                    //get the item so we can check entry date against TS etc...
                    CPatientItemDataItem patItemDI = null;
                    CPatientItemData     patData   = new CPatientItemData(this);
                    patData.GetMostRecentPatientItemDI(strPatientID, lItemID, out patItemDI);
                    DateTime dtEntryDate = patItemDI.EntryDate;

                    if (dtEntryDate > pdi.OverrideDate)
                    {
                        pdi.OverrideDate = CDataUtils.GetNullDate();
                        pdi.IsOverridden = k_TRUE_FALSE_ID.False;
                        PatChecklistItem.UpdatePatChecklistItem(pdi);
                        bReturn = false;
                        break;
                    }
                }
            }

            if (bReturn)
            {
                //return if this item is overridden and there are no new results
                return(new CStatus());
            }
        }

        //get the checklist item di
        CChecklistItemDataItem cidDI = null;
        CChecklistItemData     cid   = new CChecklistItemData(this);

        cid.GetCLItemDI(lChecklistID, lCollectionItemID, out cidDI);

        //calculate how far the TS can go back
        long     lTS         = cidDI.CLITSTimePeriod;
        DateTime dtNow       = DateTime.Now;
        DateTime dtTSCompare = dtNow.AddDays(-1 * lTS);

        //keeps the overall OS state of the items
        k_STATE_ID kOverallOSStateID = k_STATE_ID.NotSelected;

        //keeps the overall TS state of the items
        k_STATE_ID kOverallTSStateID = k_STATE_ID.NotSelected;

        //loop over the collection items
        foreach (DataTable table in dsColl.Tables)
        {
            foreach (DataRow dr in table.Rows)
            {
                //get values from the the item in the collection (not the patient items, the collection items)
                long lItemID     = CDataUtils.GetDSLongValue(dr, "ITEM_ID");
                long lItemTypeID = CDataUtils.GetDSLongValue(dr, "ITEM_TYPE_ID");
                long lActiveID   = CDataUtils.GetDSLongValue(dr, "ACTIVE_ID");

                //get the item so we can check entry date against TS etc...
                CPatientItemDataItem patItemDI = null;
                CPatientItemData     patData   = new CPatientItemData(this);
                patData.GetMostRecentPatientItemDI(strPatientID, lItemID, out patItemDI);
                DateTime dtEntryDate = patItemDI.EntryDate;

                //only interested in ACTIVE items
                if ((k_ACTIVE)lActiveID == k_ACTIVE.ACTIVE)
                {
                    //check the TS and set overall TS state
                    k_COMPARE kTS = CDataUtils.CompareDates(dtEntryDate, dtTSCompare);
                    if (kTS == k_COMPARE.GREATERTHAN ||
                        kTS == k_COMPARE.EQUALTO)
                    {
                        //good
                        if (kOverallTSStateID != k_STATE_ID.Bad)
                        {
                            kOverallTSStateID = k_STATE_ID.Good;
                        }
                    }
                    else
                    {
                        //bad
                        kOverallTSStateID = k_STATE_ID.Bad;
                    }

                    //list to hold the created component items
                    CPatientItemCompList PatItemCompList = new CPatientItemCompList();

                    //build a pat item component list loaded with the most recent
                    //values
                    foreach (DataTable tableComp in dsPatItemComps.Tables)
                    {
                        foreach (DataRow drComp in tableComp.Rows)
                        {
                            //values to load the component item
                            long   lCompItemID       = CDataUtils.GetDSLongValue(drComp, "ITEM_ID");
                            long   lComponentID      = CDataUtils.GetDSLongValue(drComp, "ITEM_COMPONENT_ID");
                            string strComponentValue = CDataUtils.GetDSStringValue(drComp, "COMPONENT_VALUE");
                            long   lPatItemID        = CDataUtils.GetDSLongValue(drComp, "PAT_ITEM_ID");
                            //only this item
                            if (lCompItemID == lItemID)
                            {
                                CPatientItemComponentDataItem diComp = new CPatientItemComponentDataItem();
                                diComp.PatientID      = strPatientID;
                                diComp.ItemID         = lCompItemID;
                                diComp.ComponentID    = lComponentID;
                                diComp.ComponentValue = strComponentValue;
                                diComp.PatItemID      = lPatItemID;

                                PatItemCompList.Add(diComp);
                            }
                        }

                        //we now have a list of item components for this item
                        //loop and get status for this item and update the overall status
                        bool bHasSelectedValue = false;
                        foreach (CPatientItemComponentDataItem diPatItemComp in PatItemCompList)
                        {
                            //get the state id for this component
                            CICStateDataItem   sdi = null;
                            CItemComponentData icd = new CItemComponentData(this);
                            icd.GetICStateDI(lItemID, diPatItemComp.ComponentID, out sdi);

                            //switch on the type and get the value
                            switch ((k_ITEM_TYPE_ID)lItemTypeID)
                            {
                            case k_ITEM_TYPE_ID.Laboratory:
                            {
                                bHasSelectedValue = true;

                                //get the ranges
                                CICRangeDataItem rdi = null;
                                icd.GetICRangeDI(lItemID, diPatItemComp.ComponentID, out rdi);
                                if (String.IsNullOrEmpty(diPatItemComp.ComponentValue))
                                {
                                    //does not have a value?
                                    kOverallOSStateID = k_STATE_ID.Unknown;
                                }
                                else
                                {
                                    try
                                    {
                                        double dblValue = Convert.ToDouble(diPatItemComp.ComponentValue);

                                        //max/high check
                                        if (dblValue >= rdi.LegalMax)
                                        {
                                            if (kOverallOSStateID != k_STATE_ID.Bad)
                                            {
                                                kOverallOSStateID = k_STATE_ID.Unknown;
                                            }
                                        }
                                        else
                                        {
                                            if (dblValue >= rdi.High)
                                            {
                                                kOverallOSStateID = k_STATE_ID.Bad;
                                            }
                                            else
                                            {
                                                if (kOverallOSStateID != k_STATE_ID.Bad)
                                                {
                                                    kOverallOSStateID = k_STATE_ID.Good;
                                                }
                                            }
                                        }

                                        //min/low check
                                        if (dblValue <= rdi.LegalMin)
                                        {
                                            if (kOverallOSStateID != k_STATE_ID.Bad)
                                            {
                                                kOverallOSStateID = k_STATE_ID.Unknown;
                                            }
                                        }
                                        else
                                        {
                                            if (dblValue <= rdi.Low)
                                            {
                                                kOverallOSStateID = k_STATE_ID.Bad;
                                            }
                                            else
                                            {
                                                if (kOverallOSStateID != k_STATE_ID.Bad)
                                                {
                                                    kOverallOSStateID = k_STATE_ID.Good;
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception e)
                                    {
                                        if (kOverallOSStateID != k_STATE_ID.Bad)
                                        {
                                            kOverallOSStateID = k_STATE_ID.Unknown;
                                        }
                                    }
                                }

                                break;
                            }

                            case k_ITEM_TYPE_ID.NoteTitle:
                            {
                                //note titles are excluded from quick entry
                                //so if we have one our os state is unknown
                                bHasSelectedValue = true;
                                kOverallOSStateID = k_STATE_ID.Unknown;
                                break;
                            }

                            case k_ITEM_TYPE_ID.QuestionFreeText:
                            {
                                bHasSelectedValue = true;
                                if (diPatItemComp.ComponentValue.Length < 1)
                                {
                                    //if they did not enter a value
                                    //then the overall state is bad!
                                    kOverallOSStateID = k_STATE_ID.Bad;
                                }
                                break;
                            }

                            case k_ITEM_TYPE_ID.QuestionSelection:
                                if (!String.IsNullOrEmpty(diPatItemComp.ComponentValue))
                                {
                                    //only interested in the one they selected
                                    if ((k_TRUE_FALSE_ID)Convert.ToInt64(diPatItemComp.ComponentValue) != k_TRUE_FALSE_ID.False)
                                    {
                                        bHasSelectedValue = true;
                                        if (kOverallOSStateID != k_STATE_ID.Bad)
                                        {
                                            if ((k_STATE_ID)sdi.StateID == k_STATE_ID.Bad)
                                            {
                                                kOverallOSStateID = k_STATE_ID.Bad;
                                            }
                                            else
                                            {
                                                if ((k_STATE_ID)sdi.StateID == k_STATE_ID.Good)
                                                {
                                                    if (kOverallOSStateID != k_STATE_ID.Unknown)
                                                    {
                                                        kOverallOSStateID = k_STATE_ID.Good;
                                                    }
                                                }
                                                else
                                                {
                                                    kOverallOSStateID = k_STATE_ID.Unknown;
                                                }
                                            }
                                        }
                                    }
                                }
                                break;
                            }
                        }//for each

                        //if there is nothing selected then the
                        //overall TS state is bad and the OS state is unknown
                        if (!bHasSelectedValue)
                        {
                            kOverallOSStateID = k_STATE_ID.Unknown;
                            kOverallTSStateID = k_STATE_ID.Bad;
                        }
                    }
                }
            }
        }

        //
        //now update the collection item states.
        //

        //get the ts,os and ds possible values
        CChecklistItemData dCL  = new CChecklistItemData(this);
        DataSet            dsTS = null;

        dCL.GetTemporalStateDS(lChecklistID, lCollectionItemID, out dsTS);
        long lGoodTSID    = dCL.GetTSDefaultStateID(dsTS, k_STATE_ID.Good);
        long lBadTSID     = dCL.GetTSDefaultStateID(dsTS, k_STATE_ID.Bad);
        long lUnknownTSID = dCL.GetTSDefaultStateID(dsTS, k_STATE_ID.Unknown);

        DataSet dsOS = null;

        dCL.GetOutcomeStateDS(lChecklistID, lCollectionItemID, out dsOS);
        long lGoodOSID    = dCL.GetOSDefaultStateID(dsOS, k_STATE_ID.Good);
        long lBadOSID     = dCL.GetOSDefaultStateID(dsOS, k_STATE_ID.Bad);
        long lUnknownOSID = dCL.GetOSDefaultStateID(dsOS, k_STATE_ID.Unknown);

        DataSet dsDS = null;

        dCL.GetDecisionStateDS(lChecklistID, lCollectionItemID, out dsDS);
        long lGoodDSID    = dCL.GetDSDefaultStateID(dsDS, k_STATE_ID.Good);
        long lBadDSID     = dCL.GetDSDefaultStateID(dsDS, k_STATE_ID.Bad);
        long lUnknownDSID = dCL.GetDSDefaultStateID(dsDS, k_STATE_ID.Unknown);

        //update the TS state on the data item
        if (kOverallTSStateID == k_STATE_ID.Bad)
        {
            pdi.TSID = lBadTSID;
        }
        else if (kOverallTSStateID == k_STATE_ID.Good)
        {
            pdi.TSID = lGoodTSID;
        }
        else
        {
            pdi.TSID = lUnknownTSID;
        }

        //update the OS state on the data item
        if (kOverallOSStateID == k_STATE_ID.Bad)
        {
            pdi.OSID = lBadOSID;
        }
        else if (kOverallOSStateID == k_STATE_ID.Good)
        {
            pdi.OSID = lGoodOSID;
        }
        else
        {
            pdi.OSID = lUnknownOSID;
        }

        //update the ds state on the item data
        if (kOverallTSStateID == k_STATE_ID.Good &&
            kOverallOSStateID == k_STATE_ID.Good)
        {
            pdi.DSID = lGoodDSID;
        }
        else
        {
            pdi.DSID = lBadDSID;
        }

        //update the checklist item state
        status = PatChecklistItem.UpdatePatChecklistItem(pdi);

        return(status);
    }
Exemplo n.º 26
0
    /// <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);
    }
Exemplo n.º 27
0
    /// <summary>
    /// logs the user in and returns info about the user. TODO: this will
    /// probably be heavily modified later...
    /// </summary>
    /// <param name="strUserName"></param>
    /// <param name="strPassword"></param>
    /// <param name="ds"></param>
    /// <param name="lLoginUserID"></param>
    /// <param name="lloginRoleID"></param>
    /// <param name="lStatusCode"></param>
    /// <param name="strStatus"></param>
    /// <returns></returns>
    public CStatus GetLoginUserDS(string strUserName,
                                  string strPassword,
                                  out DataSet ds,
                                  out long lLoginUserID,
                                  out long lloginRoleID)
    {
        //initialize parameters
        ds = null;

        lLoginUserID = 0;
        lloginRoleID = 0;
        ds           = null;

        //create a status object and check for valid dbconnection
        CStatus status = new CStatus();

        status = DBConnValid();
        if (!status.Status)
        {
            return(status);
        }

        //load the paramaters list

        //load standard paramaters
        CParameterList pList = new CParameterList(SessionID,
                                                  ClientIP,
                                                  UserID);

        //load additional paramaters
        pList.AddInputParameter("pi_vUserName", strUserName);
        pList.AddInputParameter("pi_vPassword", strPassword);

        //get the dataset
        CDataSet cds = new CDataSet();

        status = cds.GetOracleDataSet(DBConn,
                                      "PCK_USR.GetLoginUserRS",
                                      pList,
                                      out ds);

        if (status.StatusCode != k_STATUS_CODE.Success)
        {
            return(status);
        }

        if (ds == null)
        {
            status.StatusCode    = k_STATUS_CODE.Failed;
            status.StatusComment = "Invalid Username/Password";
            status.Status        = false;

            return(status);
        }

        if (status.Status)
        {
            lLoginUserID = CDataUtils.GetDSLongValue(ds, "USER_ID");
            lloginRoleID = CDataUtils.GetDSLongValue(ds, "USER_ROLE_ID");
        }

        if (lLoginUserID < 1)
        {
            status.StatusCode    = k_STATUS_CODE.Failed;
            status.StatusComment = "Invalid Username/Password";
            status.Status        = false;

            return(status);
        }

        return(status);
    }
Exemplo n.º 28
0
    /// <summary>
    /// US:866 Load the user data from the database
    /// </summary>
    /// <param name="lUserID"></param>
    /// <returns></returns>
    private CStatus LoadUserData(long lUserID)
    {
        DataSet ds = null;

        CUserData cud    = new CUserData(this);
        CStatus   status = cud.GetUserDS(lUserID, out ds);

        if (status.Status)
        {
            //cach the date the user logged in
            UserLoginDateTime = DateTime.Now;

            //cache the user id, role id, first name and last name
            UserID        = lUserID;
            UserRoleID    = CDataUtils.GetDSLongValue(ds, "user_role_id");
            UserFirstName = CDataUtils.GetDSStringValue(ds, "first_name");
            UserLastName  = CDataUtils.GetDSStringValue(ds, "last_name");
        }
        else
        {
            return(status);
        }

        //transfer user keys to our db
        if (MDWSTransfer)
        {
            CMDWSOps ops    = new CMDWSOps(this);
            long     lCount = 0;
            status = ops.GetMDWSSecurityKeys(lUserID, true, out lCount);
            if (!status.Status)
            {
                return(status);
            }
        }

        //set the admin, doc and nurse privs for this user
        DataSet dsRoles = null;

        status = cud.GetUserRolesDS(lUserID, out dsRoles);
        if (status.Status)
        {
            foreach (DataTable table in dsRoles.Tables)
            {
                foreach (DataRow dr in table.Rows)
                {
                    long lRoleID = CDataUtils.GetDSLongValue(dr, "USER_ROLE_ID");
                    if (lRoleID == (long)k_USER_ROLE_ID.Administrator)
                    {
                        IsAdministrator = true;
                    }
                    else if (lRoleID == (long)k_USER_ROLE_ID.Doctor)
                    {
                        IsDoctor = true;
                    }
                    else if (lRoleID == (long)k_USER_ROLE_ID.Nurse)
                    {
                        IsNurse = true;
                    }
                }
            }
        }

        return(status);
    }
Exemplo n.º 29
0
    /// <summary>
    /// gets the item state id
    /// </summary>
    /// <param name="lCollItemID"></param>
    /// <param name="patItemDI"></param>
    /// <returns></returns>
    protected k_STATE_ID GetItemStateID(long lCollectionItemID,
                                        long lItemID,
                                        DataSet dsPatItemComps,
                                        CPatientItemDataItem patItemDI)
    {
        k_STATE_ID kStateID          = k_STATE_ID.Unknown;
        k_STATE_ID kOverallTSStateID = k_STATE_ID.NotSelected;
        k_STATE_ID kOverallOSStateID = k_STATE_ID.NotSelected;

        //get the entry date
        DateTime dtEntryDate = patItemDI.EntryDate;

        //get the checklist collection item di
        CChecklistItemDataItem cidDI = null;
        CChecklistItemData     cid   = new CChecklistItemData(BaseMstr.BaseData);

        cid.GetCLItemDI(ChecklistID, lCollectionItemID, out cidDI);

        //calculate how far the TS can go back
        long     lTS         = cidDI.CLITSTimePeriod;
        DateTime dtNow       = DateTime.Now;
        DateTime dtTSCompare = dtNow.AddDays(-1 * lTS);

        //check the TS and set overall TS state
        k_COMPARE kTS = CDataUtils.CompareDates(dtEntryDate, dtTSCompare);

        if (kTS == k_COMPARE.GREATERTHAN ||
            kTS == k_COMPARE.EQUALTO)
        {
            kOverallTSStateID = k_STATE_ID.Good;
        }
        else
        {
            //bad
            kOverallTSStateID = k_STATE_ID.Bad;
        }

        //list to hold the created component items
        CPatientItemCompList PatItemCompList = new CPatientItemCompList();

        //build a pat item component list loaded with the most recent
        //values
        foreach (DataTable tableComp in dsPatItemComps.Tables)
        {
            foreach (DataRow drComp in tableComp.Rows)
            {
                //values to load the component item
                long   lCompItemID       = CDataUtils.GetDSLongValue(drComp, "ITEM_ID");
                long   lComponentID      = CDataUtils.GetDSLongValue(drComp, "ITEM_COMPONENT_ID");
                string strComponentValue = CDataUtils.GetDSStringValue(drComp, "COMPONENT_VALUE");
                long   lPatItemID        = CDataUtils.GetDSLongValue(drComp, "PAT_ITEM_ID");
                //only this item
                if (lCompItemID == lItemID)
                {
                    CPatientItemComponentDataItem diComp = new CPatientItemComponentDataItem();
                    diComp.PatientID      = PatientID;
                    diComp.ItemID         = lCompItemID;
                    diComp.ComponentID    = lComponentID;
                    diComp.ComponentValue = strComponentValue;
                    diComp.PatItemID      = lPatItemID;

                    PatItemCompList.Add(diComp);
                }
            }
        }

        //we now have a list of item components for this item
        //loop and get status for this item and update the overall status
        bool bHasSelectedValue = false;

        foreach (CPatientItemComponentDataItem diPatItemComp in PatItemCompList)
        {
            //get the state id for this component
            CICStateDataItem   sdi = null;
            CItemComponentData icd = new CItemComponentData(BaseMstr.BaseData);
            icd.GetICStateDI(lItemID, diPatItemComp.ComponentID, out sdi);

            //switch on the type and get the value
            switch ((k_ITEM_TYPE_ID)patItemDI.ItemTypeID)
            {
            case k_ITEM_TYPE_ID.Laboratory:
            {
                bHasSelectedValue = true;

                //get the ranges
                CICRangeDataItem rdi = null;
                icd.GetICRangeDI(lItemID, diPatItemComp.ComponentID, out rdi);
                if (String.IsNullOrEmpty(diPatItemComp.ComponentValue))
                {
                    //does not have a value?
                    kOverallOSStateID = k_STATE_ID.Unknown;
                }
                else
                {
                    try
                    {
                        double dblValue = Convert.ToDouble(diPatItemComp.ComponentValue);

                        //max/high check
                        if (dblValue >= rdi.LegalMax)
                        {
                            if (kOverallOSStateID != k_STATE_ID.Bad)
                            {
                                kOverallOSStateID = k_STATE_ID.Unknown;
                            }
                        }
                        else
                        {
                            if (dblValue >= rdi.High)
                            {
                                kOverallOSStateID = k_STATE_ID.Bad;
                            }
                            else
                            {
                                if (kOverallOSStateID != k_STATE_ID.Bad)
                                {
                                    kOverallOSStateID = k_STATE_ID.Good;
                                }
                            }
                        }

                        //min/low check
                        if (dblValue <= rdi.LegalMin)
                        {
                            if (kOverallOSStateID != k_STATE_ID.Bad)
                            {
                                kOverallOSStateID = k_STATE_ID.Unknown;
                            }
                        }
                        else
                        {
                            if (dblValue <= rdi.Low)
                            {
                                kOverallOSStateID = k_STATE_ID.Bad;
                            }
                            else
                            {
                                if (kOverallOSStateID != k_STATE_ID.Bad)
                                {
                                    kOverallOSStateID = k_STATE_ID.Good;
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        if (kOverallOSStateID != k_STATE_ID.Bad)
                        {
                            kOverallOSStateID = k_STATE_ID.Unknown;
                        }
                    }
                }

                break;
            }

            case k_ITEM_TYPE_ID.NoteTitle:
            {
                //note titles are excluded from quick entry
                //and do not affect default logic. must use custom logic
                //for note titles
                bHasSelectedValue = true;
                kOverallOSStateID = k_STATE_ID.Unknown;
                break;
            }

            case k_ITEM_TYPE_ID.QuestionFreeText:
            {
                bHasSelectedValue = true;
                if (diPatItemComp.ComponentValue.Length < 1)
                {
                    //if they did not enter a value
                    //then the overall state is bad!
                    kOverallOSStateID = k_STATE_ID.Bad;
                }
                else
                {
                    kOverallOSStateID = k_STATE_ID.Good;
                }

                break;
            }

            case k_ITEM_TYPE_ID.QuestionSelection:
                if (!String.IsNullOrEmpty(diPatItemComp.ComponentValue))
                {
                    //only interested in the one they selected
                    if ((k_TRUE_FALSE_ID)Convert.ToInt64(diPatItemComp.ComponentValue) != k_TRUE_FALSE_ID.False)
                    {
                        bHasSelectedValue = true;
                        if (kOverallOSStateID != k_STATE_ID.Bad)
                        {
                            if ((k_STATE_ID)sdi.StateID == k_STATE_ID.Bad)
                            {
                                kOverallOSStateID = k_STATE_ID.Bad;
                            }
                            else
                            {
                                if ((k_STATE_ID)sdi.StateID == k_STATE_ID.Good)
                                {
                                    if (kOverallOSStateID != k_STATE_ID.Unknown)
                                    {
                                        kOverallOSStateID = k_STATE_ID.Good;
                                    }
                                }
                                else
                                {
                                    kOverallOSStateID = k_STATE_ID.Unknown;
                                }
                            }
                        }
                    }
                }
                break;
            }
        }//for each

        //if there is nothing selected then the overall os state is unk
        //and ts state is bad!
        if (!bHasSelectedValue)
        {
            kOverallOSStateID = k_STATE_ID.Unknown;
            kOverallTSStateID = k_STATE_ID.Bad;
        }

        if (kOverallTSStateID == k_STATE_ID.Bad ||
            kOverallOSStateID == k_STATE_ID.Bad)
        {
            kStateID = k_STATE_ID.Bad;
        }
        else if (kOverallTSStateID == k_STATE_ID.Good &&
                 kOverallOSStateID == k_STATE_ID.Good)
        {
            kStateID = k_STATE_ID.Good;
        }
        else
        {
            kStateID = k_STATE_ID.Unknown;
        }

        return(kStateID);
    }
Exemplo n.º 30
0
    /// <summary>
    /// load a gridview value row
    /// </summary>
    /// <param name="gvr"></param>
    protected void LoadGridViewValue(GridViewRow gvr)
    {
        if (gvr == null)
        {
            return;
        }

        Panel pnlComponents = (Panel)gvr.FindControl("pnlComponents");
        Panel pnlViewValue  = (Panel)gvr.FindControl("pnlViewValue");

        if (pnlComponents == null || pnlViewValue == null)
        {
            return;
        }

        //hide the components, show the value view
        pnlComponents.Visible = false;
        pnlViewValue.Visible  = true;

        //literal that holds status info
        Literal litHiddenCollValues = (Literal)gvr.FindControl("litHiddenCollValues");

        litHiddenCollValues.Text = String.Empty;

        //button to expand/collapse
        Button btnShowHiddenCollValues = (Button)gvr.FindControl("btnShowHiddenCollValues");

        //get the gridview data row
        DataRowView drv = (DataRowView)gvr.DataItem;
        DataRow     dr  = drv.Row;

        //get the item type is and item id
        long lItemTypeID = Convert.ToInt64(dr["ITEM_TYPE_ID"]);
        long lItemID     = Convert.ToInt64(dr["ITEM_ID"]);

        //hide the expand/collapse if this is not a collection
        if (lItemTypeID != (long)k_ITEM_TYPE_ID.Collection)
        {
            AjaxControlToolkit.CollapsiblePanelExtender cpe = (AjaxControlToolkit.CollapsiblePanelExtender)gvr.FindControl("cpeHiddenCollValues");
            cpe.CollapseControlID = null;
            cpe.Enabled           = false;

            btnShowHiddenCollValues.Visible = false;
        }

        //if this is a collection, build a status summary list of each ite,
        if (lItemTypeID == (long)k_ITEM_TYPE_ID.Collection)
        {
            btnShowHiddenCollValues.Visible = true;

            //get all the patient item components in the collection
            CItemCollectionData coll           = new CItemCollectionData(BaseMstr.BaseData);
            DataSet             dsPatItemComps = null;
            coll.GetItemColMostRecentPatICDS(lItemID, PatientID, out dsPatItemComps);

            //get all the items in the collection
            DataSet dsColl = null;
            CStatus status = coll.GetItemCollectionDS(lItemID, out dsColl);

            //html to hold the status
            StringBuilder sbItemCompCollHTML = new StringBuilder();

            //loop over all the items in the collection and build html
            foreach (DataTable tableColl in dsColl.Tables)
            {
                foreach (DataRow drColl in tableColl.Rows)
                {
                    //get values from the the item in the collection (not the patient items, the collection items)
                    long lActiveID   = CDataUtils.GetDSLongValue(drColl, "ACTIVE_ID");
                    long lCollItemID = CDataUtils.GetDSLongValue(drColl, "ITEM_ID");

                    //get the item so we can check entry date against TS etc...
                    CPatientItemDataItem patItemDI = null;
                    CPatientItemData     patData   = new CPatientItemData(BaseMstr.BaseData);
                    patData.GetMostRecentPatientItemDI(PatientID, lCollItemID, out patItemDI);

                    //only interested in ACTIVE items
                    if ((k_ACTIVE)lActiveID == k_ACTIVE.ACTIVE)
                    {
                        //image for state open the img tag
                        sbItemCompCollHTML.Append("<img alt=\"");
                        //sbItemCompCollHTML.Append(CDataUtils.GetDSStringValue(dr, "ITEM_LABEL"));
                        sbItemCompCollHTML.Append(" Collection Item State Image\" width=\"10\" height=\"10\" src=\"");

                        //get the current state of the item
                        k_STATE_ID lItemStateID = GetItemStateID(lItemID, lCollItemID, dsPatItemComps, patItemDI);

                        //add a red/green/yellow image based on the state of the item
                        if (lItemStateID == k_STATE_ID.Unknown ||
                            lItemStateID == k_STATE_ID.NotSelected)
                        {
                            sbItemCompCollHTML.Append(Resources.Images.STATE_UNKNOWN_SMALL);
                        }
                        else if (lItemStateID == k_STATE_ID.Good)
                        {
                            sbItemCompCollHTML.Append(Resources.Images.STATE_GOOD_SMALL);
                        }
                        else
                        {
                            sbItemCompCollHTML.Append(Resources.Images.STATE_BAD_SMALL);
                        }

                        //close out the image tag
                        sbItemCompCollHTML.Append("\" />");

                        //label, trunc so it displays nicely
                        string strLabel = CDataUtils.GetDSStringValue(drColl, "ITEM_LABEL");
                        if (strLabel.Length > 28)
                        {
                            strLabel = strLabel.Substring(0, 28) + "...";
                        }

                        //add the label after the image
                        sbItemCompCollHTML.Append(strLabel);

                        //add a line break
                        sbItemCompCollHTML.Append("<br>");
                    }
                }
            }

            //set the literal equal to the generated html
            litHiddenCollValues.Text = sbItemCompCollHTML.ToString();

            //enable the show/hide button
            btnShowHiddenCollValues.Enabled = (String.IsNullOrEmpty(litHiddenCollValues.Text)) ? false : btnShowHiddenCollValues.Enabled;
        }
    }