昨天启动了openXDS提供的registry和repository相关服务,对openXDS的认识也深入了一些。一直困扰我的问题是openXDS提供的11个工程到底有什么联系,各自的作用是什么。从今天开始,要对它们进行梳理和总结。
可以将这11个工程分为三类:
1. iheos工程。源自hieos项目(sourceforge.net/projects/iheos/),起到了很大作用。
2. openXDS开发的API,是整个项目的主体部分,包括9个工程。
3.openxds-web工程,是openXDS提供的web工程,也是最终呈现结果。它提供了一个配置页面和查询页面,配置页面首先装载Actors,然后启动所选的Actors。
下面根据这三个分类阐述各自的作用。
1. iheos工程
openXDS使用这个项目做了哪些工作呢?在\openxds-core\src\main\resources\axis2repository\services这个目录下可以看到iheos.aar,里面只有一个文件“services.xml”,这个文件是发布的服务列表。根据官网提供的项目部署步骤(https://www.projects.openhealthtools.org/sf/go/page1120)进行部署后,可以看到http://localhost:8020/axis2/services/和http://localhost:8020/axis2/services/两个服务列表。XDS.b的事务是以web
service服务的形式提供,理论上应该是下面的结果:
Document Submission (ITI-41): http://localhost:8020/axis2/services/xdsrepositoryb
Document Stored Query (ITI-18): http://localhost:8010/axis2/services/xdsregistryb
Document Retrieval (ITI-43): http://localhost:8020/axis2/services/xdsrepositoryb
但是,从运行出来的两个服务列表来看,内容是一模一样的,因为它们都使用了前面提到的service.xml文件。不过它们都包含了所有服务,所以整体上没有影响。
从上面的分析可以看出来,iheos的作用就是提供事务服务,下面是service.xml文件的一小部分:
<service name="xdsrepositoryb">
<description> XDS.b Repository Interface</description>
<parameter name="ServiceClass" locked="false">gov.nist.registry.ws.serviceclasses.RepositoryB</parameter>
<operation name="ProvideAndRegisterDocumentSetRequest">
<messageReceiver class="gov.nist.registry.common2.service.XDSRawXMLInOutMessageReceiver"/>
<actionMapping>urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</actionMapping>
<parameter name="enableMTOM">true</parameter>
</operation>
<operation name="RetrieveDocumentSetRequest">
<messageReceiver class="gov.nist.registry.common2.service.XDSRawXMLInOutMessageReceiver"/>
<actionMapping>urn:ihe:iti:2007:RetrieveDocumentSet</actionMapping>
<parameter name="enableMTOM">true</parameter>
</operation>
</service>
服务名叫xdsrepositoryb,提供了两个接口,也就是实现了ITI-41和ITI-43两个事务。接口分别是:ProvideAndRegisterDocumentSetRequest和RetrieveDocumentSetRequest,在实现的时候,客户端调用这两个接口即可。在parameter element的内容中,对应的实现类是gov.nist.registry.ws.serviceclasses.RepositoryB,这是Iheos工程中的类,从这里也可以看出,iheos的作用是提供服务。那么openXDS的API做了什么工作呢?
2.OpenXDS API
前面说这是openXDS的主体,这里的“主体”可能有点说不过去,因为人家hieos已经把大部分活都干了,所以说这里的主体需要理解为“主体架构”,它使用了hieos作为提供基础服务的模块。
openXDS API包含的9个工程的作用主要是两个,一个是提供IHE Actors(包括四个,详见上篇blog的角色类图),每一个角色都提供相应的服务,也就是IHE事务;另外一个作用是提供XCA、XUA等支持。(这种说法可能不准确,待弄清之后再行编辑)
2.1common-utils
2.2common-ws
openXDS工作的流程是,首先加载Actors配置文件,选择需要启动的Actors,创建相应的服务(HTTP
servers)。common-ws这个工程的作用就是生成IHE HTTP Server。它只包含四个类:IheConnectionListener、IheHttpFactory、IheHTTPServer和SimpleHttpServer。其中,IheHttpFactory是产生IheServer的工厂类,工厂类只生产SimpleHttpServer,而不是IheHTTPServer。
IheHTTPServer采用了SimpleHttpServer作为其具体实现,IheConnectionListener主要包括Server的参数信息,如port等等。下图是简化了的类图,主要标注四个类之间的关系。
2.3 openxds-aip
2.4 openxds-config
2.5 openxds-core
2.6 openxds-log
记录OpenXDS工程的日志信息。
2.7openxds-registry-adapter-omar
2.8openxds-registry-patient-lightweight
每个病人在一个Affinity Domain中需要有一个全局id,patient lightweight这个工程的作用是对Affinity Domain中的病人生命周期(lifecycle)进行管理,包括createPatient(Patient, RegistryPatientContext)、updatePatient(Patient,
RegistryPatientContext)、mergePatients(Patient, Patient, RegistryPatientContext)、unmergePatients(Patient, Patient, RegistryPatientContext)。下面是整个工程所有类的类图。
2.9openxds-repository
3.openxds-web工程
这是openxds提供的web工程(只支持IE),界面如下:
configuration是装载Actors,Actors.xml文件的路径是webapps\openxds-web\WEB-INF\classes\conf\actors,装载之后结果如下
勾选需要启动的Actors,点start即可。
总结:
随着对Openxds的研究时间增加,对它也算是逐渐认识了吧,下一步是把自己的文档在XDS流程中跑一遍,然后深入研究一下实现代码。现在遇到的问题是编码系统,我的CDA文档是UTF-8,但是在提交的过程中还是要乱码,不晓得咋回事。
分享到:
相关推荐
一个简单的基准测试工具,用于xds.b存储库。 用法 为您的平台安装node.js,然后运行。 npm install 该基准测试工具随附了一个模拟xds regository服务器。 它在http://localhost:8282/上运行,并且将在任何路径下...
开源项目-gojektech-consul-envoy-xds.zip,领事公使控制飞机
python库。 资源全名:xds-0.1.8-py3-none-any.whl
SEED-XDS560v2PLUS仿真器安装、使用指南(Rev.B)
加速度计,mma845x系列芯片数据手册,加速度计,mma845x系列芯片数据手册
数据结构的经典问题,修道士与野人过河 求解步骤 源码
openxds源代码,包括11个相关工程
XDS560V2是目前的XDS510和XDS560系列仿真器的下一代产品, 在旧产品的基础上增加了控制及采集跟踪/回溯(Trace)数据的功能。 XDS560v2 DTC 支持: z 控制IEEE1149.1 JTAG兼容TAP(Test Access Port) z 调试IEEE1149...
直接双击XDS100_v1_1_RTM.exe即可安装,直接“Next”到底。安装前先暂时不要将XDS100仿真器插入PC机的USB...安装完成后,将XDS100接入PC机,等待自动识别完硬件后,如图1.4,从设备管理器中可以查看到增加了一些硬件。
DSP仿真器 XDS510-USB2.0驱动文件,内含XDS510 CCS Driver和XDS510 USB Driver,以及使用说明
SEED-XDS510PLUS仿真器安装、使用指南_CCS4.x&Above(Rev.B).pdf
TI新一代DSP仿真器,支持ARM和DSP
SEED-XDS510Plus Emulator for CCS4.x
驱动
DSP仿真器驱动资源包,支持ccs5.3以上版本,内附两个不同的驱动:内附Driver_For_SEED-XDS560V2PLUS_Emulator驱动Driver_For_Wintech_XDS560V2PLUS_Emulator驱动SEED-XDS560v2 Driver 00.exeSEED-XDS560v2 Driver...
ICETEK-XDS510UPLUSV1.3.rar
SEED-XDS560Plus Emulator for CCS2.20.18驱动
XDS100 Ver 2.0驱动亲测可用 解决没有XDS100 Ver 2.0驱动的问题 根据系统32位或64位运行相应的安装程序
SEED-XDS560Plus Emulator for CCS3.x.exe