找回密码
 欢迎注册
搜索
热搜: 活动 交友 discuz
查看: 12173|回复: 16

如何从技术角度去理解HL7续一

[复制链接]
发表于 2005-8-12 08:03:42 | 显示全部楼层 |阅读模式
HL7V3是采用的模型驱动的开发方式,而模型驱动的目标是模型直接可运行或直接生成可运行系统,虽然这不是HL7的目标,HL7关注的是系统接口而不是系统,但如果我们从技术上理解并扩展它,那也许模型驱动的目标就可以是我们的目标。
<br>另外还在考虑它的姐妹篇系列:
<br>《如何从业务角度去理解HL7 》:讨论HL7的业务领域。
<br>《如何从管理角度去理解HL7 》:讨论HL7的开发管理,基于HDF。
<br>《如何从市场角度去理解HL7 》:讨论HL7的市场定位,包括HL7与各地区本地化标准的关系,HL7与其他卫生信息标准的关系。
<br>
<br>呵呵,贪多嚼不烂,大是大了点,但我们也不能总停留在普及阶段吧。
<br>目标引导行动,思想决定实践。
发表于 2005-8-12 09:58:09 | 显示全部楼层

如何从技术角度去理解HL7续一

<!--quote-dyy+2005-08-12 00:03--><div class='quotetop'>引用dyy &#064; 2005-08-12 00:03)</div><div class='quotemain'><!--quote1-->目标引导行动,思想决定实践。<!--quote2--></div><!--quote3-->
<br>
<br>呵呵,说的好!
<br>
<br>最好再调查一下,国外有没有这种“目标”和“实践”,他们做了些什么?,做得怎么样了?
 楼主| 发表于 2005-8-12 14:06:40 | 显示全部楼层

如何从技术角度去理解HL7续一

国外是有这种“目标”和“实践”的,HL7与OMG的战略合作就是例证。
<br>MDA本来就是OMG所大力推进的。
<br>当然HL7关注的是系统接口而不是系统,但从HL7的文档中可以看出国外已经有厂商在基于HL7做系统架构。
<br>所以HL7本身是不会有这个目标,但厂商是会有这个目标的,并且也会有实践,虽然我没有例证。
<br>
<br>MOF、UML、XMI、CWM都是MDA的基础,当然UML对应我所说的领域专用语言(DSL)来说就相当于是元语言了,这个是肯定少不了的。
<br>我目前只是考虑建模,工具要到实现的时候才会用到,也许会用EMF。
<br>
<br>“愚公移山” 太夸张了吧,同道这么多,不会落到我子子孙孙无穷尽的地步。
<br>而且这活其实没那么复杂,数一数到底有多少种计算机语言,有很多就是一两个人就开始搞起来的。
<br>当然DSL有它的特殊性,但还是可以做的。
<br>
发表于 2005-8-12 15:01:37 | 显示全部楼层

如何从技术角度去理解HL7续一

光有DSL还不够的,还要有词汇库、规则库、实例库、知识库等大量可扩展的数据库作为后盾才行。所以,工作量可想而知,并非一两个人,一两年能够实现的。
 楼主| 发表于 2005-8-12 15:48:50 | 显示全部楼层

如何从技术角度去理解HL7续一

这个就是理解的问题了,模型驱动也不是什么问题都要解决的。
<br>如同汇编语言替代机器语言,高级语言替代汇编语言一样,模型驱动不过是用模型这种更高级的语言来替代现在的编程语言。
<br>MDA不是银弹,它只是生产力的提高。
 楼主| 发表于 2005-8-17 10:13:47 | 显示全部楼层

如何从技术角度去理解HL7续一

一个很好的MDA技术介绍。<a href="http://www.csdn.net/news/newstopic/18/18331.shtml" target="_blank">http://www.csdn.net/news/newstopic/18/18331.shtml</a>
 楼主| 发表于 2005-8-30 15:09:42 | 显示全部楼层

如何从技术角度去理解HL7续一

HL7与OMG的结合将在今年年底发布一个初始成果,让我们拭目以待。
<br>As set out in the project charter, the two organizations will jointly identify and prioritize candidate services for standardization. HL7 will elaborate the business functional needs, allocate functions to services, and provide information modeling and content. OMG will then develop these business domain requirements into specifications for software architecture and components using its foundation technologies – the Unified Modeling Language&#8482; (UML&reg;) and Model Driven Architecture&reg; (MDA&reg;). Strengthened by the support of numerous companies holding membership in both organizations, the cooperative effort is on track to produce its initial deliverables by the end of 2005.
<br>
<br>
<br><a href="http://www.omg.org/news/releases/pr2005/03-08-05.htm" target="_blank">http://www.omg.org/news/releases/pr2005/03-08-05.htm</a>
发表于 2005-9-3 11:09:17 | 显示全部楼层

如何从技术角度去理解HL7续一

楼主好。在北京听了你的报告,讲的有点高深,没咋听懂。以后有机会向你请教!
 楼主| 发表于 2006-2-9 23:06:45 | 显示全部楼层

如何从技术角度去理解HL7续一

Model Driven Development in Healthcare using Eclipse
 楼主| 发表于 2006-4-1 18:12:57 | 显示全部楼层

如何从技术角度去理解HL7续一

<p>以前转贴过一次,再转贴一次。其实面向什么都不是最重要的(面向过程、面向对象、面向方面、面向服务。。。。),模型就是一个结构,如果不知道从哪里开始,那就随便从那里开始吧;如果不知道该面向什么,那就随便面向什么吧。世界其实并没有中心,所有的坐标都是一个参照,所以无论从那里出发都是可行的。当然这并不是说没有最优。</p><p>原文链接 <a href="http://www.blogjava.net/canonical/archi...1/14/19736.html" target="_blank"><a href="http://www.blogjava.net/canonical/archi...1/14/19736.html" target="_blank">www.blogjava.net/canonical/archi...1/14/19736.html</a></a><br /><br />最近几年关于模型的提法突然多了起来,但这个概念到底意味着什么呢。从哲学上说,我们的思想是外部世界结构在主观意识中的反映,当我们把主观意识再投射回外部世界时,就得到关于外部世界的模型。所以,在最广泛的意义上,模型不过是我们思维中的一组关联。问题不在于我们是否需要模型或者什么东西是模型而什么东西不是模型,我们所意识到的一切都是模型,无论它与真实情况的差距有多大。我们所能区分的只是什么是一个&quot;好&quot;的模型,什么是一个&quot;坏&quot;的模型。在面向对象建模中,经常听到人说XX是对象,YY不是对象。这是一种错误的提法。所有的东西都是对象,都是我们心智中可以操纵的符号。一张纸是对象,当它被撕成了碎片,每个碎片也是对象。因为受力方式等随机因素的干扰,信纸碎裂的方式也是随机的,最终造成的碎片也是随机的。我们可以说信纸L这个对象由碎片A,B,C这三个子对象构成,也可以说L由碎片D,E,F构成。定义对象的方式实在是无穷无尽。 <br /><br />我们通过比较来认知外部世界。当我们面对一个不熟悉的概念的时候,我们总是在把它分解,重构为我们已经熟悉的概念以后才能真正的理解它。也许,我们只能理解那些我们已经知道的东西!我们已在这个星球上生存了亿万年,以至于我们总可以将那些&quot;新&quot;的结构与我们的&quot;先验知识&quot;做比较。只有当面对量子论和相对论的时候,一个人才能真正意识到自己的知识是多么的贫乏,一种先天的贫乏。Cantor将比较的技术发挥到了极致,他通过比较区分了可数无穷大与不可数无穷大,结果他疯了。 <br />假设现实有一个结构S, 我们的模型具有结构M。当S(通过一定的简化和拓扑变换)能够与M匹配时,我们就说现实S被理解了。 更一般的, 我们从不同的角度或者在不同的层面上看待同一个事物,从而形成模型M1, M2, M3,... 我们可以通过一条逻辑途径M1--&gt;M2--&gt;M3--&gt;S来理解S. 最好的模型应该构成到现实结构S的最短路径。一个鲜活的例子就是数据库。在von Neumann体系架构下,计算机能够直接回答的问题是:存放在0x***地址的值是多少(M1)。而在现实中,我们经常需要回答的问题是: 值大于**的纪录有那些(M2)。这些问题是关于变量的值的,而不是变量的地址。数据库的价值正在于通过索引提供了M1-&gt;M2的映射。早期的层次数据库仅仅提供了一个中间模型H, H-&gt;M2的映射还需要程序员来完成,最终难免被淘汰的命运。一个模型就这样创造了一个产业。 <br />模型映射的最短路径意味着我们最好不要去创建那些&quot;聪明&quot;的新结构.在一个良好设计的系统中,我们不应该费力去&quot;发现&quot;什么或去认知什么。设计不等于创造,一个最好的设计应该是抄袭成功的范例,最好是连改动也没有,可惜现实的多变总要你多少作些改变。如果需要改变,最好是局部化的改变,在数学上我们称之为同态。如果在映射的时候,无法做到局域化,那往往意味着出现了一些本质的困难。例如html语言中的table元素。表格本质上是二维布局,而html 文本是一维的文本流,它们之间存在着深刻的差异。当某个表格单元的rowspan或者colspan属性需要修改时,对应于界面表现只是一个局部调整,而反映到html代码中却是全局的修正。xml决不是万能的。 <br /><br />某个事物被清楚的理解了,是因为我们对它已经有了一个完整的模型M,所以对已知的事物建模是相当容易的,因为我们可以从模型M出发,建立一个同态甚或是同构的模型即可。所有的困难都在于如何对那些我们所知甚少抑或是一无所知的东西建模。按照Laplace的哲学,如果我们不知道什么是最好的选择,那么所有的选择都是等价的。在用迭代法解方程的时候,通常的做法是抛一个随机的初始解进去,只要控制策略得当,最终会收敛到正确的解上。一切并不在于选择初始解的启发式策略有多么的&quot;聪明&quot;, 随机性才是创造性的根源,因为只有几率才能打破因果的枷锁。一个好的初始解一般只是缩短收敛的过程,但并不影响最终收敛的结局。 <br />一个模型首先提供的是一个术语体系或者说一个词汇表,一种语言。使得我们能够以一种一致的方式捕获那些转瞬即逝的思想。模型本身是否正确其实并不一定如想象中的那么重要。一旦初始的模型建立,我们的认知就有了一个不断发展和积累的基础,最终就可能得到超越我们最初期望的结果。交流和表达具有根本的意义,优劣与否只在其次。设计模式提出的时候引起轰动,到今天,当一切尘埃落定,它最大的贡献也许只是贡献了一批术语和模式名称,让大家可以在模式的框架下讨论问题。恰如陈省身的纤维丛理论。也许这个世界上最成功的建模案例是宗教。通过一次提问,谁干的,就把所有未知的问题一揽子解决了。伟大的简化!借助宗教的术语,我们创作了文学,纪录了思想,传承了知识,甚至建立了政治秩序。所以如果你不知道从哪里开始的话,那就随便吧。 <br /></p>
 楼主| 发表于 2006-6-10 04:59:37 | 显示全部楼层

如何从技术角度去理解HL7续一

<p>项目结束了,但思想和实践并没有结束。RIM是一个模型,但它也只是一个开始,它所包含的业务内容远比它的技术内容要成熟稳定的多。</p><p>Act作为对象,Participation作为对象的行为属性,Entity作为对象的行为属性的值,Role作为对象的行为属性的取值约束条件。<br />如同JDK等各种编程语言以及其类库,开发一套HDK(Health/hospital Development Kit ),如何?</p>
发表于 2006-10-25 09:42:23 | 显示全部楼层
楼主的论述精彩。不常夸人,但不得不夸。
作个HDK如何?很好的问题。接下来是:需要很多的投入吗?技术投入相对的不多,但让人采用你的开发环境的投入很大。好像ORACLE的HTB有这个打算?
有兴趣向楼主讨教,不知如何联系?
 楼主| 发表于 2007-10-11 11:27:49 | 显示全部楼层

抛开RIM,从V3源头去建立自己的数据模型

摘要:HL7V3是采用模型驱动开发,RIM是HL7V3模型的基础,DMIM和RMIM是建立在RIM基础上并用于直接生成接口消息定义的消息信息模型。由于HL7标准在医疗卫生信息领域的重要性,很多厂商试图基于HL7V3的模型作为自身系统架构设计的基础,开发中间件平台产品或独立的应用系统。但RIM的模式完全是针对系统接口设计,并不适合应用系统设计。因此,基于HL7V3的模型作为自身系统架构设计的基础,应抛开RIM和完全仿照RIM的DMIM、RMIM,而直接从更具体的HMD反推出未套用RIM之前的DIM,再按照适合自身系统的设计模式,建立系统自身的数据模型。
 楼主| 发表于 2007-10-11 11:32:16 | 显示全部楼层

关于医院信息系统的模型开发的初步探讨

摘要:在今年5月份的成都会议上,我们提出了建立《医疗卫生领域信息标准开发框架》的想法,重点在于将领域业务分析划分为“用户视角”、“业务视角”、“系统视角”这三个不同的视角,同时区分医院内部“事务管理”与“知识管理”这两种不同的业务需求。基于这个想法,我们建立了自己的模型开发和应用工具用于支持平台无关模型到平台相关模型和系统实现模型的转换,以方便业务分析人员更直接的考察自己所建立的模型;并从业务视角分别去建立领域事务管理模型和领域知识管理模型,并试图基于这两个模型从用户视角直接建立医院应用系统的模型,同时将HL7标准作为一个已存在的应用系统模型去研究对它的实现支持。
发表于 2007-11-22 11:03:05 | 显示全部楼层

RIM对DIM的指导或约束是如何体现的?

您好,dyy,

HDFV3需求分析一章(chapter 3)及附件中,以更新驾驶证为例,说明开发过程及与RIM保持一致,但我从"更新驾驶证"域模型中看不出RIM所起的作用,及如何起的作用,想跟您讨教,谢谢!
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

快速回复 返回顶部 返回列表