示例#1
0
        /// <summary>
        /// Gets a start and end date filter for Diagnostics
        /// </summary>
        /// <returns></returns>
        private KeyValuePair <DateTime?, DateTime?> GetDiagnosticDateRange()
        {
            PatientProtocolController ppc = new PatientProtocolController(int.Parse(PatientProtocolId));
            DateTime?startDate            = ppc.GetStatusDate(PatientProtocolController.OnStudy);

            // 90 days before on study
            if (startDate.HasValue)
            {
                startDate = startDate.Value.AddDays(-90);
            }
            DateTime?endDate = ppc.GetStatusDate(PatientProtocolController.OffStudy);

            return(new KeyValuePair <DateTime?, DateTime?>(startDate, endDate));;
        }
示例#2
0
        private DateTime?GetOnStudyDate()
        {
            int ptProtocolId = int.Parse(PatientProtocolId);
            PatientProtocolController ppc = new PatientProtocolController(ptProtocolId);

            return(ppc.GetStatusDate(PatientProtocolController.OnStudy));
        }
示例#3
0
        /// <summary>
        /// Populates the patient's baseline form
        /// </summary>
        private void PopulateBaselineForm()
        {
            int patientId         = int.Parse(BaseDecryptedPatientId);
            int ptProtocolId      = int.Parse(PatientProtocolId);
            var dataEntryControls = PageUtil.GetControls <BaseDataEntryControl>(BaselineFormPanel);
            // load patient
            Patient patient = new Patient();

            patient.Get(patientId);
            // load patient protocol
            PatientProtocol ptProtocol = new PatientProtocol();

            ptProtocol.Get(ptProtocolId);
            PatientProtocolController ptProtocolController = new PatientProtocolController(ptProtocolId);
            DateTime?onStudyDate         = ptProtocolController.GetStatusDate(PatientProtocolController.OnStudy);
            DateTime?screeningFailedDate = ptProtocolController.GetStatusDate(PatientProtocolController.ScreeningFailed);
            DateTime?screeningPassedDate = ptProtocolController.GetStatusDate(PatientProtocolController.ScreeningPassed);
            // determine date ranges
            DateTime?baselineFromDate = null;
            DateTime?baselineToDate   = onStudyDate ?? screeningFailedDate ?? screeningPassedDate;

            List <ICaisisInputControl> inputs = new List <ICaisisInputControl>();

            // populate components
            foreach (BaseDataEntryControl control in dataEntryControls)
            {
                // set date ranges
                control.BaselineFromDate = baselineFromDate;
                // todo???
                control.BaselineToDate = baselineToDate;
                control.Populate();
                inputs.AddRange(CICHelper.GetCaisisInputControls(control));
            }
            // add required field
            foreach (var control in inputs.Where(i => i.Required).OfType <WebControl>())
            {
                control.Attributes["data-required"] = "true";
            }
        }
示例#4
0
        private void BuildChronList()
        {
            int patientId = int.Parse(BaseDecryptedPatientId);
            //ChronoDa da = new ChronoDa();
            //DataView dv = da.GetChronoList(patientId, CHRON_NAME, User.Identity.Name).Tables[0].DefaultView;
            PatientProtocolResponseDa da = new PatientProtocolResponseDa();
            // all dx types
            //DataView dv = da.GetImagingAndResponseChronList(patientId).DefaultView;
            // only specific dx types
            DataTable imagingTable = da.GetImagingAndResponseChronList(patientId, DxImagingTypes);
            DataView  imagingView  = imagingTable.DefaultView;

            // filter > 90 days before screened date
            if (!string.IsNullOrEmpty(PatientProtocolId) && DiagFilter.Checked)
            {
                PatientProtocolController ppc = new PatientProtocolController(int.Parse(PatientProtocolId));
                DateTime?     onStudyDate     = ppc.GetStatusDate(PatientProtocolController.OnStudy);
                DateTime?     offStudyDate    = ppc.GetStatusDate(PatientProtocolController.OffStudy);
                List <string> filters         = new List <string>();
                // within 90 days of on study
                if (onStudyDate.HasValue)
                {
                    filters.Add(string.Format("SortDate >= #{0:d}#", onStudyDate.Value.AddDays(-90)));
                }
                // after off study
                if (offStudyDate.HasValue)
                {
                    filters.Add(string.Format("SortDate <= #{0:d}#", offStudyDate.Value));
                }
                if (filters.Count > 0)
                {
                    imagingView.RowFilter = string.Join(" AND ", filters.ToArray());
                }
            }
            ImagingChronListRptr.DataSource = imagingView;
            ImagingChronListRptr.DataBind();
        }