/// <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); }
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(); }
/// <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(); } }
/// <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); } }