Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }