2012-10-17 41 views
2

当我有一个例子CCD,应该使用:如何验证CCD HL7文档?

  1. XSD架构,并得出结论我有一个有效的CCD。

  2. 我使用一些其他(非基于schema)方法。 (除了有效的XML文档之外的UML模型规则。)

是否还有这样的事情ccd.xsd?即使它只是部分地指导我创建一个有效的CCD。

回答

3

更推荐使用选项A,该选项涉及使用具有特定CCD模式源的DocumentBuilder解析XML文档,然后检查验证错误。我建议查看SchematronValidator项目中的XMLValidation类; validXMLUsingXSD(...)方法执行您所描述的内容。有几个地方可以找到适用于有效CCD XML的XSD,但如果您不知道从哪里开始,可以在Microsoft HealthVault上找到CDA/CCR模式的大部分XSD。还有其他一些方法可以使用schematron规则来进一步验证您的CCD文档(请参阅NIST的有意义的使用验证器)。

您正在做的代码看起来像下面的代码片段,其中schemaLocation是您的XSD文件位置。 ErrorHandler将存储任何验证错误。

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
docFactory.setNamespaceAware(true); 
docFactory.setValidating(true); 
docFactory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); 
docFactory.setAttribute(JAXP_SCHEMA_SOURCE, schemaLocation); 
docFactory.setIgnoringElementContentWhitespace(true); 
DocumentBuilder builder = null; 
try { 
    builder = docFactory.newDocumentBuilder(); 
} catch (ParserConfigurationException pce) { 
    pce.printStackTrace(); 
    return null; 
} 

builder.setErrorHandler(handler); 
Document doc = null; 
try { 
    doc = builder.parse(xml); 
} catch (SAXException e) { 
    System.out.println("Message is not valid XML."); 
    handler.addError("Message is not valid XML.", null); 
    e.printStackTrace(); 
} catch (IOException e) { 
    System.out.println("Message is not valid XML. Possible empty message."); 
    handler.addError("Message is not valid XML. Possible empty message.", null); 
    e.printStackTrace(); 
} 
return doc; 
0

老问题,但我仍然认为我会回答,因为我一直在寻找一个解决这个问题最近和最终做的研究相当数量。

我尝试使用Everest API它有一个内置的API来验证各种HL7文件。如果您生成了有效的文档,这是在代码中测试的好方法。

NIST提供一个Web服务(和样本客户呢!),可以使用(再一次你的代码中)来验证像CCD文件/ CCDA等

如果你只是需要手动验证生成的文档,然后NIST有another之一。

我希望它可以帮助...

2

我意识到这是一个很老的问题,但我想补充我的两分钱为好。

cdatools.org有一些很棒的工具来验证CDA文档。由于您正在创建一个CCD,验证过程将是相同的。

此外,the cdatools infocenter有关于不同文件及其要求的奇妙信息。

3

要快速回答您的问题:

答:有一个XSD架构,而只是保证,如果该文件是一个有效的CDA文件(这意味着它仅验证CDA RIM,而不是CCD实现指南)

B:基于非模式的方法是使用schematron和ccd。sch确实附带了HL7提供的标准。这是将其验证为有效的CCD文档的最佳方法。

C:没有我知道的ccd.xsd这样的东西。


背景

下面是关于如何获得来自HL7的CCD规格的位背景和指令。获取标准版还将为您提供用于文件验证的CDA.xsd和CCD.sch。

CCD是从CDA RIM派生的特定实现。 CCD和CDA都是由HL7维护的标准。 CCD目前是HL7的“第1部分”类型标准。

完整的标准可以从HL7网站下载。完整的标准是完全免费下载的标准 - 虽然你可能需要注册到网站(也是免费的)。 http://www.hl7.org/implement/standards/product_brief.cfm?product_id=6

因为我不知道你有什么其他资源可用,所以我将只使用可以从HL7网站获得的支持文档。

验证CCD文档有两层。首先,您必须验证以确保文档是有效的CDA文件,然后您必须进行验证,以确保其符合“CCD实施指南”中概述的实施限制。

为了确保它是一个有效的CDA文件,CDA.xsd模式附带了完整的CCD规格下载。

该标准还附带一个schematron文件来验证它是一个CCD文件。

如果schematron验证程序和实施指南之间存在不一致的情况,请始终使用“实施指南”。


缩略语

CCD - 护理文件

CDA的连续性 - 临床文档架构

RIM - 参考信息模型

作为补充环节,一个很方便用于CCD文件验证的在线工具可以在这里找到:https://www.lantanagroup.com/validator/

+2

欢迎来到Stack Overflow。一般来说,链接答案是皱眉。但是,这个问题已经吸引了一些工具推荐的答案(这些答案在网站上一般也不被接受)。我没有理由认为你应该被低估。我对这个技术并不熟悉,请验证任何答案,所以我会留下它。 –

+0

尽管这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – JasonMArcher

+0

Hi @PatrickM, 谢谢您的信息。我是这个网站的新手,我仍然在学习如何正确回答所有问题。我会更新此答案以使其更完整。 – Eric