【问题标题】:How do I validate a CCD HL7 document?如何验证 CCD HL7 文档?
【发布时间】:2012-10-17 14:15:02
【问题描述】:

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

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

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

还有ccd.xsd这样的东西吗?即使它只是部分指导我创建一个有效的 CCD。

【问题讨论】:

    标签: xml validation hl7 ccd


    【解决方案1】:

    快速回答您的问题:

    答:有一个 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/

    【讨论】:

    • 欢迎来到 Stack Overflow。通常,链接答案是不受欢迎的。然而,这个问题已经吸引了一些工具推荐的答案(网站上也普遍不接受)。不过,我认为您没有理由被否决。我不熟悉有问题的技术验证任何答案,所以我会留在那里。
    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 嗨@PatrickM,感谢您提供的信息。我是该网站的新手,我仍在学习如何正确回答所有问题。我将更新此答案以使其更完整。
    • @JasonMArcher,我会努力解决这个问题。感谢您的反馈!
    • @JasonMArcher 我知道这是一个老问题,但我认为它可以使用更完整的答案。我希望这有助于回答一切!如果我在任何时候感到困惑,请告诉我!
    【解决方案2】:

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

    您正在执行的代码将类似于下面的 sn-p,其中 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;
    

    【讨论】:

      【解决方案3】:

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

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

      此外,the cdatools infocenter 提供有关不同文件及其要求的精彩信息。

      【讨论】:

        【解决方案4】:

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

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

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

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

        希望对你有帮助……

        【讨论】:

        • 这些链接都坏了。
        猜你喜欢
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 2019-10-25
        相关资源
        最近更新 更多