public string PostCda(string doc)
        {
            var xml = XDocument.Parse(doc);

            var parserSettings = new CdaParserSettings
            {
                RunValidation = false
            };

            var parser    = new CdaParser(parserSettings);
            var bundle    = parser.Convert(xml);
            var docPosted = FHIRXchangeRepoObj.Post(bundle);

            return(docPosted);
        }
        public void ShallReturnComposition()
        {
            var xml = XDocument.Load("C-CDA_R2-1_CCD.xml");

            var parserSettings = new CdaParserSettings
            {
                RunValidation = false
            };

            var parser = new CdaParser(parserSettings);
            var bundle = parser.Convert(xml);

            bundle.Should().NotBeNull();
            bundle.Id.Should().NotBeNullOrEmpty();
            bundle.Identifier.Should().NotBeNull();
            bundle.Entry[0].Resource.ResourceType.Should().Be(ResourceType.Composition);

            var composition = (Composition)bundle.Entry[0].Resource;

            composition.Id.Should().NotBeNullOrEmpty();
            composition.Language.Should().NotBeNullOrEmpty();
            composition.Identifier.Should().NotBeNull();
            composition.Subject.Should().NotBeNull();
            composition.Date.Should().NotBeNullOrEmpty();
            composition.Author.Count.Should().BeGreaterThan(0);
            composition.Title.Should().NotBeNullOrEmpty();
            composition.Confidentiality.Should().NotBeNull();
            composition.Custodian.Should().NotBeNull();
            composition.Type.Should().NotBeNull();

            // US-Core Shall have Allergies and Intolerances Section
            composition.Section.Any(s => s.Code.Coding.Any(c => c.Code == "48765-2")).Should().BeTrue();
            // US-Core Shall have Medications Section
            // US-Core Shall have Problem Section
            // US-Core Shall have Results Section
            // US-Core Shall have Social History Section
            // US-Core Shall have Vital Signs Section


            using (var writer = new StreamWriter("output.json"))
                using (var jWriter = new JsonTextWriter(writer))
                {
                    jWriter.Formatting = Formatting.Indented;
                    new FhirJsonSerializer().Serialize(bundle, jWriter);
                }
        }
        public void ShallReturnNoValidationError()
        {
            var xml = XDocument.Load("C-CDA_R2-1_CCD.xml", LoadOptions.SetLineInfo);

            var parserSettings = new CdaParserSettings
            {
                RunValidation = true
            };

            var parser = new CdaParser(parserSettings);
            var bundle = parser.Convert(xml);

            using (var writer = new StreamWriter("error.json"))
                using (var jWriter = new JsonTextWriter(writer))
                {
                    jWriter.Formatting = Formatting.Indented;
                    var serializer = new JsonSerializer();
                    serializer.Serialize(jWriter, parser.Errors);
                }

            parser.Errors.Count.Should().Be(0);
        }