有不少医院的 HIS 系统用的是 Caché 数据库,比如北京协和医院、四川大学华西医院等。用过 Caché 开发的都知道,Caché 数据库的开发维护同我们常见的关系型数据库有很大差别,如 SQL SERVER 有非常方便的可视化的企业管理器,Caché 则没有,Caché 可以通过 Terminal 创建数据表,然后导出成类文件,也可以直接使用 Caché Studio 创建可持久化类,究其原因,是 Caché 以多维数组存储数据,而关系数据库以二维表存储数据。
Caché 不仅提供了数据库,还提供了比较完善的 Web 应用,大大加快了模块开发速度,足以满足医院的信息化需求。多年的医疗应用积累了大量的数据,如何对这些数据进行挖掘是个问题。医疗大数据提了很多年,业界也有不少的医疗数据挖掘产品,但数据挖掘的需求其实是非常复杂的,单靠某个产品的一些标准挖掘,恐怕很难满足需求。医院的医技科室的常用需求更多的是一些探索性统计分析,这个使用 Caché web 开发就能满足,但要想更充分的挖掘医疗数据,还需要使用一些更便捷的技术。
虽然 Caché 的开发语言 ObjectScript 很不友好,但好在基于 Caché 的应用程序可以和使用其它技术如 .NET、C++、Java、Python、SQL 的程序交互。
之前对一些孕妇数据进行过简单统计,先用 SQL 查出数据,复制到文本文件,然后又用 Matlab 统计绘图。
功能效果没问题,但总觉得很麻烦,要在 SQL 和 Matlab 之间切换,还要用文本文件中转,不能自动化,用过一次之后就不想再用第二次。
这次打算尝试下使用 Python 直接访问 Caché 数据库获取数据,然后就可以利用 Python 的强大功能了。
软件环境
操作系统:Windows 7 旗舰版 64位
数据库:ensemble-2010.2.8.1104-win_x64
Python:2.7,执行文件路径一定要加到环境变量 Path
C++ compiler:Visual Studio .NET 2008,最好是2008,如果是2012或其它,需要修改环境变量 VS90COMNTOOLS 。
1、安装 Ensemble 或者 Caché 。如果安装时出现以下错误,就果断重装系统吧,我当时花了三天时间在网络上搜索解决方案,最终放弃。
2、安装 Python 2.7,安装路径添加到环境变量。
3、安装 Visual Studio .NET 2008 ,添加 D:Program Files (x86)Microsoft Visual Studio 9.0VCvcvarsall.bat 添加到环境变量。
4、在 C:InterSystemsEnsembledevpython 目录,按 shift + 右键,「在此处打开命令窗口」,输入:python setup.py install,提示输入路径时再输入:C:InterSystemsEnsemble,回车,安装完成。查看 Python 目录如下。
5、测试。cmd 进入 C:InterSystemsEnsembledevpythonsamples 目录,执行 python test.py 。
参考资料:
1、http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls
2、http://docs.intersystems.com/ens20152/csp/docbook/DocBook.UI.Page.cls?KEY=GBPY