关于CDA R2的学习,很多人可能想直接看看这样那样的一些例子,下面是我所搜集的一些
1.来自Rene Spronk整理的压缩包,里面有丰富的内容 包含了很多国家不同项目的一些实例

下载链接一(原作者提供的)
下载链接二(方便一些无法下载一)
其中的说明文件如下

1
2
3
4
5
6
7
8
This archive contains a number of CDA R2 examples (using Normative Edition 2005 schema) from various countries. These examples are for educational and testing purposes only. CDA implementation guides have been included (if available), as well as a presentation stylesheet (if available).

Some projects have a finalized status; other material may still be undergoing development.

*WARNING*: The examples contained in this archive may not be what is actuall used in the listed country/project.
-If the examples used a pre-adopted version of CDA R2 (and this is true for quite a number of current projects), then they have been manually "transformed" to be compliant with the CDA R2 schema before being included in this archive. Whether or not an example has been transformed is indicated in a comment near the top of the example.

See http://www.ringholm.de/download/CDA_R2_examples.zip for the latest version of this archive. Should you wish to contribute to this archive in the form of new projects, additional examples, updates of implementation guides, please e-mail rene.spronk@ringholm.com.

2.美国的一些实例,来自NIST的网站 请读者选择性下载
参考网站
自己整理的
3.台湾的一些实例
来自电子病历标准管理网站

Friday, March 9, 2012 BY Keith Boone
Implementing IHE SVS Over the Trifolia Consolidated CDA Database

这个32行的程序是为了让JSP页面能够根据Trifolia Workbench database 构建一个 IHE SVS Value Set 的实现。它完全没有处理任何错误,如果变量匹配的话 就得到 valueset, valuesetmember and dictionarycodesystem表中的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="ISO-8859-1" ?>
<svs:RetrieveValueSetResponse xmlns:svs="urn:ihe:iti:svs:2008" xmlns:html="http://www.w3.org/1999/xhtml"><%@
taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %><%@
taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@
taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"
%><sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/templatedb"
user="user" password="password"
/><sql:query dataSource="${snapshot}" var="valueset"
>SELECT valueSetName, description, ID from valueset WHERE OID = ?;
<sql:param>${param.id}</sql:param>
</sql:query>
<svs:ValueSet version="" displayName="valueset.rowsByIndex[0][0]"id="{param.id}">
<svs:ConceptList xml:lang="en-US">
<sql:query dataSource="${snapshot}" var="members"
>SELECT m.code code, m.displayName displayname, m.codeSystemOID codeSystemOID, cs.codeSystemName codeSystemName
FROM valuesetmember m
LEFT JOIN dictionarycodesystem cs
ON m.codeSystemOID = cs.OID
WHERE m.valueSetOId = ?;
<sql:param>${param.id}</sql:param>
</sql:query
>
<c:forEach var="row" items="${members.rows}">
<svs:Concept code="row.code"displayName="{row.displayName}" codeSystem="row.codeSystemOID"codeSystemName="{row.codeSystemName}" />
</c:forEach>
</svs:ConceptList>
</svs:ValueSet>
</svs:RetrieveValueSetResponse>

如何使用
1 安装MySQL Community Edition and JDBC Drivers
2.安装Trifolia Workbench (zip)
3.安装JSTL Libraries and MySQL JDBC Drivers into your Web Application
4.将上面的源码复制到RetrieveValueSet.jsp
5.根据MySQL的安装 更改用户名和密码
6.在WEB-INF文件夹下的web.xml中添加如下行

1
2
3
4
5
6
7
8
9
10
<servlet>
<description>A Servlet conforming to the IHE SVS Profile</description>
<display-name>IHE SVS Servlet</display-name>
<servlet-name>RetrieveValueSet</servlet-name>
<jsp-file>/RetrieveValueSet.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>RetrieveValueSet</servlet-name>
<url-pattern>/RetrieveValueSet</url-pattern>
</servlet-mapping>

Tuesday, March 6, 2012 By Keith Boone
Liberating Consolidated CDA Templates from the Trifolia Workbench Data
CDA Consolidation project的目标之一是从模板的模型驱动数据中自动化的构建验证和开发工具。我曾期望与MDHT项目有更加紧密的合作,我希望最终能够实现。几个星期以前,HL7和Lantana发布了包含CDA Consolidation data的Trifolia Workbench。Trifolia Workbench是以Eclipse Public License开源形式发布的,其源码,目前也就是数据库表结构,和一个Microsoft Access前端,同时从CDAConsolidation guide中将数据载入MySQL数据库的工具。 就此工具而言,它只是开了个头,我想要的更多。我的开发人员需要CDA Consolidation Guide的schematron文件。我想要数据以一种我可以与源材料进行比较以完成与HITSP C32的差距分析。因此,过去的俩天里我想把数据整成一种我能用的XML的格式,从这种格式中得到schematron文件。第一部分的工作已经完成了,你可以在下面的标题中下载。第二部分仍在进行当中。
要从数据库中得到数据,整成XML的格式,我使用了如下三种工具:

  • Oxygen XML Editor (my current favorite among XML Editors)
  • Xalan XSLT Engine (the only XSL Transformer I want to use)
  • MySQL JDBC Drivers
  • An XSL Stylesheet which is really the subject of this post
    Oxygen中包含了Xalan,也包含了一个SQL Extensions library,这意味着我可以完成对Trifolia Workbench表中数据的查询。
    我写了一个两步转换。第一步先把表分开,第二步构建合适的XML结构。Trifolia template database共有5个主要的表:

  • Templates (template)

  • Constraints (template_constraint)
  • Code Systems (dictionarycodesystem)
  • Value Sets (valueset)
  • Value Set Members (valuesetmember)

前2个主要的表对于验证而言是最重要的。剩下的三个是为了维护值集。也有很多不同目的的包含了人可读术语的编码表:

  • Vocabulary Binding Types (vocbinding_type) [STATIC, DYNAMIC]
  • Contexts (dictionarycontext)
  • Conformance Types (conformance_type) [SHALL, SHALL NOT, SHOULD, SHOULD NOT, MAY]
  • Template Types (template_type) [document, section, entry, subentry, unspecified]

我没有处理implementation guide表(implementationguide或associationtemplateimplementationguide),或者是用户列表(tdb_users),但你要知道 有这些表的存在
第一步,将这些表的内容复制到, , , , and elements element元素内。数据复制是直接了当的。第一步就是对一些表格进行查询,用Left JOIN操作来分解code表中的术语。
我写了一个处理结果的模板,然后根据列名得到每行中的每个单元的属性或元素。如下;

<xsl:template name="SQLtoXML">
  <!-- resultXML is the rowset returned by the query -->
  <xsl:param name="resultXML" select="."/>
  <xsl:param name="result" select="exslt:node-set($resultXML)"/>
  <!-- map is a string containing either an a or an e for each cell
       indicating whether it should be output as an attribute or an
       element
  -->
  <xsl:param name="map"/>
  <xsl:param name="meta" select="$result/sql/metadata"/>

  <!-- name is the element name to use for each row, and defaults
       to the table name -->
  <xsl:param name="name" select="$meta/column-header[1]/@table-name"/>

  <!-- for each row in the result set -->
  <xsl:for-each select="$result/sql/row-set/row">
    <!-- generate an element for the row -->
    <xsl:element name="{$name}">
      <!-- for each column in the result set -->
      <xsl:for-each select="col">
        <xsl:variable name="pos" select="position()"/>
        <!-- if there is an a in the map position for the cell -->
        <xsl:if
          test="substring(map,pos, 1) = 'a' and string(.) != ''">
          <!-- generate an attribute for it -->
          <xsl:attribute name="{@column-label}">
            <xsl:value-of select="."/>
          </xsl:attribute>
        </xsl:if>
      </xsl:for-each>
      <!-- And again for each column in the result set -->
      <xsl:for-each select="col">
        <xsl:variable name="pos" select="position()"/>
        <!-- if there is an e in the map position for the cell -->
        <xsl:if
          test="substring(map,pos, 1) != 'a' and string(.) != ''">
          <!-- generate an element for it -->
          <xsl:element name="{@column-label}">
            <xsl:value-of select="."/>
          </xsl:element>
        </xsl:if>
      </xsl:for-each>
    </xsl:element>
  </xsl:for-each>
</xsl:template>

第一步中提取数据成XML的片段,但是还没有合适的容器。这些片段在第二步中重构。这一步中每个constraint元素根据parentConstraintID 和templateID 属性的值 置于合适的

下载
你可以从google code中下载得到Stylesheet文件,它能够将 Trifolia Workbench database中的数据提取成XML格式。这种格式的文档 后面我会写。
指导
1.安装Trifolia Database 需要MySQL Community Edition)
注意:如果已经安装了MySQL 请在运行源码前执行命令 set charset latin1
2.安装JDBC Driver for MySQL.将jar文件复制到合适的lib文件夹下。
3.修改stylesheet顶端的 元素 插入你的用户名和密码。
4.运行stylesheet。它会输出一个包含模板数据库内容的文件。
问题
有任何问题可以留言
备注
stylesheet修正了Trifolia Workbench数据的很多问题。workbench中数据的语境并没有限制namespace,因此你不能直接在stylesheets or Schematron中使用。
同时,请注意template_constraint中valueSetOID是直接实际的ID 而不是它的OID。

Wednesday, March 14, 2012 By Keith Boone

Defining a Summary Care Record for MeaningfulUse Stage2

作者在文中提到“他在昨天的post中 描述了Meaningful Use Stage 2 rules中所存在的对于Summary Care Record的描述的混乱之处。今天他将进一步来简化它们。下面总共有2个表格。第一个表格只是对结果的总结。第二个表格详细描述了第一个表格。
Name, Gender, Race, Ethnicity, Preferred Language, and Date of Birth 姓名、性别、民族、宗教、语言、出生日期是所有摘要文档都有的,通常出现在CDA文档的Header的patient元素下面。
Provider information也常常出现在header部分,也是所有摘要文档所通用的。
Smoking Status, Vital Signs, Medications, Allergies, Problems, Procedures, Lab Tests and Results, and Care Plan
吸烟状态、体征、用药、过敏、问题、操作、实验室检查和结果、诊疗计划也是所有摘要文档共有的,在 consolidated guide的中也能找到对应的section。也有一些特例 ,为了满足MU标准你必须在一些文档中添加一些它所不包含的section。
Patient Instructions 可以出现在Care plan诊疗计划章节,或者出现在摘要的任何手写的文本中,但在CDA Consolidation中,直接有一个Instruction section可以用,可能用在任意一个所产生的摘要文档中,也可能是care plan章节的一个子章节。
任意文档中The date and location of the visit or stay 都位于中,incentives rule中并没有对它们做出要求,但在standards rule中所有摘要文档却都要有。
The reason for visit 可以有多种方式:admission diagnosis, chief complaint, or reason for visit入院诊断、主诉、reason for visit,对于它们也有合适的section。同样,在incentives rule中也没有对它们做出要求。
Section 170.314(e)(2) stands out as the biggest odd-ball in the lot. It includes medications and immunizations administered, patient decision aids, scheduled tests and visits and referrals. The medications and immunizations administered should probably be recorded in the respective sections. Patient Decision aids should be included in patient instructions. The last three (future plans) should be included in the care plan. That would normalize it nicely into the other groups.

Growth charts also stand out. These are not summaries, rather, they are assessments over time that can be crafted from data in multiple summaries.

Care Team members don’t show up in Clinical Summaries provided to patients. Why wouldn’t they be present when available?

It isn’t clear why diagnoses wouldn’t be incorporated when available, or be viewable by the patient.

It isn’t clear why immunizations are reported in an ambulatory setting, but not in the inpatient setting (it’s fairly common for some kinds of immunizations to be given during inpatient stays).

Rationalizing these data elements across the summaries could easily get us to one or two definitions for summaries.

A spreadsheet containing this content is available.

译自Good Exchange Specifications: Microsoft vs Apple by Grahame Grieve

构建一个标准之初你必须要做的选择之一是如何进行领域分析。这是一个你如何使用story board故事版的问题。这里有苹果的做法,也有微软的做法。
苹果的做法
苹果的方法很简单:你以文档形式记录下你的story board,然后为你所接受的story board开发一种解决方案。接着产生一个十分有效的解决这些story board的精心制作的简单的workflow/product。你尽可能的覆盖他们的工作流的话,用户将希望有这样的结果,这也能很好的为他们服务。如果你没有覆盖他们的工作流程,那么,他们就不会是乖宝宝了。
微软的做法
这并不是很简单:一旦你以文档形式记录了你的story board,那么就总结概括一些你所看到的事物,解决通用的情况。你将会得到一个能够裁剪成你所想不到的所有用途下的灵活的、健壮的产品。用户将永远不会喜欢你们的产品,但是他们会不断的使用和购买他们,因为它们能帮用户完成他们所需要的。
顺便说一下,我是通过个人对Steve和Bill的了解学到的这两种方式的,因此你可以把它们当作信条。当然也不是-这只是我不断使用它们的产品而对他们工作所产生的感觉。同时,它只是一个stereotype。Anyone who’s tried to teach their grandma how to shoot rogue applications on their iPhone knows that Apple can produce some spectacularly bad UI as well。我也确信在微软有一些很好的易于使用的UI-但总的来说,这些stereotype在很长时间内还是正确的。

这两个都可以应用到标准上-你可以自己做业务分析,解决标准中的那些问题。它会很容易使用,适合特定的目的。它也能工作。也就是说当story board满足实施人员的问题时它就能工作。如果他们没有。。。那么,就会有另一种标准。如果你概化了需求,那么你的标准会比任一用户需要的更加复杂-但是至少它能用。
Thomas Beale
我认为一个好的解决方案是构建一个通用的框架,逐渐的增加一些更多的针对特殊use case的层,同时也保留通用层的可访问。特殊的usecase可以说生成的schema,业务流程特殊服务定义或者其他。但是二者都需要:一个通用的目的的计算和针对特殊行业actor使用的平台。

分类:

What the New Meaningful Use Standards for Electronic Health Records Mean
原文链接
http://www.dietsinreview.com/diet_column/07/new-standards-for-electronic-health-records/
就在周二,联邦政府发布了题为“Electronic Health records”的新标准。医院和医生在未来的10年内将会得到累计2700亿的资金来配备病人的电子病历。政府认为这些举措将会大大的提高医疗质量和可靠性。
比如,医生可以用电子系统来存储以往以文件形式存储的病人信息,比如出生日期、性别、体重、身高和血压。同样也包括医疗信息比如用药情况、吸烟习惯和医疗状况。医生也需要以电子的方式发送40%的处方。
根据Centers for Medicare and Medicaid,“Meaningful Use”有三个主要方面:
1、第一,以一种有用的方式使用电子病历,比如电子处方。
2、第二,在医生之间使用电子病历来共享病人信息来改善医疗。比如,一个专家可以和一般的医师共享信息来生成一个更加完整的医学资料。
3、最后,电子病历可以用来监控医疗质量。
尽管在美国医生在很多医药领域使用先进技术,医疗系统确仍停留在纸质时代。“只有百分之20的医生和百分之10的一员使用最基本的电子病历系统。”Kathleen Sebelius这样说,health and human services in The New York Times.
这些技术可以减少医疗事故,包括那些误杀病人的错误,Dr David Blumenthal这样说,the national coordinator for health information technology.希望电子病历能够降低成本,减少多余的过程。新规定还没有规定说医院必须以电子化的方式来共享病人的医疗信息,这被视作为一个最终目标。

Tuesday, February 1, 2011

A Perfect Implementation Guide

英文原文链接
在上周HL7/IHE/ONC Consolidation Project的电话会议上,其中两个人同意新增一个独立的工作组来讨论publication format的问题。这篇也是我在这个工作组中的第一份答卷。
我代表HL7, IHE, and HITSP参与了CDA Implementation Guides的工作,也看到了很多来自CMS 法国 epSOS 德国和日本的IG。我也正在写一本关于CDA的书,预计年底就完成了。我列出了一些perfect guide的要求:
1.为了裁决问题,必须有单一的“normative”publication format,也是正式的规范
2.必须要有一种使得实施人员能够快速定位所需信息的丰富的、可搜索的多媒体格式
3.包含所有内容,包含一个页码的内容表格的一种可打印的格式,能够让实施人员获取到这种可打印的格式
4.必须包括范例文件、一致性数据、schema、shcematron、UML model等的补充材料来进一步支持实现
5.补充材料必须是标准化的格式,才能使用现成的工具。比如XSD Schematron或者XMI文件
6.表格化数据必须是CSV或者XML的格式,这样易于导入到现成的产品当中。
7.使用XML格式表示表格数据时需要良好的文档,更好的标准格式,必须在现成工具中易于使用。MIF不算
8.Publication format必须能够完整下载而无需外部的web服务或者网络连接。
9.IG必须含有确保一致性的可测试的一致性标准。注意:可测试的并不意味所有的测试都是自动化的。
10.一致性标准必须用可计算机化的格式来表示,以数据/模型的形式,使得其他系统能够以创新的方式来使用
11.一致性标准必须分为2部分,schema验证和功能性验证
12.schema验证标准无需了解输入就能确定交换的文档是否有效。不符合schema的文档就不是一个符合IG的。
13.功能性验证标准确定一些特殊的需求或和文档创建人员和接收人员所要求的功能(IHE中称之为content creator和consumer actor)
14.一致性标准主要以交换时文档中信息出现的顺序来组织,为的是易于获取。
15.一致性规则在于解释要求的目的来帮助实施人员理解规则想要完成的东西。
16.一致性规则必须提供一致性结果的例子,应该提供不一致的例子来辅助实现
17.IG使用容易理解的术语和方法,或者当使用领域术语或者方法时,解释这些内容以使得不熟悉该领域的实现人员理解它所讲的内容
18.IG提供多种形式的必要信息:一致性内容的UML模型,英语表达的一致性声明、可能的话,通过多种学习风格易于获取的表格形式,以及一致性内容的实例
19.只有一种格式的表现形式是规范化的,其他的都是提供信息来确保表现形式间的冲突可以解决
20.使用自动化的方案来产生多种表现形式以确保IG中信息的一致性。

译2011: A Year in Review at HIMSS12 by Keith Boone

Keith Boone是我一直在关注 在follow的老头子,虽然好像还是蛮年轻 ,一直找不到很好的地方 很好的网站 大多数网站在外面实验室糟糕的代理模式下是压根发表不了新帖的。不幸的科学网就这样躺在中枪了。
周一 2月20日 2012
2011:HIMISS12 过去一年的回顾
通常HIMSS与我而言就跟新年一样。过去的一年我干了些什么,接下来的一年我要做些什么 它是一条清晰的分割线。HIMSS的互操作性showcase或者HL7内部的presentation抑或是在我们自己的展区展示我过去一年大部分的工作。
我过去一年参与的一些事情有:
1、CDA Consolidation Guide-这份HL7 Implementation Guide实施指南书占据了我在三个不同的组织中长达5年之久的工作,从将数十个文档的内容整合到一起,并使得其computable。你可以从这里得到HL7 Trifolia Workbench,其中包含了Consolidation Project的数据。
2.过去一年中在ONC S&I Framework项目下 为Transition of Care和一起那的HITSP C83和IHE PCC Technical Framework所作的工作也是围绕着CDA Consolidation guide展开的。
3.IHE PCC Reconciliation规范,虽然没有在这里展开讲,解决了如何记录问题、用药和过敏的reconciliation 核对问题。
4.IHE ITI XDS Document Workflow规范将在showcase中进一步讨论。旨在解决跨机构实现病人为中心的、accountable care的多个工作流程的自动化和追踪。
同时,下面讨论一些我参与了的新鲜事,也可能在展会中出现。
1.在周三和周四 最主要的就是Query Health Demonstrations 。周三早上我们将于CMS ONC一起讨论(只是我们希望这样)Meaningful Use第二阶段,不管怎么样我希望有些人可以来,如果你错过了的话,可以在周四早上的Interoperability Showcase中看到我们。对我而言Query Health是个相当大的转折,以前我都是围绕着CDA,现在则是HQMF。因为这个的原因 我推测我将会把投入到标准上的很大一部分时间放在quality measurement 和clinical decision support上。
2.我说过,HQMF将会越来越重要,在未来的几个月里我将花一定的时间在这上面,同时也有QRDA,过些时候我会详细写一写HQMF 但愿不要让大家厌倦啊。QRDA是第三个主题。
3.IHE Request for Clinical Knowledge规范填补了HITSP T81的空缺。它是对HITSP工作的一次修订。周四下午的Interoperability Showcase我的一个同事将会为大家展示我们在T81上与一个客户所作的工作,我会简要的介绍下这个新的IHE 规范在运用HL7 InfoButton标准时的影响。
4.工作流程,工作流程,工作流程。这很好的描述了余下的在IHE PCC中的工作,这一年开发了一个新的规范Referral, Remote Monitoring and Tumor Boards。我们在工作流程上的工作已经将IHE PCC domain延伸到意大利、荷兰和欧洲的一些其他国家,美国之外 大多数工作都是以此驱动的。这才有意义是因为这些国家卫生信息交换的历史比较长,也做好了进入下一步的准备。
5.CDA R3也会持续关注。我希望当它越来越接近第一投票版的时候我能参与的更多,差不多也就是今年了。
当然,周二我们就可以看到Meaningful Use的规则。尽管我不对任何法律法规负责,但是我在HL7 IHE ONC S&I Framework 中参与或多或少影响了Standards and Certification rule。静待看看它们是怎么样的。

关于科研-启动翻译计划

一个人的战斗 两个人的战斗
三年的时间眨眼间逝去
无outcome可言
可我也self-study了不少。
决定了的事就去做
每天进步一点点
书籍
Principles of Health Interoperability HL7 and SNOMED

Benson, Tim

1st Edition., 2010, XXIV, 263 p. 68 illus., 8 in color.

Hardcover, ISBN 978-1-84882-802-5

Interoperability between healthcare computer systems depends on us developing, implementing and deploying appropriate standards, such as HL7 and SNOMED CT, working together as a tightly specified language.

The documentation of HL7 and SNOMED runs to tens of thousands of pages and creates a steep learning curve and barrier to entry. Principles of Health Interoperability HL7 and SNOMED provides a clear introduction to these standards, explaining the core principles for the health IT professional, student, clinician and healthcare manager.

Content Level » Professional/practitioner

Keywords » HL7 CDA - Interoperability - SNOMED CT

Related subjects » Medicine - Public Health

http://www.springer.com/public+health/book/978-1-84882-802-5
作为学习的一部分,方便自己方便别人
2011.11.09日更新
正文的试译已进行至第三部分第12章。word显示总字数已达77867,虽然还很草 希望能快点搞完,进行校对