fhir-net-api(STU3)-验证

时间:2018-11-20 18:17:32

标签: hl7-fhir

我一直在使用Hl7.org工具org.hl7.fhir.validator.jar文件验证我的消息,但是我想将此功能添加到我的.Net项目中。解析消息后,便可以调用一个类来验证结构。

  

fhir-net-api中是否存在一个有效的FHIR类,它将显示与org.hl7.fhir.validator.jar相同的结果?

    string HL7FilePath = string.Format("{0}\\{1}", System.IO.Directory.GetCurrentDirectory(), "Sample.xml");
    string HL7FileData = File.ReadAllText(HL7FilePath)

    var b = new FhirXmlParser().Parse<PlanDefinition>(HL7FileData);


FHIR Validator Build ??
Arguments: C:\HL7Tools\validator\REC78_1.xml -version 3.0
  .. connect to tx server @ http://tx.fhir.org
  .. definitions from hl7.fhir.core#3.0.1
    (v3.0.1-null)
  .. validate [C:\HL7Tools\validator\Sample.xml]
Terminology server: Check for supported code systems for http://www.nlm.nih.gov/research/umls/rxnorm
Success.

1 个答案:

答案 0 :(得分:0)

是的,有。您需要添加Hl7.Fhir.Specification.STU3程序包,然后可以使用如下验证方法:

using Hl7.Fhir.Specification.Source;
using Hl7.Fhir.Validation;

... your code, reading the PlanDefinition from file and parsing it ...

// setup the resolver to use specification.zip, and a folder with custom profiles
var source = new CachedResolver(new MultiResolver(
                                   new DirectorySource(@"<path_to_profile_folder>"),
                                   ZipSource.CreateValidationSource()));

// prepare the settings for the validator
var ctx = new ValidationSettings()
          {
              ResourceResolver = source,
              GenerateSnapshot = true,
              Trace = false,
              EnableXsdValidation = true,
              ResolveExteralReferences = false
          }

var validator = new Validator(ctx);

// validate the resource; optionally enter a custom profile url as 2nd parameter
var result = validator.Validate(b);

结果将是包含验证详细信息的OperationOutcome资源。