zoukankan      html  css  js  c++  java
  • HL7数据类型分析(1)

    最近一直在研读HL7 V3 Data Types Release 2 (2009版),与 Release 1(2004版)还是有些不同。不过最主要的感觉还是有点怪异,可能是没有完全理解其思路,尤其是在数据类建立模型上。主要包括:

    (1)COMP类

    按道理所有数据类型的基类是ANY,但惟独COMP也是一个独立抽象类,不是从ANY继承,且只有一个子类CEQ,二者之间只是compare方法被重载而已。我个人认为COMP类不应存在,它应该是一个方法类,而不是数据类,在ANY完全可以定义一个抽象方法compare(x,y),各个子类进行重载,不需要打破模型中的统一继承思路。并且在ANY类中已经有一个函数equal(x),没有必要再重复弄一个吧?

    (2)SET、COLL类

    在Release 1中,没有COLL类,LIST类直接从ANY类继承,Release 2中加入了COLL类,感觉应该是所有集合类的基类,其说明如下:

    A collection of values which can be enumerated using an iterator.

    一个可以被迭代程序列举的值的集合。

    其子类

    • BAG 无序且值可以重复的集合
    • LIST 有序且值可以重复的集合

    即COLL类是一个允许成员值重复的集合,但其说明中没有明确提到是允许重复值的。

    Release 2中SET类仍然直接从ANY继承,其说明如下:

    A value that contains distinct values in no particular order.

    一个容纳无序的且相互唯一的多个值的集合。

    即SET类是成员值不允许重复的集合,其子类

    • DSET,是与COLL类多重继承的类,是一个无序且相互唯一的值集合,从COLL继承的目的是继承Count 方法。
    • QSET,是一个无序的且相互唯一的多个数值的集合

    即COLL是允许有重复值的,SET是不允许有重复值且无序的。

    其实集合的重要区别不外2个:是否允许重复,是否有序。由此可以得到4种组合,也就是4个类就行了。

  • 相关阅读:
    ECS内网穿透
    设置服务器ssh会话时间
    VScode插件
    Linux拷贝U盘文件(命令行)
    打开IDM下载视频时弹出防火墙阻止下载,解决方案
    如何将jmeter.bat命令文件固定到任务栏
    jmeter安装教程
    安装JDK8.0(JDK1.8) & 环境变量配置 & idea中配置java路径
    教你不用任何第三方软件实现任务栏居中
    [Unity优化]gc03:代码优化
  • 原文地址:https://www.cnblogs.com/ChinaEHR/p/2491571.html
Copyright © 2011-2022 走看看