// // - Methods - // /// <summary> /// Add a Context Group this this instance. /// </summary> /// <param name="contextGroup">The Context Group to add.</param> private void AddCodedConceptsToDictionary(ContextGroup contextGroup) { foreach (CodedConceptOrInclude codedConceptOrInclude in contextGroup.CodedConceptsOrIncludes) { if (codedConceptOrInclude is CodedConcept) { CodedConcept codedConcept = codedConceptOrInclude as CodedConcept; CodingSchemeDesignatorCodeValuePair codingSchemeDesignatorCodeValuePair = new CodingSchemeDesignatorCodeValuePair(codedConcept.CodingSchemeDesignator, codedConcept.CodeValue); List <CodedConcept> codedConcepts = null; if (this.codedConceptDictionary.TryGetValue(codingSchemeDesignatorCodeValuePair, out codedConcepts)) { codedConcepts.Add(codedConcept); } else { codedConcepts = new List <CodedConcept>(); codedConcepts.Add(codedConcept); this.codedConceptDictionary.Add(codingSchemeDesignatorCodeValuePair, codedConcepts); } } } }
/// <summary> /// Get a list of all Coded Concepts from all loaded Context Groups that have the supplied /// Coding Scheme Designator and Code Value. /// </summary> /// <remarks> /// A dictionary is used internally for this purpose, so this method call should be fast. /// </remarks> /// <param name="codingSchemeDesignator">The Coding Scheme Designator.</param> /// <param name="codeValue">The Code Value.</param> /// <returns>A (possible empty) list of Coded Concepts.</returns> public IList <CodedConcept> GetCodedConcepts(string codingSchemeDesignator, string codeValue) { List <CodedConcept> codedConcepts = null; CodingSchemeDesignatorCodeValuePair codingSchemeDesignatorCodeValuePair = new CodingSchemeDesignatorCodeValuePair(codingSchemeDesignator, codeValue); if (!this.codedConceptDictionary.TryGetValue(codingSchemeDesignatorCodeValuePair, out codedConcepts)) // Key not found and codedConcepts contains null; { codedConcepts = new List <CodedConcept>(); } return(codedConcepts); }