/// <summary> /// Initialises this instance. /// </summary> public static void Initialize() { TerminologyManager.TerminologyProviderClient = new TerminologyProviderClient(); SnomedConcepts.Initialized += new EventHandler <BaseTerminologyEventArgs>(SnomedConcepts_Initialized); SnomedConcepts.Initialize(); }
/// <summary> /// Calls out to service provider to get the ConceptDetails needed for laterality, negation and refinable characteristics. /// </summary> public static void Initialize() { TerminologyProviderClient terminologyProviderClient = new TerminologyProviderClient(); terminologyProviderClient.GetConceptDetailsCompleted += delegate(object sender, GetConceptDetailsCompletedEventArgs e) { if (e.Error == null && e.Result != null) { int index = (int)e.UserState; SnomedConcepts.postCoordinationConceptsList[index] = new PostCoordinationConcept(e.Result, true); SnomedConcepts.CheckInitialized(); } else { if (SnomedConcepts.Initialized != null) { SnomedConcepts.Initialized(null, new BaseTerminologyEventArgs(false)); } } }; for (int i = 0; i < SnomedConcepts.postCoordinationConceptsList.Count; i++) { ConceptDetail conceptDetail = SnomedConcepts.postCoordinationConceptsList[i].ConceptDetail; if (conceptDetail != null && !string.IsNullOrEmpty(conceptDetail.SnomedConceptId)) { terminologyProviderClient.GetConceptDetailsAsync(conceptDetail.SnomedConceptId, TerminologyManager.LocaleString, i); } } }
/// <summary> /// Checks the initialized. /// </summary> private static void CheckInitialized() { bool initialized = false; foreach (PostCoordinationConcept postCoordinationConcept in SnomedConcepts.postCoordinationConceptsList) { if (postCoordinationConcept != null && postCoordinationConcept.IsInitialized) { initialized = true; } else { initialized = false; break; } } if (initialized && SnomedConcepts.Initialized != null) { SnomedConcepts.Initialized(null, new BaseTerminologyEventArgs(true)); } }
/// <summary> /// Raises the additional text box completed event and doesn't strip laterality results. /// </summary> /// <param name="results">The results.</param> /// <param name="searchState">User state of search.</param> private static void RaiseAdditionalTextBoxCompleted(ObservableCollection <AdditionalTextBoxResult> results, SearchState searchState) { ObservableCollection <AdditionalTextBoxResult> newResults = new ObservableCollection <AdditionalTextBoxResult>(); foreach (AdditionalTextBoxResult additionalTextBoxResult in results) { if (additionalTextBoxResult.IsSide && searchState.LateralityFindingSites.Count > 0) { additionalTextBoxResult.FindingSites = searchState.LateralityFindingSites; additionalTextBoxResult.AlternateItems = SnomedConcepts.FindPostCoordinationConcept(additionalTextBoxResult.SelectedItem.Parents[0].SnomedConceptId).Children; newResults.Add(additionalTextBoxResult); } else if (!additionalTextBoxResult.IsSide) { newResults.Add(additionalTextBoxResult); additionalTextBoxResult.AlternateItems = SnomedConcepts.FindPostCoordinationConcept(additionalTextBoxResult.SelectedItem.Parents[0].SnomedConceptId).Children; } } if (TerminologyManager.AdditionalTextBoxParseCompleted != null) { TerminologyManager.AdditionalTextBoxParseCompleted(null, new AdditionalTextBoxParseCompletedEventArgs(searchState.SearchTextOriginal, newResults, searchState.ConceptDetail.SnomedConceptId)); } }