コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        private void PopulateForm()
        {
            if (!string.IsNullOrEmpty(SurveyIdField.Value))
            {
                int    surveyId = int.Parse(SurveyIdField.Value);
                Survey biz      = new Survey();
                biz.Get(surveyId);
                base.PopulateForm(biz);

                // populate survey items
                DataView surveyItems = SurveyItem.GetByParentAsDataView <SurveyItem>(surveyId);
                SurveyItemsGrid.DataSource = surveyItems;
                SurveyItemsGrid.DataBind();

                // set related record if exists
                int       patientItemId  = int.Parse(base.DecrypyValue(PatientItemId.Value));
                DataTable relatedRecords = RelatedRecordsDa.GetRecord("ProtocolMgr_PatientItems", patientItemId, "Surveys", surveyId);
                if (relatedRecords.Rows.Count > 0)
                {
                    RelatedRecordId.Value = relatedRecords.Rows[0][RelatedRecord.RelatedRecordId].ToString();
                }
            }
            else
            {
                // show empty grid by builing empty data table
                DataTable dt = new DataTable();
                dt.Columns.AddRange((from col in new SurveyItem().FieldNames
                                     select new DataColumn(col)).ToArray());
                SurveyItemsGrid.DataSource = dt.DefaultView;
                SurveyItemsGrid.DataBind();
            }
            SurveyPluginControl.SetSurveyIdField(SurveyIdField.Value);
        }
コード例 #2
0
        protected void FixSelected(Control row)
        {
            ICaisisInputControl surveyIdField = row.FindControl("SurveyId") as ICaisisInputControl;
            int surveyId = int.Parse(surveyIdField.Value);

            // create a lookup for each discrete score
            Dictionary <string, string> scoresToValues = new Dictionary <string, string>();

            foreach (var column in SCORE_COLUMNS)
            {
                string columnName        = column.Key;
                string columnDisplayName = column.Value;
                string scoreFieldId      = columnName.Replace(" ", "");
                var    scoreField        = row.FindControl(scoreFieldId) as ICaisisInputControl;
                string scoreValue        = scoreField.Value;

                scoresToValues.Add(columnName, scoreValue);
            }
            // update notes field
            Survey survey = new Survey();

            survey.Get(surveyId);
            // get current notes
            string sourceSurveyNotes = survey[Survey.SurveyNotes].ToString();
            // get computed notes
            string computedSurveyNotes = GetComputedSurveyNotes(sourceSurveyNotes, scoresToValues);

            // update notes field
            survey[Survey.SurveyNotes] = computedSurveyNotes;
            survey.Save();
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void SaveClick(object sender, EventArgs e)
        {
            // save survey
            Survey biz = new Survey();

            if (!string.IsNullOrEmpty(SurveyIdField.Value))
            {
                biz.Get(int.Parse(SurveyIdField.Value));
            }
            // if save was NOT triggerd from plugin, then save with form fields
            if (string.IsNullOrEmpty(SaveFromPlugin.Value))
            {
                CICHelper.SetBOValues(this.Controls, biz, int.Parse(BaseDecryptedPatientId));
                biz.Save();
                int surveyId = (int)biz[Survey.SurveyId];
                SurveyIdField.Value = surveyId.ToString();

                // save survey items
                SurveyItemsGrid.Save(surveyId);
            }

            SurveyPluginControl.SetSurveyIdField(SurveyIdField.Value);

            // create patient item if needed
            PatientItem item = new PatientItem();
            int         patientItemId;

            if (!string.IsNullOrEmpty(PatientItemId.Value))
            {
                item.Get(int.Parse(base.DecrypyValue(PatientItemId.Value)));
            }
            else
            {
                item[PatientItem.PatientSchemaId] = PatientSchemaId;
                item[PatientItem.Status]          = "Unplanned";
            }
            item[PatientItem.ScheduledDate] = FieldSurveyDate.Value;
            item.Save();
            patientItemId       = (int)item[item.PrimaryKeyName];
            PatientItemId.Value = base.EncryptValue(patientItemId.ToString());

            // now create association via related records
            int relatedRecordId = PatientProtocolController.CreateUnplannedVisitRelatedRecord(patientItemId, biz.TableName, int.Parse(SurveyIdField.Value));

            RelatedRecordId.Value = relatedRecordId.ToString();

            // don't register update script if triggered from add new row
            if (sender != AddNewRowBtn)
            {
                // register update script
                RegisterUpdateScript(false);
            }
            // otherwise repopulate form
            else
            {
                PopulateForm();
            }
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="surveyId"></param>
        private void PopulateSurvey(int surveyId)
        {
            Survey surveyRecord = new Survey();

            surveyRecord.Get(surveyId);
            // get current type
            surveyType = surveyRecord[Survey.SurveyType].ToString();
            // build edit link
            BuildEditSurveyLink(surveyId, surveyType);

            // Set Survey Values based on Label's with Survey FieldNames as ID
            foreach (string colName in surveyRecord.FieldNames)
            {
                Label fieldLabel = SurveyPanel.FindControl(colName) as Label;
                if (fieldLabel != null)
                {
                    object colVal = surveyRecord[colName];
                    if (colVal != null && colVal is DateTime)
                    {
                        DateTime colDate = (DateTime)colVal;
                        fieldLabel.Text = colDate.ToShortDateString();
                    }
                    else
                    {
                        fieldLabel.Text = colVal.ToString();
                    }
                }
            }
            // set title
            SurveyTypeLabel.InnerText = surveyType;

            // determine which type of view to build
            if (!string.IsNullOrEmpty(QueryView) && QueryView.Equals("advanced", StringComparison.CurrentCultureIgnoreCase))
            {
                // attempt to build complex page, section, question view
                BuildPages(surveyId, surveyType);
            }
            else
            {
                // build normal list of all survey items
                BindSurveyItems(surveyId);
            }
        }