Ejemplo n.º 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        RenderEducationTree();

        htxtOPT0.Value = Master.SelectedPatientID;

        if (!IsPostBack)
        {
            divEduInfo.Style.Add("display", "block");
        }

        if (Request.QueryString["opt1"] != null)
        {
            long          lEventID = Convert.ToInt32(Request.QueryString["opt1"]);
            CPatientEvent evt      = new CPatientEvent(Master);
            evt.CompletedEvent(lEventID);
        }

        if (IsPostBack)
        {
            string strControlName = Request.Params["__EVENTTARGET"];
            if (strControlName.IndexOf("upCheckVideosStatus") > -1)
            {
                if (HasViewedVideos())
                {
                    Response.Redirect("portal_start.aspx");
                }
            }
        }
    }
Ejemplo n.º 2
0
    protected bool HasViewedVideos()
    {
        CPatientEvent patevt = new CPatientEvent(Master);
        DataSet       ds     = patevt.GetPatientEventsDS();

        long lViewedVideos      = 0;
        bool bMailedStudiDevice = false;

        if (ds != null)
        {
            DataRow[] drs = ds.Tables[0].Select("event_id in (3,4)");
            foreach (DataRow dr in drs)
            {
                if (!dr.IsNull("STATUS"))
                {
                    lViewedVideos += Convert.ToInt32(dr["STATUS"]);
                }
            }

            DataRow drSD = ds.Tables[0].Select("event_id = 6")[0];
            if (drSD != null)
            {
                if (!drSD.IsNull("STATUS"))
                {
                    bMailedStudiDevice = (Convert.ToInt32(drSD["STATUS"]) == 1);
                }
            }
        }

        return((lViewedVideos >= 2) && !bMailedStudiDevice);
    }
Ejemplo n.º 3
0
    protected void GetPatientEvents()
    {
        CPatientEvent evt      = new CPatientEvent(BaseMstr);
        DataSet       dsPatEvt = evt.GetPatientEventsDS();

        repPatientEvents.DataSource = dsPatEvt;
        repPatientEvents.DataBind();
    }
Ejemplo n.º 4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CPatientEvent evt = new CPatientEvent(Master);
            evt.CheckPAPEventALL();
        }

        ucEvtManagement.BaseMstr = Master;
    }
Ejemplo n.º 5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        CCPAPResults cpap   = new CCPAPResults(Master);
        CDataUtils   utils  = new CDataUtils();
        CIntake      intake = new CIntake();

        if (!IsPostBack)
        {
            rblGraphicsMode.SelectedIndex = (int)Master.GraphicOption;
            rblGraphicsMode_OnSelectedIndexChanged(null, EventArgs.Empty);

            htxtTxAdherence.Value = cpap.GetTxAdherence();
            htxtAHI.Value         = cpap.GetAHI();
            htxtBaselineAHI.Value = cpap.GetBaselineAHI();

            string strLeakType;
            htxtMaskLeak.Value       = cpap.GetMaskLeak(out strLeakType);
            htxtLeakType.Value       = strLeakType;
            htxtQuestionnaires.Value = utils.GetStringValueFromDS(intake.GetScoreDataStringDS(Master, Master.SelectedPatientID), "MID_DATA");

            CPatientEvent evt = new CPatientEvent(Master);
            evt.CheckPAPEvent();
            ClearTxSessionVars();
            loadPatient();

            cpap.LoadQuestionnaireCombo(cboQuestionnaireScores);
        }

        cboSummaryTimeWindow.Attributes.Add("onchange", "patient.summary.timewindow(this);");
        cboSummaryTimeWindow2.Attributes.Add("onchange", "patient.summary.graphs.timewindow(this);");
        cboQuestionnaireScores.Attributes.Add("onchange", "patient.summary.renderQuestionnaires(this);");

        ucPatEvt.BaseMstr = Master;

        //move to events tab if this is an event lookup
        if (!IsPostBack)
        {
            if (Session["EVENT_LOOKUP"] != null)
            {
                if ((bool)Session["EVENT_LOOKUP"])
                {
                    tcPatSummary.ActiveTabIndex = 1;
                    Session["EVENT_LOOKUP"]     = null;
                }
            }
        }
    }
Ejemplo n.º 6
0
    protected void CheckModuleGroupStatus(BaseMaster BaseMstr)
    {
        CPatientEvent evt = new CPatientEvent(BaseMstr);

        CEncounter enc    = new CEncounter();
        DataSet    dsGrps = enc.GetModuleGroupStatusDS(BaseMstr);
        DataSet    dsEvts = evt.GetPatientEventsDS();
        bool       bRedirectToBaselineScreen = false;

        if (dsGrps != null)
        {
            foreach (DataTable dt in dsGrps.Tables)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    long lEventID = 0;
                    long lPending = 1;

                    if (!dr.IsNull("EVENT_ID"))
                    {
                        lEventID = Convert.ToInt32(dr["EVENT_ID"]);
                    }

                    if (!dr.IsNull("PENDING"))
                    {
                        lPending = Convert.ToInt32(dr["PENDING"]);
                    }

                    if (lPending == 0 && lEventID != 0)
                    {
                        if (lEventID == _BASELINE_INTAKES_EVENT)
                        {
                            bRedirectToBaselineScreen = !IsBaselineMarkedCompleted(dsEvts, _BASELINE_INTAKES_EVENT);
                        }
                        evt.CompletedEvent(lEventID);
                    }
                }
            }

            if (bRedirectToBaselineScreen)
            {
                Response.Redirect("portal_start.aspx");
            }
        }
    }
Ejemplo n.º 7
0
    protected void imgBtnUpdt_OnClick(object sender, EventArgs e)
    {
        bool bUpdated = false;

        ImageButton obj    = (ImageButton)sender;
        long        lEvtID = Convert.ToInt32(obj.Attributes["eventid"]);
        string      strEvtDate;
        long        lStatus;
        string      strComments;

        foreach (RepeaterItem ri in repPatientEvents.Items)
        {
            Label       lbl         = (Label)ri.FindControl("lblEvtDate");
            TextBox     txtDate     = (TextBox)ri.FindControl("txtEvtDate");
            CheckBox    chk         = (CheckBox)ri.FindControl("chkEventStatus");
            Image       imgDone     = (Image)ri.FindControl("imgEvtDone");
            Image       imgNotDone  = (Image)ri.FindControl("imgEvtNotDone");
            TextBox     txtComments = (TextBox)ri.FindControl("txtEvtComments");
            ImageButton imgBtn      = (ImageButton)ri.FindControl("imgBtnUpdt");

            if (lEvtID == Convert.ToInt32(imgBtn.Attributes["eventid"]))
            {
                strEvtDate  = txtDate.Text;
                lStatus     = (chk.Checked) ? 1 : 0;
                strComments = txtComments.Text;

                //update the event in the DB
                CPatientEvent evt = new CPatientEvent(BaseMstr);
                evt.UpdateEvent(lEvtID, strEvtDate, lStatus, strComments);

                bUpdated = true;
            }
        }

        if (bUpdated)
        {
            GetPatientEvents();
        }
    }
Ejemplo n.º 8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.QueryString["id"] != null)
            {
                long lPageID = Convert.ToInt32(Request.QueryString["id"]);
                GetPageContents(lPageID);
            }
            else
            {
                litContents.Text = "<h1>Empty page.</h1>";
            }
        }

        htxtOPT0.Value = Master.SelectedPatientID;

        if (Request.QueryString["opt1"] != null)
        {
            long          lEventID = Convert.ToInt32(Request.QueryString["opt1"]);
            CPatientEvent evt      = new CPatientEvent(Master);
            evt.CompletedEvent(lEventID);
        }
    }
Ejemplo n.º 9
0
    protected void GetOverduePatientEvents()
    {
        CPatient      pat = new CPatient();
        CPatientEvent evt = new CPatientEvent(BaseMstr);

        DataSet dsEvts = evt.GetStatEventsDS();
        DataSet dsPats = pat.GetPatByOverdueEvtDS(BaseMstr);

        dsPats.Tables[0].TableName = "patients";

        DataSet dsAllEvts = evt.GetAllPatientEventsDS();

        dsAllEvts.Tables[0].TableName = "events";

        dsPats.Tables.Add(dsAllEvts.Tables[0].Copy());
        dsPats.Relations.Add("events", dsPats.Tables["patients"].Columns["PATIENT_ID"], dsPats.Tables["events"].Columns["PATIENT_ID"], false);
        dsPats.AcceptChanges();

        repEvtHeaders.DataSource = dsEvts;
        repEvtHeaders.DataBind();

        repPatientNames.DataSource = dsPats;
        repPatientNames.DataBind();
    }
Ejemplo n.º 10
0
    protected void Save(out bool bSaved)
    {
        bSaved = false;
        bool bNotify = false;

        if (bAllowUpdate)
        {
            if (!String.IsNullOrEmpty(txtUserId.Text) && txtUserId.Text.Trim().Length > 0)
            {
                #region SaveUser

                //////////////////////////////////////////////////////
                //user account is valid so press on with the saves...
                CPatient patSave = new CPatient();

                //fx sec helper
                CSec sec = new CSec();

                if (chkResetPasswd.Checked || String.IsNullOrEmpty(htxtPatientID.Value))
                {
                    //make sure pwd and verify pwd match
                    if (txtPassword.Text != txtVerifyPassword.Text)
                    {
                        BaseMstr.StatusCode    = 1;
                        BaseMstr.StatusComment = "Password and verify password must match!";
                        ShowSysFeedback();
                        return;
                    }

                    //check all the account rules for the account...
                    if (!sec.ValidateUserAccountRules(BaseMstr,
                                                      txtUserId.Text,
                                                      txtPassword.Text))
                    {
                        BaseMstr.StatusCode = 1;
                        //Note: ValidateUserAccountRules will set StatusCode/StatusComment info
                        ShowSysFeedback();
                        return;
                    }
                }

                //if a user is looked up, then SelectedPatientID will be set
                //otherwise we are creating a new user
                if (htxtPatientID.Value == "")//this is a new user
                {
                    return;
                }
                else if (htxtPatientID.Value != "")
                {
                    BaseMstr.SelectedPatientID = htxtPatientID.Value;

                    long lFXUserID = 0;

                    BaseMstr.SetVSValue("FXUserIDExists", CheckIfFXUserRecExists());

                    blnFXUserIDExists = BaseMstr.GetVSBoolValue("FXUserIDExists");

                    if (!blnFXUserIDExists)
                    {
                        //insert a record into the fx_user table and update
                        //the fx_user_id in the patient table

                        sec.InsertPatientFXUser(BaseMstr,
                                                BaseMstr.SelectedPatientID,
                                                txtUserId.Text,
                                                txtPassword.Text,
                                                chkbxAccountLocked.Checked,
                                                chkbxAccountInactive.Checked,
                                                out lFXUserID);

                        if (BaseMstr.StatusCode == 0)
                        {
                            txtUserId.Enabled         = false;
                            chkResetPasswd.Checked    = false;
                            txtPassword.Text          = String.Empty;
                            txtVerifyPassword.Text    = String.Empty;
                            txtPassword.Enabled       = false;
                            txtVerifyPassword.Enabled = false;

                            bSaved = true;
                        }
                        bSaved = (BaseMstr.StatusCode == 0);

                        if (bSaved)
                        {
                            bNotify = true;
                        }
                    }
                    else
                    {
                        //update a record into the fx_user table and update
                        //the fx_user_id in the suat user table
                        lFXUserID = getFXUserID();
                    }

                    //ONLY if we changed the users account info, update the
                    //record in the FX_USER table

                    if (chkResetPasswd.Checked)
                    {
                        sec.UpdatePatientFXUserPWD(BaseMstr,
                                                   lFXUserID,
                                                   txtUserId.Text,
                                                   txtPassword.Text,
                                                   chkbxAccountLocked.Checked,
                                                   chkbxAccountInactive.Checked
                                                   );

                        if (BaseMstr.StatusCode == 0)
                        {
                            txtUserId.Enabled         = false;
                            chkResetPasswd.Checked    = false;
                            txtPassword.Text          = String.Empty;
                            txtVerifyPassword.Text    = String.Empty;
                            txtPassword.Enabled       = false;
                            txtVerifyPassword.Enabled = false;
                        }
                        bSaved = (BaseMstr.StatusCode == 0);

                        if (bSaved)
                        {
                            bNotify = true;
                        }
                    }
                    else
                    {
                        bSaved = sec.UpdatePatientFXUserOptions(BaseMstr,
                                                                lFXUserID,
                                                                chkbxAccountLocked.Checked,
                                                                chkbxAccountInactive.Checked
                                                                );
                    }
                    bSaved = (BaseMstr.StatusCode == 0);
                }

                if (bNotify)
                {
                    //Add all patient events
                    CPatientEvent evt = new CPatientEvent(BaseMstr);
                    evt.AddSpecificEvent(cnChgPSWDEventID); //Password Changed

                    if (BaseMstr.StatusCode == 0)
                    {
                        evt.CompletedSpecificEvent(cnChgPSWDEventID); //Password Changed Event ID
                    }
                }

                LoadPatientsData();
                #endregion
            }
            else
            {
                return;
            }
        }
        else
        {
            BaseMstr.StatusCode    = 1;
            BaseMstr.StatusComment = "<img alt=\"\" src=\"Images/lock16x16.png\" /> You have <b>Read-Only Access</b> to this section.";
        }

        ShowSysFeedback();
        return;
    }
Ejemplo n.º 11
0
    //save the first view
    protected bool SaveDemographics()
    {
        Session["PAT_DEMOGRAPHICS_DS"] = null;
        Session["PATIENTNAME"]         = null;

        long lHomePhoneMsg = 0;
        long lEmailMsg     = 0;

        if (rblHomePhoneMsg.SelectedIndex > -1)
        {
            lHomePhoneMsg = Convert.ToInt32(rblHomePhoneMsg.SelectedValue);
        }

        if (rblEmailMessage.SelectedIndex > -1)
        {
            lEmailMsg = Convert.ToInt32(rblEmailMessage.SelectedValue);
        }

        //check data entry for errors
        string strMessage = CheckPatientDemoErrors();

        if (!string.IsNullOrEmpty(strMessage))
        {
            Master.StatusCode    = 1;
            Master.StatusComment = strMessage;
            //ShowSysFeedback();
            return(false);
        }

        ConvertPatientDemographics();

        CPatient pat = new CPatient();

        // if new patient then insert else update
        if (m_bNewPatient)
        {
            m_strNewPatientID   = Master.APPMaster.GetNewPatientID();
            m_strNewEncounterID = Master.APPMaster.GetNewEncounterID();

            //insert the actual record
            bool bStatus = pat.InsertPatientDemographics(
                Master,
                m_strNewPatientID,
                m_strNewEncounterID,
                txtFirstName.Text,
                txtMiddleName.Text,
                txtLastName.Text,
                m_strFMPSSN,
                m_strFMPSSNConfirm,
                m_strGender,
                m_strDOB,
                cboProvider.SelectedValue,
                txtAddress1.Text,
                txtAddress2.Text,
                txtCity.Text,
                txtPostCode.Text,
                txtHomePhone.Text,
                txtCelPhone.Text,
                txtWorkPhone.Text,
                txtPatEmail.Text,
                cboState.SelectedValue,
                Convert.ToInt32(cboCallPreference.SelectedValue),
                lHomePhoneMsg,
                lEmailMsg);

            if (!bStatus)
            {
                //ShowSysFeedback();
                return(false);
            }

            //reset these so the RFR tab will show
            Master.APPMaster.PatientHasOpenCase = true;

            Master.SetVSValue("IsNewPatient", false);
            Master.SetVSValue("ReloadPage", true);

            //set the selected patient id, basically they are
            //"looked up" at this point...
            Master.SelectedPatientID = m_strNewPatientID;

            //Add all patient events
            CPatientEvent evt = new CPatientEvent(Master);
            evt.AddAllEvents();

            //add patient step
            CPatientTxStep patstep = new CPatientTxStep(Master);
            patstep.InsertPatientStep(0);

            //get current (new) treatment id
            CEncounter enc             = new CEncounter();
            long       lNewTreatmentID = 1;
            enc.GetCurrentTreatmentID(Master, m_strNewPatientID, out lNewTreatmentID);
            Master.SelectedTreatmentID = lNewTreatmentID;

            //assign initial questionnaires
            CIntake intake = new CIntake();
            intake.AssignInitialAssessments(Master, m_strNewPatientID);

            if (!SaveEthnicityRaceSource())
            {
                //ShowSysFeedback();
                return(false);
            }

            return(true);
        }
        else
        {
            bool bStatus = pat.UpdatePatientDemographics(
                Master,
                txtFirstName.Text,
                txtMiddleName.Text,
                txtLastName.Text,
                m_strFMPSSN,
                m_strFMPSSNConfirm,
                m_strGender,
                m_strDOB,
                cboProvider.SelectedValue,
                txtAddress1.Text,
                txtAddress2.Text,
                txtCity.Text,
                txtPostCode.Text,
                txtHomePhone.Text,
                txtCelPhone.Text,
                txtWorkPhone.Text,
                txtPatEmail.Text,
                cboState.SelectedValue,
                Convert.ToInt32(cboCallPreference.SelectedValue),
                lHomePhoneMsg,
                lEmailMsg);

            if (!bStatus)
            {
                return(false);
            }

            if (!SaveEthnicityRaceSource())
            {
                return(false);
            }
        }

        return(true);
    }
Ejemplo n.º 12
0
    protected void CheckPAPDataStatus()
    {
        CPatientEvent evt = new CPatientEvent(Master);

        evt.CheckPAPEvent();
    }
Ejemplo n.º 13
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack && Master.SelectedPatientID == "")
        {
            GetPatientID();
        }

        //pass the master to the user control
        ucPatientPortalAccount.BaseMstr = Master;

        strSaveBtnID = Master.FindControl("btnMasterSave").ClientID;

        SetJSAttributes();

        //-----------------------------------------------------------------------
        //      NOT POSTBACK
        //-----------------------------------------------------------------------
        #region NotPostback
        if (!IsPostBack)
        {
            //Load combos
            loadAllCombos();
            LoadEthnicityRaceLists();

            if (Master.SelectedPatientID == "")
            {
                return;
            }
            else
            {
                loadPatient();
                loadEmergencyContactInput();
                ucPatientPortalAccount.loadPatientPortalAccount();
            }

            //set hidden field's value to the current tab index
            htxtCurrTab.Value = tabContDemographics.ActiveTabIndex.ToString();
        }
        #endregion

        //if the user pushed the master save button
        //then save the form
        if (Master.OnMasterSAVE())
        {
            if (Save())
            {
                CPatientTxStep patstep = new CPatientTxStep(Master);
                CPatientEvent  patevt  = new CPatientEvent(Master);

                if ((Master.PatientTxStep & (long)PatientStep.SavedProfile) == 0)
                {
                    patevt.CompletedEvent(1);
                }

                upWrapperUpdatePanel.Update();
                if (patstep.InsertPatientStep(1))
                {
                    Response.Redirect("portal_start.aspx");
                }
            }
        }
    }
Ejemplo n.º 14
0
    protected void btnChangePWD_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(txtNewP.Text) ||
            string.IsNullOrEmpty(txtVNewP.Text) ||
            string.IsNullOrEmpty(txtOldP.Text))
        {
            Master.StatusCode    = 1;
            Master.StatusComment = "Password entries are empty!";
            ShowSysFeedback();
            return;
        }

        if (txtNewP.Text != txtVNewP.Text)
        {
            Master.StatusCode    = 1;
            Master.StatusComment = "New Password and Verify Password do not match!";
            ShowSysFeedback();
            return;
        }

        if (pnlSecQuestions.Visible)
        {
            if (cboQuestion1.SelectedIndex < 1 ||
                cboQuestion2.SelectedIndex < 1 ||
                txtAnswer1.Text.Trim().Length < 1 ||
                txtAnswer2.Text.Trim().Length < 1)
            {
                Master.StatusCode    = 1;
                Master.StatusComment = "Please select two challenge questions and enter the corresponding answers!";
                ShowSysFeedback();
                return;
            }
        }

        long   lStatusCode      = 0;
        string strStatusComment = string.Empty;

        //validate the password rules
        CSec sec = new CSec();

        if (!sec.ValidateUserAccountRules(Master, (string)Session["USER_NAME"], txtNewP.Text))
        {
            Master.StatusCode    = lStatusCode;
            Master.StatusComment = strStatusComment;
            ShowSysFeedback();
            return;
        }

        //all good so far, change the pwd, login and redirect
        lStatusCode = sec.ChangePassword(Master, (string)Session["USER_NAME"], txtOldP.Text, txtNewP.Text);

        if (lStatusCode != 0)
        {
            Master.StatusCode    = lStatusCode;
            Master.StatusComment = strStatusComment;
            ShowSysFeedback();
            return;
        }

        //update security challenge questions & answers
        CSecQuestions secquest = new CSecQuestions(Master);

        if (!secquest.UpdateSecQuestions(Convert.ToInt32(cboQuestion1.SelectedValue),
                                         txtAnswer1.Text.Trim(),
                                         Convert.ToInt32(cboQuestion2.SelectedValue),
                                         txtAnswer2.Text.Trim(),
                                         -1,
                                         String.Empty))
        {
            Master.StatusCode    = lStatusCode;
            Master.StatusComment = strStatusComment;
            ShowSysFeedback();
            return;
        }

        //if we get here we have successfully changed the password
        //now login with the new account
        if (sec.Login(Master, (string)Session["USER_NAME"], txtNewP.Text) != 0)
        {
            Master.StatusCode    = lStatusCode;
            Master.StatusComment = strStatusComment;
            ShowSysFeedback();
            return;
        }

        Master.StatusCode    = lStatusCode;
        Master.StatusComment = strStatusComment;

        CPatient   pat   = new CPatient();
        CDataUtils utils = new CDataUtils();
        DataSet    dsPat = pat.GetPatientIDRS(Master, Master.FXUserID);

        Master.SelectedPatientID = utils.GetDSStringValue(dsPat, "PATIENT_ID");

        CPatientEvent evt = new CPatientEvent(Master);

        evt.CompletedEvent(1);


        ShowSysFeedback();

        //successful login so clear txt boxes
        lblUID.Text          = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        txtOldP.Text         = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        txtNewP.Text         = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        txtVNewP.Text        = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        lblUID.Text          = string.Empty;
        txtOldP.Text         = string.Empty;
        txtNewP.Text         = string.Empty;
        txtVNewP.Text        = string.Empty;
        Session["USER_NAME"] = null;

        //set a session variable with the login time
        Session["SESSION_INITIATED"] = DateTime.Now;

        //redirect, we are now logged in
        //Master.Response.Redirect("portal_revamp.aspx");
        Master.Response.Redirect("portal_start.aspx");
    }
Ejemplo n.º 15
0
    protected void HasCompletedFollowUp()
    {
        Session["COMPLETED_FOLLOWUP"] = null;
        Regex reREF = new Regex("mid\\d*.aspx", RegexOptions.IgnoreCase);

        if (reREF.IsMatch(Request.UrlReferrer.ToString()))
        {
            string strPath  = Request.UrlReferrer.ToString();
            string strGroup = strPath.Substring(strPath.IndexOf("grp=") + 4);

            string strFollowUpGrps = ",3,5,7,";
            string strCSQGrps      = ",2,4,6,8,";

            CPatientEvent evt    = new CPatientEvent(Master);
            CEncounter    enc    = new CEncounter();
            DataSet       dsGrps = enc.GetModuleGroupStatusDS(Master);

            if (dsGrps != null)
            {
                foreach (DataTable dt in dsGrps.Tables)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        long lMIDGRP  = 0;
                        long lPending = 1;

                        if (!dr.IsNull("MODULE_GROUP_ID"))
                        {
                            lMIDGRP = Convert.ToInt32(dr["MODULE_GROUP_ID"]);
                        }

                        if (!dr.IsNull("PENDING"))
                        {
                            lPending = Convert.ToInt32(dr["PENDING"]);
                        }

                        if (lPending == 0 && lMIDGRP != 0)
                        {
                            if (strGroup.Length > 0)
                            {
                                string strCurrGroup = "," + strGroup + ",";

                                if (lMIDGRP == Convert.ToInt32(strGroup) && (strFollowUpGrps.IndexOf(strCurrGroup) > -1))
                                {
                                    Session["COMPLETED_FOLLOWUP"] = 1;
                                    Response.Redirect("portal_start.aspx");
                                }
                                else if (lMIDGRP == Convert.ToInt32(strGroup) && (strCSQGrps.IndexOf(strCurrGroup) > -1))
                                {
                                    Session["COMPLETED_FOLLOWUP"] = 2;
                                    Response.Redirect("portal_start.aspx");
                                }
                            }
                        }
                    }
                }
            }

            if (!HasPendingModules(Master))
            {
                Response.Redirect("portal_start.aspx");
            }
        }
    }