6

当我有一个示例 CCD 时,我应该使用:

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

    或者

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

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

4

4 回答 4

8

要快速回答您的问题:

A:有一个 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 的“Section 1”类型标准。

完整的标准可以从 HL7 网站下载。完整标准是免费下载的完整标准 - 尽管您可能必须注册到该站点(也是免费的)。 http://www.hl7.org/implement/standards/product_brief.cfm?product_id=6

因为我不知道您还有哪些其他资源可用,所以我将只使用可以从 HL7 网站获得的支持文件。

验证 CCD 文档有两层。首先,您必须验证以确保文档是有效的 CDA 文件,然后您必须验证以确保它遵循 CCD 实施指南中概述的实施约束。

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

该标准还附带一个 schematron 文件,以将其验证为 CCD 文档。

在 schematron 验证器和实施指南之间存在分歧的不太可能的情况下,请始终使用实施指南。


首字母缩略词

CCD - 护理文件的连续性

CDA - 临床文档架构

RIM – 参考信息模型

作为补充链接,可以在这里找到一个非常方便的 CCD 文档验证在线工具:https ://www.lantanagroup.com/validator/

于 2014-08-07T19:11:21.373 回答
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;
于 2012-11-27T20:39:00.727 回答
2

我意识到这是一个很老的问题,但我也想加两分钱。

cdatools.org有一些用于验证 CDA 文档的好工具。由于您正在创建 CCD,因此验证过程将是相同的。

此外,cdatools 信息中心有关于不同文档及其要求的精彩信息。

于 2014-08-05T20:33:33.577 回答
0

老问题,但我仍然认为我会回答它,因为我最近一直在寻找解决这个问题的方法并最终进行了大量的研究。

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

NIST提供了一个 Web 服务(以及一个示例客户端!),可用于(再次在您的代码中)验证 CCD/CCDA 等文档。

如果您只需要手动验证生成的文档,那么 NIST 有另一个

我希望它有帮助...

于 2014-01-17T09:13:29.850 回答