/// <summary> /// Parses the additional text box. /// </summary> /// <param name="text">The text to parse for qualifiers.</param> /// <param name="inputFieldResult">The input field result.</param> /// <param name="conceptDetail">The concept detail.</param> public static void ParseAdditionalTextBox(string text, InputFieldResult inputFieldResult, ConceptDetail conceptDetail) { #if SILVERLIGHT string normalisedSearchString = text.ToUpper(CultureInfo.InvariantCulture); #else string normalisedSearchString = text.ToUpperInvariant(); #endif ObservableCollection <string> domains = new ObservableCollection <string>(); domains.Add(TerminologyManager.QualifiersDomainString); SearchState searchState = new SearchState(); searchState.SearchTextOriginal = text; searchState.ConceptDetail = conceptDetail; searchState.InputFieldResult = inputFieldResult; if (conceptDetail.RefinableCharacteristics.Count > 0) { TerminologyManager.terminologyProviderClient.IndexTextAsync(normalisedSearchString, domains, null, false, TerminologyManager.LocaleString, searchState); } else { TerminologyManager.RaiseAdditionalTextBoxCompleted(new ObservableCollection <AdditionalTextBoxResult>(), searchState); } }
/// <summary> /// Converts an InputFieldResult into a TextBlock. /// </summary> /// <param name="value">The InputFieldResult.</param> /// <param name="targetType">The target type.</param> /// <param name="parameter">The font size parameter.</param> /// <param name="culture">The culture info.</param> /// <returns>A formatted textblock.</returns> public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == null) { return(null); } TextBlock textBlock = new TextBlock(); textBlock.TextWrapping = TextWrapping.Wrap; if (value.GetType() == typeof(InputFieldResult)) { InputFieldResult result = (InputFieldResult)value; if (result.IsNegated) { Run description = new Run(); description.Text = string.Format(culture, "No {0}, ", result.Description); textBlock.Inlines.Add(description); Run knownAbsence = new Run(); knownAbsence.FontStyle = FontStyles.Italic; knownAbsence.Text = "known absence of "; textBlock.Inlines.Add(knownAbsence); Run fullySpecifiedName = new Run(); fullySpecifiedName.Text = result.Concept.FullySpecifiedName; textBlock.Inlines.Add(fullySpecifiedName); } else if (result.Description != result.Concept.PreferredTerm) { Run descriptionName = new Run(); descriptionName.Text = result.Description; textBlock.Inlines.Add(descriptionName); Run knownAbsence = new Run(); knownAbsence.FontSize = knownAbsence.FontSize - 1; knownAbsence.Text = " synonym of"; textBlock.Inlines.Add(knownAbsence); } else { Run fullySpecifiedName = new Run(); fullySpecifiedName.Text = result.Concept.FullySpecifiedName; textBlock.Inlines.Add(fullySpecifiedName); } } else if (value.GetType() == typeof(ConceptResult)) { ConceptResult result = (ConceptResult)value; Run fullySpecifiedName = new Run(); fullySpecifiedName.Text = result.FullySpecifiedName; textBlock.Inlines.Add(fullySpecifiedName); } return(textBlock); }
/// <summary> /// Encodes the concept. /// </summary> /// <param name="inputFieldResult">The input field result.</param> /// <param name="additionalTextBoxResults">The additional text box results.</param> public static void EncodeConcept(InputFieldResult inputFieldResult, ObservableCollection <AdditionalTextBoxResult> additionalTextBoxResults) { SearchState searchState = new SearchState(); searchState.InputFieldResult = inputFieldResult; searchState.AdditionalTextBoxResults = additionalTextBoxResults; searchState.UserState = UserState.EncodingMainConcept; terminologyProviderClient.GetConceptDetailsAsync(inputFieldResult.Concept.SnomedConceptId, TerminologyManager.LocaleString, searchState); }
/// <summary> /// Prepares the input field results. /// </summary> /// <param name="searchResult">The search result.</param> /// <param name="prefix">The prefix.</param> /// <param name="postfix">The postfix.</param> /// <param name="isNegated">If set to <c>true</c> [is negated].</param> /// <returns>A list of prepared input field results.</returns> private static ObservableCollection <InputFieldResult> PrepareInputFieldResults(SearchResult searchResult, string prefix, string postfix, bool isNegated) { ObservableCollection <InputFieldResult> preparedResults = new ObservableCollection <InputFieldResult>(); foreach (TermResult termResult in searchResult.Terms) { InputFieldResult inputFieldResult = new InputFieldResult(); inputFieldResult.Concept = termResult.Concept; inputFieldResult.Description = termResult.Description; inputFieldResult.SnomedDescriptionId = termResult.SnomedDescriptionId; inputFieldResult.PrefixText = prefix; inputFieldResult.PostfixText = postfix; inputFieldResult.IsNegated = isNegated; preparedResults.Add(inputFieldResult); } return(preparedResults); }
/// <summary> /// Returns 'is a' or 'is an' based on the start of the next word. /// </summary> /// <param name="value">The next piece of text.</param> /// <param name="targetType">The target type.</param> /// <param name="parameter">The parameter.</param> /// <param name="culture">The culture info.</param> /// <returns>Either 'is a' or 'is an'.</returns> public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { InputFieldResult inputFieldResult = null; if ((inputFieldResult = value as InputFieldResult) != null) { if (inputFieldResult.IsNegated) { return(Visibility.Collapsed); } if (inputFieldResult.Description == inputFieldResult.Concept.PreferredTerm) { return(Visibility.Collapsed); } } else if (value is ConceptResult) { } return(Visibility.Visible); }
/// <summary> /// Prepares the input field results. /// </summary> /// <param name="searchResult">The search result.</param> /// <param name="prefix">The prefix.</param> /// <param name="postfix">The postfix.</param> /// <param name="isNegated">If set to <c>true</c> [is negated].</param> /// <returns>A list of prepared input field results.</returns> private static ObservableCollection<InputFieldResult> PrepareInputFieldResults(SearchResult searchResult, string prefix, string postfix, bool isNegated) { ObservableCollection<InputFieldResult> preparedResults = new ObservableCollection<InputFieldResult>(); foreach (TermResult termResult in searchResult.Terms) { InputFieldResult inputFieldResult = new InputFieldResult(); inputFieldResult.Concept = termResult.Concept; inputFieldResult.Description = termResult.Description; inputFieldResult.SnomedDescriptionId = termResult.SnomedDescriptionId; inputFieldResult.PrefixText = prefix; inputFieldResult.PostfixText = postfix; inputFieldResult.IsNegated = isNegated; preparedResults.Add(inputFieldResult); } return preparedResults; }
/// <summary> /// Encodes the concept. /// </summary> /// <param name="inputFieldResult">The input field result.</param> /// <param name="additionalTextBoxResults">The additional text box results.</param> public static void EncodeConcept(InputFieldResult inputFieldResult, ObservableCollection<AdditionalTextBoxResult> additionalTextBoxResults) { SearchState searchState = new SearchState(); searchState.InputFieldResult = inputFieldResult; searchState.AdditionalTextBoxResults = additionalTextBoxResults; searchState.UserState = UserState.EncodingMainConcept; terminologyProviderClient.GetConceptDetailsAsync(inputFieldResult.Concept.SnomedConceptId, TerminologyManager.LocaleString, searchState); }
/// <summary> /// Parses the additional text box. /// </summary> /// <param name="text">The text to parse for qualifiers.</param> /// <param name="inputFieldResult">The input field result.</param> /// <param name="conceptDetail">The concept detail.</param> public static void ParseAdditionalTextBox(string text, InputFieldResult inputFieldResult, ConceptDetail conceptDetail) { #if SILVERLIGHT string normalisedSearchString = text.ToUpper(CultureInfo.InvariantCulture); #else string normalisedSearchString = text.ToUpperInvariant(); #endif ObservableCollection<string> domains = new ObservableCollection<string>(); domains.Add(TerminologyManager.QualifiersDomainString); SearchState searchState = new SearchState(); searchState.SearchTextOriginal = text; searchState.ConceptDetail = conceptDetail; searchState.InputFieldResult = inputFieldResult; if (conceptDetail.RefinableCharacteristics.Count > 0) { TerminologyManager.terminologyProviderClient.IndexTextAsync(normalisedSearchString, domains, null, false, TerminologyManager.LocaleString, searchState); } else { TerminologyManager.RaiseAdditionalTextBoxCompleted(new ObservableCollection<AdditionalTextBoxResult>(), searchState); } }