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); }