public string GetImplementationGuideVocabulary(int implementationGuideId, int maxValueSetMembers, int vocabOutputType, string encoding) { try { TDBImplementationGuide ig = tdb.ImplementationGuides.SingleOrDefault(y => y.Id == implementationGuideId); if (ig == null) { throw new Exception("Could not find ImplementationGuide specified."); } bool?onlyStatic = VocabularyOutputTypeTranslator.FromInt(vocabOutputType) != VocabularyOutputType.FHIR ? (bool?)true : null; List <ImplementationGuideValueSet> valueSets = ig.GetValueSets(tdb, onlyStatic); List <VocabularySystem> systems = new List <VocabularySystem>(); foreach (ImplementationGuideValueSet cValueSet in valueSets) { VocabularySystem newSystem = this.GetSystem(tdb, cValueSet.ValueSet, cValueSet.BindingDate); systems.Add(newSystem); } VocabularySystems schema = new VocabularySystems(); schema.Systems = systems.ToArray(); VocabularyOutputTypeAdapter adapter = new VocabularyOutputTypeAdapter(schema, VocabularyOutputTypeTranslator.FromInt(vocabOutputType), Encoding.GetEncoding(encoding)); return(adapter.AsXML()); } catch (Exception ex) { Log.For(this).Critical("Error occurred while retrieving vocabulary for an implementation guide.", ex); throw; } }
protected VocabularySystems GetSystems(int implementationGuideId, int maxValueSetMembers, bool?onlyStatic = null) { try { ImplementationGuide ig = tdb.ImplementationGuides.SingleOrDefault(y => y.Id == implementationGuideId); if (ig == null) { throw new Exception("Could not find ImplementationGuide specified."); } IIGTypePlugin igTypePlugin = ig.ImplementationGuideType.GetPlugin(); List <ImplementationGuideValueSet> valueSets = ig.GetValueSets(tdb, onlyStatic); List <VocabularySystem> systems = new List <VocabularySystem>(); bool isCDA = ig.ImplementationGuideType.SchemaURI == "urn:hl7-org:v3"; foreach (ImplementationGuideValueSet cValueSet in valueSets) { VocabularySystem newSystem = this.GetSystem(igTypePlugin, tdb, cValueSet.ValueSet, cValueSet.BindingDate, isCDA); systems.Add(newSystem); } VocabularySystems schema = new VocabularySystems(); schema.Systems = systems.ToArray(); return(schema); } catch (Exception ex) { Log.For(this).Critical("Error occurred while retrieving vocabulary for an implementation guide.", ex); throw; } }
private VocabularySystem GetSystem(IObjectRepository tdb, TDBValueSet valueSet, DateTime?bindingDate) { if (valueSet == null) { throw new Exception("Could not find ValueSet specified."); } VocabularySystems schema = new VocabularySystems(); VocabularySystem schemaValueSet = new VocabularySystem() { ValueSetOid = valueSet.Oid, ValueSetName = valueSet.Name }; if (isCDA && schemaValueSet.ValueSetOid.StartsWith("urn:oid:")) { schemaValueSet.ValueSetOid = schemaValueSet.ValueSetOid.Substring(8); } schemaValueSet.Codes = GetCodes(valueSet, bindingDate).ToArray(); return(schemaValueSet); }
private VocabularySystem GetSystem(IIGTypePlugin igTypePlugin, IObjectRepository tdb, ValueSet valueSet, DateTime?bindingDate, bool isCDA) { if (valueSet == null) { throw new Exception("Could not find ValueSet specified."); } VocabularySystems schema = new VocabularySystems(); VocabularySystem schemaValueSet = new VocabularySystem() { ValueSetOid = valueSet.GetIdentifier(igTypePlugin), ValueSetName = valueSet.Name }; if (isCDA && schemaValueSet.ValueSetOid.StartsWith("urn:oid:")) { schemaValueSet.ValueSetOid = schemaValueSet.ValueSetOid.Substring(8); } schemaValueSet.Codes = GetCodes(valueSet, bindingDate, isCDA); return(schemaValueSet); }