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"); } } } }
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); }
protected void GetPatientEvents() { CPatientEvent evt = new CPatientEvent(BaseMstr); DataSet dsPatEvt = evt.GetPatientEventsDS(); repPatientEvents.DataSource = dsPatEvt; repPatientEvents.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { CPatientEvent evt = new CPatientEvent(Master); evt.CheckPAPEventALL(); } ucEvtManagement.BaseMstr = Master; }
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; } } } }
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"); } } }
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(); } }
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); } }
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(); }
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; }
//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); }
protected void CheckPAPDataStatus() { CPatientEvent evt = new CPatientEvent(Master); evt.CheckPAPEvent(); }
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"); } } } }
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"); }
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"); } } }