Example #1
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);
    }
Example #2
0
    //login or change password
    protected void btnLogin_Click(object sender, EventArgs e)
    {
        long lStatus = 0;
        CSec sec     = new CSec();

        if (divLogin.Visible)//logging in
        {
            lStatus = sec.Login(BaseMstr, txtU.Text, txtP.Text);
            if (lStatus == 0)
            {
                //good to go so cleanup and redirect
                PopupPostLogin.InnerHtml = "";

                //put us in change password mode
                divChangePassword.Visible = true;
                txtUN.ReadOnly            = false;//lest them re-type there user name
                txtUN.Text    = "";
                txtOldP.Text  = "";
                txtNewP.Text  = "";
                txtVNewP.Text = "";

                txtU.Text        = "";
                txtP.Text        = "";
                divLogin.Visible = false;

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

                GetPatientID();

                if (!String.IsNullOrEmpty(BaseMstr.SelectedPatientID))
                {
                    CPatientTxStep patstep = new CPatientTxStep(BaseMstr);
                    patstep.SetBaseMstrPatientStep();
                }

                //redirect, we are now logged in
                //BaseMstr.Response.Redirect("portal_revamp.aspx");
                BaseMstr.Response.Redirect(strPageAfterLogin);
            }
            else
            {
                //
                //4 = change password
                //
                if (lStatus == 4)
                {
                    Session["USER_NAME"] = txtU.Text.Trim();

                    Response.Redirect("change_password.aspx");

                    /*
                     * divLogin.Visible = false;
                     * divChangePassword.Visible = true;
                     *
                     * string strMsg = "<div style=\"padding: 10px; \">";
                     * strMsg += "<span class=\"login-alert\"><img src=\"Images/error.png\" alt=\"Transaction Failed\" />&nbsp;";
                     * strMsg += "Please change your password.";
                     * strMsg += "</span>";
                     * strMsg += "</div>";
                     * divLoginStatus.InnerHtml = strMsg;
                     *
                     * txtUN.Text = txtU.Text;
                     * txtUN.ReadOnly = true;
                     * return;
                     */
                }

                //////////////////////////////////////////////////////
                //following are handled below
                //
                //1 = invalid pwd
                //7 = invalid pwd and locked it
                //2 = account locked
                //3 = account inactive
                //6 = ip address locked
                //
                //show error and try again

                string strErr = "<div style=\"padding: 10px; \">";
                strErr += "<span class=\"login-error\"><img src=\"Images/cancel.png\" alt=\"Transaction Failed\" />&nbsp;";
                strErr += BaseMstr.StatusComment;
                strErr += "</span>";
                strErr += "</div>";

                divLoginStatus.InnerHtml = strErr;

                Session["SESSION_INITIATED"] = null;
            }
        }

        //are we changing the password?
        if (divChangePassword.Visible)//changing password
        {
            //only if not logged in
            if (!BaseMstr.IsLoggedIn())
            {
                txtUN.Text = txtU.Text;
            }

            //new pwd and verify new pwd must match
            if (txtNewP.Text != txtVNewP.Text)
            {
                string strErr = "<div style=\"padding: 10px; \">";
                strErr += "<span class=\"login-error\"><img src=\"Images/cancel.png\" alt=\"Transaction Failed\" />&nbsp;";
                strErr += "New Password and Verify Password do not match";
                strErr += "</span>";
                strErr += "</div>";

                divLoginStatus.InnerHtml = strErr;
                return;
            }

            //check all the account rules for the account...
            if (!sec.ValidateUserAccountRules(BaseMstr,
                                              txtUN.Text,
                                              txtNewP.Text))
            {
                //Note: will set StatusCode/StatusComment info
                string strErr = "<div style=\"padding: 10px; \">";
                strErr += "<span class=\"login-error\"><img src=\"Images/cancel.png\" alt=\"Transaction Failed\" />&nbsp;";
                strErr += BaseMstr.StatusComment;
                strErr += "</span>";
                strErr += "</div>";

                if (BaseMstr.StatusComment.Length < 48)
                {
                    divLoginStatus.InnerHtml = strErr;
                    PopupPostLogin.InnerHtml = String.Empty;
                }
                else
                {
                    divLoginStatus.InnerHtml = String.Empty;
                    ScriptManager.RegisterStartupScript(upLogin, typeof(string), "loginmsg", "sysfeedback('" + BaseMstr.StatusComment + "')", true);
                    //PopupPostLogin.InnerHtml = "<script type=\"text/javascript\">alert('" + BaseMstr.StatusComment + "');</script>";
                }

                return;
            }

            //change the users password, this will also log the user in
            lStatus = sec.ChangePassword(BaseMstr,
                                         txtUN.Text,
                                         txtOldP.Text,
                                         txtNewP.Text);


            if (lStatus != 0)
            {
                //Note: will set StatusCode/StatusComment info
                string strErr = "<div style=\"padding: 10px; \">";
                strErr += "<span class=\"login-error\"><img src=\"Images/cancel.png\" alt=\"Transaction Failed\" />&nbsp;";
                strErr += BaseMstr.StatusComment;
                strErr += "</span>";
                strErr += "</div>";

                divLoginStatus.InnerHtml = strErr;

                Session["SESSION_INITIATED"] = null;
                return;
            }
            else
            {
                //successfully logged in!
                divLoginStatus.InnerHtml = "";


                //clear the user id and pwd
                txtU.Text      = "";
                txtP.Text      = "";
                txtUN.Text     = "";
                txtOldP.Text   = "";
                txtNewP.Text   = "";
                txtVNewP.Text  = "";
                txtUN.ReadOnly = false;

                Session["SESSION_INITIATED"] = DateTime.Now;

                GetPatientID();

                if (!String.IsNullOrEmpty(BaseMstr.SelectedPatientID))
                {
                    CPatientTxStep patstep = new CPatientTxStep(BaseMstr);
                    patstep.SetBaseMstrPatientStep();
                }

                //BaseMstr.Response.Redirect("portal_revamp.aspx");
                BaseMstr.Response.Redirect(strPageAfterLogin);
            }
        }
    }
Example #3
0
    protected void CheckPatientStep()
    {
        CPatientTxStep patstep = new CPatientTxStep(Master);

        patstep.UpdatePatientSteps();

        bool bHasPendingQuestionnaires = false;

        //check if patient have peding follow-up questionnaires
        CIntake intake    = new CIntake();
        DataSet dsIntakes = intake.GetPatIntakeAssignedDS(Master);

        if (dsIntakes != null)
        {
            DataRow[] drs = dsIntakes.Tables[0].Select("STATUS = 0");
            bHasPendingQuestionnaires = (drs.GetLength(0) > 0);
        }

        //completed profile
        if ((Master.PatientTxStep & (long)PatientStep.SavedProfile) == 0)
        {
            //Redirect patient to the profile page
            Response.Redirect("pat_profile.aspx", true);
        }
        else
        {
            //check if patient is redirected here by completing follow up questionnaires
            if (Session["COMPLETED_FOLLOWUP"] != null)
            {
                if (Convert.ToInt32(Session["COMPLETED_FOLLOWUP"]) == 1)
                {
                    Session["COMPLETED_FOLLOWUP"] = null;
                    mvPortalSteps.SetActiveView(vCompletedFollowUp);
                    return;
                }
                else if (Convert.ToInt32(Session["COMPLETED_FOLLOWUP"]) == 2)
                {
                    Session["COMPLETED_FOLLOWUP"] = null;
                    mvPortalSteps.SetActiveView(vCompletedCSQ);
                    return;
                }
            }

            //Step 2 check (USER_STORY #2851)

            //if patient has not started or completed the baseline questionnaires
            if ((Master.PatientTxStep & (long)PatientStep.CompletedBaseline) == 0)
            {
                if ((Master.PatientTxStep & (long)PatientStep.StartedBaseline) == 0)
                {
                    //show "Getting Started" view
                    if (Request.UrlReferrer != null)
                    {
                        string strRefPage = Request.UrlReferrer.ToString().ToLower();
                        if (strRefPage.IndexOf("pat_profile.aspx") > -1)
                        {
                            spSubmitTxt.Visible = true;
                        }
                    }

                    mvPortalSteps.SetActiveView(vStep2);
                    return;
                }
                else
                {
                    //show complete baseline questionnaire view
                    mvPortalSteps.SetActiveView(vStartedBaseline);
                    return;
                }
            }

            //if patient has not competed videos
            if ((Master.PatientTxStep & (long)PatientStep.CompletedVideos) == 0)
            {
                if ((Master.PatientTxStep & (long)PatientStep.StartedVideos) == 0)
                {
                    if (Request.UrlReferrer != null)
                    {
                        //show videos message
                        string strRefPage = Request.UrlReferrer.ToString().ToLower();
                        strRefPage = strRefPage.Substring(strRefPage.LastIndexOf('/'));
                        Regex reREF = new Regex("mid\\d*.aspx", RegexOptions.IgnoreCase);

                        bool bFromQuestionnaire = reREF.IsMatch(strRefPage);

                        if (strRefPage.IndexOf("patient_assessment.aspx") > -1 || bFromQuestionnaire)
                        {
                            pQCongratulations.Visible = true;
                            pQuestWelcome.Visible     = false;
                        }
                    }

                    mvPortalSteps.SetActiveView(vCompletedBaselineQ);
                    return;
                }
                else
                {
                    //show started videos view
                    mvPortalSteps.SetActiveView(vStartedVideos);
                    return;
                }
            }

            if ((Master.PatientTxStep & (long)PatientStep.HasCPAPData) == 0)
            {
                if ((Master.PatientTxStep & (long)PatientStep.CompletedVideos) > 0 &&
                    (Master.NotificationTxStep & (long)PatientStep.CompletedVideos) == 0)
                {
                    if (!bHasPendingQuestionnaires)
                    {
                        if (Request.UrlReferrer != null)
                        {
                            string strRefPage = Request.UrlReferrer.ToString().ToLower();
                            strRefPage = strRefPage.Substring(strRefPage.LastIndexOf('/'));

                            if (strRefPage.IndexOf("education.aspx") > -1)
                            {
                                pVidWelcome.Visible = false;
                                //spVidCongratulations.Visible = true;
                            }
                        }

                        patstep.UpdateNotificationSteps((long)PatientStep.CompletedVideos);
                        mvPortalSteps.SetActiveView(vCompletedVideos);
                        return;
                    }
                    else
                    {
                        patstep.UpdateNotificationSteps((long)PatientStep.CompletedVideos);
                        GetListPendingQuestionnaires(dsIntakes, bHasPendingQuestionnaires);
                        mvPortalSteps.SetActiveView(vPendingQuestionnaires);
                        return;
                    }
                }
                else if ((Master.PatientTxStep & (long)PatientStep.CompletedVideos) > 0 &&
                         (Master.NotificationTxStep & (long)PatientStep.CompletedVideos) > 0)
                {
                    if (bHasPendingQuestionnaires)
                    {
                        GetListPendingQuestionnaires(dsIntakes, bHasPendingQuestionnaires);
                        mvPortalSteps.SetActiveView(vPendingQuestionnaires);
                        return;
                    }
                }
            }

            if (bHasPendingQuestionnaires)
            {
                GetListPendingQuestionnaires(dsIntakes, bHasPendingQuestionnaires);
                mvPortalSteps.SetActiveView(vPendingQuestionnaires);
                return;
            }

            //Redirect patient to treatment results page
            Response.Redirect("portal_revamp.aspx");
        }
    }
Example #4
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");
                }
            }
        }
    }