Exemple #1
0
        public static IStructureDefinitionSummaryProvider CreateCustomSchemaProvider(params StructureDefinition[] customSds)
        {
            #region Create a SchemaProvider that knows about custom SDs
            var canonicalSdDict = customSds.ToDictionary(sd => sd.Url, sd => sd);
            var customResolver  = new CustomResolver(canonicalSdDict);

            var typeCanonicalDict = customSds.ToDictionary(sd => sd.Type, sd => sd.Url);
            bool mapTypeName(string typename, out string canonical)
            {
                if (!typeCanonicalDict.TryGetValue(typename, out canonical))
                {
                    canonical = VonkConstants.Canonical.FhirCoreCanonicalBase + "/" + typename;
                }
                return(true);
            }

            var provider = new StructureDefinitionSummaryProvider(customResolver, mapTypeName);
            return(provider);

            #endregion
        }
Exemple #2
0
        static void Main(string[] args)
        {
            var xml = "<Patient xmlns=\"http://hl7.org/fhir\"><identifier>" +
                      "<use value=\"official\" /></identifier></Patient>";
            MemoryStream memStream = new MemoryStream();

            byte[] data = Encoding.Default.GetBytes(xml);
            memStream.Write(data, 0, data.Length);
            memStream.Position = 0;
            XmlReader reader = XmlReader.Create(memStream);

            reader.Read();

            FhirXmlParsingSettings settings = new FhirXmlParsingSettings();

            ISourceNode patientNode = FhirXmlNode.Read(reader, settings);
            //IResourceResolver Resolver = new TestResourceResolver();
            IResourceResolver Resolver = ZipSource.CreateValidationSource();


            StructureDefinitionSummaryProvider Provider = new StructureDefinitionSummaryProvider(Resolver);



            ITypedElement patientRootElement = patientNode.ToTypedElement(Provider);

            var    r    = patientRootElement.Select("Patient.identifier.use");
            string test = (string)r.FirstOrDefault().Value;

            //ITypedElement activeElement = patientRootElement.Children("active").First();
            //Assert.AreEqual("boolean", activeElement.Type);

            //Assert.AreEqual("boolean", activeElement.Type);


            //var patientNode = FhirXmlNode.Parse(xml);
            //var use = patientNode.Children("identifier").Children("use").First();
            //Assert.AreEqual("official", use.Text);
            //Assert.AreEqual("Patient.identifier[0].use[0]", use.Location);
        }