//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); }
//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\" /> "; * 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\" /> "; 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\" /> "; 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\" /> "; 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\" /> "; 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); } } }
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"); } }
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"); } } } }