清除过滤器
文章
Claire Zheng · 八月 25
2025年7月25日,我们邀请了InterSystems销售工程师 @Kate.Lau 分享了关于“InterSystems FHIR to OMOP数据管道”的内容。
如果说FHIR是数据资产化的“起点”,通过实时交换和标准化接口,将分散的医疗数据转化为可流通的资产;那么OMOP就是科研价值的“终点”,通过标准化模型和工具链,挖掘数据资产中的知识,支撑临床决策和药物研发。从FHIR到OMOP,灵活的转换能够有效推动数据资产的应用落地。
InterSystems FHIR to OMOP数据管道提供了解决方案。通过标准互操作(基于FHIR R4标准构建数据接口)、自动化映射(内置OMOP CDM预构建映射规则,大大缩短传统ETL开发周期)、 自动化数据质量分析和云原生架构(依托AWS HealthLake实现弹性扩展),可以帮助用户快速实现数据资产的OMOP化,为用户在数字时代占据先机!
关于该主题详情,欢迎查看这篇帖子。
直播回放现已准备就绪,欢迎查看!(如您未注册过,需要注册后观看)
文章
王喆 👀 · 十一月 17, 2022
经过一段时间的学习和使用本文总结了一些使用VsCode开发的使用方法,本文偏向于应用但会对少量的我知晓的原理进行一部分解释。
参考教程链接:https://cn.community.intersystems.com/node/488611
VSCode下载:https://code.visualstudio.com/
使用VSCode开发的优劣:
1 优势:
跨平台(Windows|MAC|Linux)开发调试远程服务端代码,而且可以快速导出COS代码(M语言也可以)。
SQL辅助查询数据
快捷的代码调试方式,一种是直接在VSCode中调试,另一种是快速复制类名和方法名在Terminal中调试。
代码智能联想补全,类似其它语言,输入开头的前几个字符可以联想后面的。
快速跳转到方法定义(ctrl+鼠标左键 | F12)
主题图标多样化,可以使用默认的黑色,当然也可以使用和studio一样的样式,链接:https://cn.community.intersystems.com/node/516996
2 劣势:
无法导入导出XML文件
缺少一些Studio的常用功能:
SOAP向导
Java网关
DT转换拖拽编写
BP流程拖拽编写
安装步骤
1官网安装Visual Studio Code编辑器
https://code.visualstudio.com/Download
安装直接下一步 - 下一步
2 汉化
如果安装为英文要切换为中文则可以通过Command Palette 中运行Configure Display Language,install another language, 选择中文,再根据提示安装相应的语言插件。
3 扩展安装
打开软件,侧边栏点击扩展按钮->搜索 "InterSystems" -> 安装扩展,如图所示:
前三个是IRIS官方推荐按安装的插件,其中InterSystems ObjectScript Extension Pack (集成好的InterSystems插件包),在此还推荐安装SQL Tools InterSystems IRIS(连接数据库插件,使用效果类似于SQLdbx)
4 配置
VSCode支持图形化的配置,但实测并不好用,而且容易保存失败,在此推荐使用settings.json
打开:设置 -> 扩展 -> InterSystems Server Manager -> settings.json
{
"intersystems.servers": {
"loc": {
"webServer": {
"scheme": "http",
"host": "127.0.0.1",
"port": 52773
},
"askForPassword": false,
"username": "Superuser",
"password":"SYS",
"description":"228"
},
},
"terminal.integrated.detectLocale": "on",
"intersystems.language-server.diagnostics.routines": true,
"editor.renderControlCharacters": false,
"editor.unicodeHighlight.ambiguousCharacters": false,
"git.autorefresh": false,
"git.autoRepositoryDetection": false,
"git.confirmEmptyCommits": false,
"git.confirmForcePush": false,
"git.confirmNoVerifyCommit": false,
"git.confirmSync": false,
"git.countBadge": "off",
"diffEditor.wordWrap": "on",
"editor.wordWrap": "on",
"workbench.colorTheme": "InterSystems Default Dark",
"workbench.editor.enablePreview": false,
"vsicons.dontShowNewVersionMessage": true,
"git.enableSmartCommit": true,
"explorer.confirmDelete": false,
"editor.fontSize": 13,
"objectscript.conn": {
"host": "127.0.0.1", // 连接数据库IP
"port": 57772, // 连接数据库端口
"username": "Superuser", // 用户名
"password": "SYS", // 密码
"ns": "BKlinik", // 命名空间
"active": true, // 是否开启
"https": true,
"server": "bklinik" // intersystems.servers中设置的数据库服务器名
},
"sqltools.connections": [
{
"namespace": "BKlinik",
"connectionMethod": "Server and Port",
"showSystem": false,
"previewLimit": 50,
"server": "localhost",
"port": 52773,
"askForPassword": false,
"driver": "InterSystems IRIS",
"name": "BKlinik",
"username": "Superuser",
"password": "SYS"
}
],
"intersystemsServerManager.credentialsProvider.deletePasswordOnSignout": "never",
}
这是我目前使用的:
intersystems.servers :指的是IRIS的服务器的设置,内部的服务器命名不可大写,相比较官方出具的设置,我增加了【"askForPassword": false, "password":"123456",】此处的增加是方便后面打开代码的时候不需要再输入密码。
5 打开代码
打开代码有两种方式:一种是直连代码打开,另一种是客户端方式连接,第一种相当于studio直接连着代码进行编辑,第二种是把代码下载到本地磁盘的对应目录进行编辑。第一种方式好处是完全无感的查看编辑代码,但是如果不小心删掉之后无法恢复。第二种方式删掉之后可以恢复,而且也可以用GIT等代码版本控制,但是如果多人同时编辑代码,可能会存在冲突覆盖的情况。
直连代码
Instersystems tools – All Servers – 【服务器名】– NameSpace – 命名空间
然后你就可以愉快的编辑代码了
客户端方式打开
首先,你得建立一个文件夹,如图:本文是在D://workspace建立的一个aaa文件
点击打开文件夹 – 选择对应文件
此时会出现一个IRIS的图标,ObjectScript,如图所示:
点击ObjectScript – Choose Server and Namespace – 选择对应的服务器
再选择你需要的命名空间 比如我这边选择的是【HSLIB】
选择你需要编辑的代码 - 右键 - 选择Export
输出的框里会显示导出详情,如下图所示:
等待导出完毕,回到代码编辑,你的代码会出现在src目录下,如图所示:
如果你了解过ZPM的话,你现在还可以在这边添加一个module.xml,方便你把这个代码导入到其它机器上,ZPM相关的知识可以去GitHub上看看,关键就两个命令 [zpm] [load -v 【路径】] 和一个文件的编写,特别好用的是导入发布订阅和查找表,导代码的话得保证你的代码一行都没有问题,如果你的代码在使用的时候跨命名空间做了一些操作的话ZPM也会报错。
如何配置GIT的话,可以通过命令行的方式在本地文件上配置,也可以在VSCode上处理,和其它代码的处理方式差不多。
如果你安装了【SQL Tools InterSystems IRIS】那么上述配置中的sqltools.connections就是你需要的连接配置,你可以尝试改成你自己的库,然后进行一些简单的SQL操作。当然个人还是推荐使用DBeaver,这个更好用。
总结
好了,以上就是如何进行VSCode开发的我的一些小分享,如果有纠正请联系!!!
非常棒的文章! 补充InterSystems使用VSCode开发的官方文档 Welcome to the VS Code InterSystems ObjectScript documentation - InterSystems ObjectScript for VS Code (intersystems-community.github.io) 可以通过下面网址直接打开SOAP 向导页:
{serverurl}/isc/studio/templates/%25ZEN.Template.AddInWizard.SOAPWizard.cls?Namespace={namespace}
比如:http://localhost:52779/isc/studio/templates/%25ZEN.Template.AddInWizard.SOAPWizard.cls?Namespace=MyTest
也可以在VSCode里添加用户自定义的快捷键:
"objectscript.conn": {
"links": {
"Portal Explorer": "${serverUrl}/csp/sys/exp/%25CSP.UI.Portal.ClassList.zen?$NAMESPACE=${ns}",
"SOAP Wizard": "${serverUrl}/isc/studio/templates/%25ZEN.Template.AddInWizard.SOAPWizard.cls?$NAMESPACE=${ns}"
},
}
参考文档:https://intersystems-community.github.io/vscode-objectscript/configuration/#server-actions-menu
另:BPL,DTL一般直接在浏览器中进行编辑,完全不需要VSCode。 感谢 感谢 学到了
问题
ruihua ruihua · 二月 21, 2022
关于产品原型的设计软件有哪些推荐?如何快速和高效地提升设计能力? InterSystems 没有提供产品原型工具,请百度。 vs code 算吗?
公告
Michael Lei · 八月 30, 2023
亲身体验 SQL 搜索,它是 InterSystems IRIS® 数据平台中的一个工具,可让您快速搜索存储在 SQL 表中的大量非结构化文本数据(含练习,15m) 。
问题
洪玉 刘 · 二月 8, 2023
运行池的机制和组件运行池的建议配置大小 请参考我们的社区文章:运行池大小配置的解读 | InterSystems Developer Community | FTP|REST API|SOAP|DevOps
公告
Claire Zheng · 五月 19, 2022
在集成平台建设如火如荼的今天,如何能最大程度发挥集成平台价值,让集成平台不再止步于业务系统接口的打通,而是真正作为医院的IT基础架构,释放出更大价值?5月27日,InterSystems技术总监乔鹏 ( @Qiao.Peng )和InterSystems销售工程师王菁伟( @Jingwei.Wang )将针对集成平台建成后的应用价值,围绕“业务流程再造”角度,探讨以低代码方式梳理并再造业务闭环流程、从而赋能业务创新并促进医院精细化管理和高质量发展。点击链接或扫描报名。
文章
Claire Zheng · 四月 21, 2021
在医院信息化建设中,如何打通医院的各个系统,给患者提供连续、无缝的良好体验,集成平台发挥着重要作用。而集成平台方案如何适应现在的多云时代、需要具备什么样的特性、如何与多云环境更好地结合以便为医院的信息化建设带来更多的便利?面对这一系列问题,InterSystems中国业务拓展经理李岩为您解读InterSystems集成平台方案的特点和优势,以及构建在VMware云方案上的最佳实践,让您了解云环境下集成平台方案的新特性和优势。
文章
Qiao Peng · 二月 18, 2022
在InterSystems IRIS和InterSystems Caché 里,是否您遇到过执行一个SQL Insert/Update语句,明明给的是正确的日期值,但被告知“值‘2022-01-01’ 校验失败”的类似情况,并感到困惑?
如果有,那么您需要了解一下InterSystems IRIS和InterSystems Caché保存和显示数据的模式。
一 数据模式
InterSystems IRIS和InterSystems Caché里,数据有3种模式,称之为SELECT MODE:逻辑模式:这是数据被保存到InterSystems IRIS和InterSystems Cache'时的格式。例如,%Date类型的数据,在数据库里被保存为一个整数,即从1840年12月31号到这个日期的天数,而不是YYYY-MM-DD的格式。
ODBC模式:这是ODBC对数据定义的格式。在这个模式下,%Date类型的数据就会显示为YYYY-MM-DD的格式。
显示模式:这是数据在InterSystems IRIS和InterSystems Caché里默认的显示格式。例如在美国语言环境下,%Date的默认显示格式是DD/MM/YYYY格式。
InterSystems IRIS和InterSystems Caché只会使用逻辑模式保存数据,但可以以任何模式显示数据。
二 数据类型与数据模式
大多数数据类型在3种数据模式下的格式是一样的,例如%String、%Integer等。但有些情况下,数据在不同数据模式下的格式是不一样的:
时间、日期类型的数据
InterSystems提供多种时间、日期数据类型,包括%Date、%Time、%PosixTime、%TimeStamp 和%MV.Date。除了%TimeStamp,这些时间日期数据类型的3种数据模式下的格式都是不同的。
列表类型的数据
作为一个多模型数据库,可以指定数据为列表类型(%ListOfDataTypes)。列表类型数据的在不同数据模式下的格式也是不同的。例如一个定义为list of %String的属性/字段,中文数据以显示模式和ODBC模式看,数据显示是没问题的,但逻辑模式下看似乱码(其实并非乱码)。
指定了VALUELIST 和 DISPLAYLIST的数据
例如在建立患者模型时,我们指定其性别数据类型为%String,但通过VALUELIST限定它的值只可以是0、1、2、9,通过DISPLAYLIST设置这4个值的显示值为“未知的性别"、 "男性"、"女性"、"未说明的性别"。这样,数据被保存到数据库时,保存的是0、1、2、9,而显示值和ODBC值都是中文说明。
空字符串和空字符流数据
在逻辑模式下,空字符串和 空BLOB 由不可显示的字符 $CHAR(0) 表示。在显示模式下,它们由一个空字符串 ("") 表示。
三 SQL与数据模式
InterSystems提供很多种SQL操作的方式,而其当使用SQL操作数据的时候,很多操作和数据模式有关,例如数据排序。
SQL操作的方式
您是如何使用SQL的?是通过ODBC/JDBC,还是在Object Script里通过嵌入式SQL或动态SQL,抑或是通过Terminal或管理门户的SQL操作页面?
1. ODBC/JDBC
通过ODBC/JDBC连接到InterSystems数据库时,问题很简单:无论是插入或更新数据,还是查询数据,作为值、查询条件的数据和返回的数据显示结果都是按ODBC格式的。也就是说,这种情况下,您不需要关心数据模式。
2. 嵌入式SQL
如果您在使用嵌入式SQL(&SQL)操作数据,那么就需要留心数据模式了。可以通过#SQLCompile Select这个预处理器指令设置需要的数据模式,例如设置为ODBC模式:
ClassMethod Test(pDocNo = "Doc123456")
{
#SQLCompile Select=ODBC
&SQL(Insert into Test.Table(
DocumentNo,
DOB,
name_Value)
values(
:pDocNo,
'2001-10-10',
'预防接种史描述')
)
}
#SQLCompile Select可以设置为逻辑模式(Logical)、显示模式(Display)、 ODBC模式(ODBC)或 运行时模式(RuntimeMode)。而RuntimeMode默认为逻辑模式。
3. 动态SQL
如果是使用动态SQL,对于%SQL.Statement,它有一个属性%SelectMode,可以用来设置数据模式。它的可选值为:0 (逻辑模式)、1 (ODBC模式) 、2(显示模式),0(逻辑模式)是默认值。
例如下面的例子将数据模式设置为逻辑模式:
SET myquery = 3
SET myquery(1) = "SELECT {t '12:04:29'} AS time1,"
SET myquery(2) = "{t '12:4:29'} AS time2,"
SET myquery(3) = "{t '12:04:29.00000'} AS time3"
SET tStatement = ##class(%SQL.Statement).%New()
SET tStatement.%SelectMode=0
SET tStatus = tStatement.%Prepare(.myquery)
SET rset = tStatement.%Execute()
DO rset.%Display()
4. Terminal的SQL shell
当使用Do $System.SQL.Shell()进入Terminal的SQL操作环境时,可以使用SET SELECTMODE命令来查询和设置数据模式。
直接使用SET SELECTMODE命令,返回的是当前数据模式。要设置数据模式,使用SET SELECTMODE=odbc/logic/display,例如SET SELECTMODE=odbc将当前SQL操作环境的数据模式设置为ODBC模式。
注意:SET SELECTMODE=odbc,等号前后不能有空格!
5. 管理门户的SQL操作页面
在管理门户的SQL操作页面中,通过下拉列表来选择当前的数据模式。
例如下面的逻辑模式的数据显示结果:
这是相同的数据在显示模式下的数据显示结果:
6. 在同一个SQL语句中显示不同的数据模式
有可能出于某种原因,你希望在SQL语句中对不同的字段使用不同的数据模式。这时,可以使用SQL函数:%EXTERNAL、%INTERNAL和 %ODBCOUT 来控制输出模式。
%EXTERNAL:按显示模式输出表达式结果%INTERNAL:按逻辑模式输出表达式结果
%ODBCOUT :按ODBC模式输出表达式结果
例如对于相同的数据,我们采用不同的数据模式输出:
那么除了显示和赋值,哪些操作和数据模式相关呢?
和数据模式相关的操作
1. 比较谓语
在where子句中进行比较的谓语,包括=、>、<、BETWEEN和 IN,这些比较谓语操作时,都会用逻辑模式的值进行比较操作,但可以通过SQL函数做其他数据模式到逻辑模式的数据转换。
例如,我们做日期类型的比较,当前的数据模式是ODBC模式,mydate是ODBC模式,比较条件值也应该是ODBC模式,可以这样写:
... WHERE mydate > '2010-01-01'
而如果数据模式是逻辑数据模式,上面的SQL写法将不会得到你想要的结果,因为这时mydate是逻辑模式的值。你可以用SQL函数TO_DATE将ODBC格式的日期值转为逻辑值:
... WHERE mydate>TO_DATE('2010-01-01','YYYY-MM-DD')
2. 模式谓语在where子句中进行模式分析的谓语,包括%INLIST、 LIKE、 %MATCHES、 %PATTERN、 %STARTSWITH、 [ (包含操作符) 和 ] (跟随操作符),这些模式分析操作也是用逻辑值进行比较,但不能用SQL函数进行其他模式到逻辑模式的转换。
当然,你可以考虑用模式转换函数将数据转换为字符串进行模式分析,例如下面的SQL使用%ODBCOUT将mydate转为ODBC格式的字符串,并看其模式是否满足以“2010-”开头。
...WHERE %ODBCOut(mydate) %STARTSWITH '2010-'
注意,这时SQL引擎不会使用mydate上的索引,有可能造成性能降低。
3. 排序操作
无论使用哪种数据模式,ORDER BY 都使用逻辑模式的值进行排序。
文章
jingqi LIu · 三月 3, 2021
在InterSystems IRIS中使用ObjectScript构建REST API。
开发的API可以遵循OPEN API规范,可以使用Docker和VSCode开发,可以部署为ZPM模块,同时也可用作酒店超售系统的Data API。
什么是酒店超售管理系统?
超售管理系统结合了酒店的独特条件,例如房价,订购渠道,客户需求等。系统使用机器学习算法(例如:KNN / ES-RNN ...)来准确预测酒店的每日未入住和入住率,并进一步与收益方程式结合以找到最佳的最大客房销售量,从而可以大大增加酒店的边际收益。
来看看我们的Repo!
https://github.com/BroadCastAir/hotel_api
和
https://github.com/BroadCastAir/Hotel_OverBooking_Sys
投票支持我们的应用程序!
InterSystems IRIS不仅在医疗保健行业,在零售和酒店业中也具有广阔的发展前景。
InterSystems IRIS不仅在医疗保健行业,在零售和酒店业中也具有广阔的发展前景。说的好! 了解了,行业的应用证明了系统的可用性 希望多支持! 这是应用在其他行业中的典型案例,很棒! 看到了酒店行业应用,棒👍
公告
Claire Zheng · 十月 9, 2022
2022年9月5日-10月24日(北京时间),我们正在举办🏆InterSystems开发者社区中文版首届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)!投票截止至10月23日,你的支持与喜爱,是作者获得“开发者社区奖”的关键!如何为你喜欢的作品投票呢?
第一步,你需要成为开发者社区的活跃用户(Active User)
成功注册后,在社区发帖、点赞、回复问题等,接下来需要……等24小时。因为我们的系统会每天进行一次active user的更新。
成为Active user后,就可以给你心仪的项目投票啦!
第二步,点击进入参赛页面🏆InterSystems开发者社区中文版首届技术征文大赛🏆
第三步,在参赛页面查看所有文章,看到感兴趣的文章,就可以点赞点赞,你可以为你喜欢的每篇文章点赞一次。
10月24日,我们将宣布获奖名单!
欢迎大家积极投稿、点赞、分享、学习!
欢迎关注InterSystems开发者社区中文版首届技术征文大赛
文章
TZ Zhuang · 六月 2, 2021
InterSystems产品有四种备份方法:(1) 外部备份(2) 在线备份(3) 冷备份(4) 传统的并行外部备份有关这些方法的细节请参考在线文档 https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI_BACKUP
以下是对每种备份方法的简要描述:
(1) 外部备份外部备份是InterSystems推荐的最佳备份方式。外部备份一般是对数据库文件所在的存储创建快照的方式来实现。创建快照可以在多个层面进行,例如存储层面,操作系统层面,等等,因此这些相关技术和工具一般由第三方来提供。在做快照前,一定要先停止对数据库文件的写入(InterSystems IRIS的IRIS.DAT,Caché/Ensemble的CACHE.DAT)。但是用户进程可以继续对内存进行更新,而不需要中断。InterSystems提供了停止对数据库文件写入的方法,用户可以把这个加入到快照工具的脚本里。外部备份一般包括以下几步:1. 使用Backup.General.ExternalFreeze()方法来停止对数据库文件的写入。2. 使用第三方快照工具来对文件系统创建快照。3. 使用Backup.General.ExternalThaw()方法来恢复对数据库文件的写入。4. 把快照拷贝到备份介质上(用于存储备份的磁盘,磁带,等等)。5. 删除快照。
(2) 在线备份在线备份是InterSystems自己特有的备份方式,可实现无宕机备份。但是,在线备份只能备份数据库文件(InterSystems IRIS的IRIS.DAT,Caché/Ensemble的CACHE.DAT),并且会把所有需要备份的数据库文件中的数据块写入到一个.cbk的备份文件。因此如果想要使用在线备份来备份整个系统环境,除了数据库文件外,还需要额外备份很多系统文件,例如InterSystems产品的安装目录,WIJ文件,主日志和备日志目录等等。在线备份包括3种类型:1. 全备份 -- 把所有使用的数据块写入到一个.cbk文件。2. 累积备份 -- 从上一次全备份起,所有变化过的数据块写入到一个.cbk文件。恢复时,需要和上一次全备份一起恢复。3. 增量备份 -- 从上一次备份起,所有变化过的数据块写入到一个.cbk文件。恢复时,需要和上一次全备份及中间所有备份一起恢复。在线备份的这些特性,并不适用于作为数据量大的生产系统的备份方案。
(3) 冷备份冷备份是在数据库系统正常停机状态下,所做的外部备份,即拷贝文件系统到存储介质。
(4) 传统的并行外部备份传统的并行外部备份是一种在特殊情况下才可行的备份方法。一般需要满足以下条件:1. 数据库在一个集群里,并且不能有宕机时间。2. 没有快照功能。3. 在线备份不能满足需求。并行外部备份结合了数据库文件(*.DAT)拷贝和在线备份里增量备份的功能。其步骤如下:1. 在数据库中设置备份启动标志。2. 拷贝数据库文件(*.DAT)。3. 对该拷贝时间内被修改的数据进行在线备份的增量备份。具体使用情况和详情也请参考在线文档 https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.cls?KEY=GCDI_backup#GCDI_backup_methods_ext_concurrent
最新版本InterSystems IRIS for Health示例:===============================================================1. 设置标志,开始备份数据库。Set ^ClearOK=$CLRINC^DBACK("QUIET")2. 拷贝操作系统上的数据库文件(*.DAT)。3. 运行下面的命令,表明你已经使用了一个外部备份工具。Set x=$$BACKUP^DBACK("","E","Dirty external backup","","","")4. 进行增量备份。Set x=$$BACKUP^DBACK("","I","incremental","test.cbk","Y","bck.log","QUIET","Y","Y")===============================================================InterSystems产品中的上述处理可以做成例程Routine或类方法,并与批处理相结合进行操作。关于传统并行外部备份中使用的^DBACK例程的更多信息,请参考以下文件https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.cls?KEY=GCDI_backup#GCDI_backup_util_DBACK_entry_backup
文章
Hao Ma · 三月 25, 2021
在Caché时代, 比较受欢迎的IRIS数据库客户端是Sqldbx和Winsql, 这两者的共同点是提供ODBC兼容的连接,而且免费。限制也差不多:只能用于Windows环境,只能用ODBC连接。
DBeaver是我最近使用的免费SQL客户端, 推荐给各位。它有几个好处:
1. 支持各种操作系统:Windows, Linux, Mac.
2. 内置Caché和IRIS的JDBC driver, 可以简单配置到Caché 或者IRIS的连接。
3. 免费
下面说说配置的一些小细节:
- 连接IRIS
下图中的配置项都很简单,需要的信息无非是数据库IP地址, 端口,数据库的名称,以及账号密码。值得一说的是下面下拉栏里的InterSystems IRIS driver. 初始安装DBeaver时这个driver不是默认安装好的, 你需要到"Edit Driver Setting"的"Libraries"页面去下载,按钮是"Download/Update". 下载的地址是https://github.com/intersystems-community/iris-driver-distribution/raw/main/intersystems-jdbc-3.1.0.jar。 讨厌的是,这个页面的响应速度有点慢,因此您很可能会被timeout。我的解决方法是拷贝这个网址,从浏览器把这个包下来,然后放到DBeaver指定的路径去。上述地址和要放的文件路径都可以在”Driver Setting"的"information"页面得到。
-连接Caché
这个就容易多了。 虽然也有可能要下载driver, 但Caché的driver是已经存在Dbeaver网站的repo里面了,不会有下载和更新timeout的问题。 (我相信用不了多久IRIS的driver也会放进DBeaver的repo的)
happy coding
马老师好,请教个问题,就是我按照步骤操作之后,连接还是提示Connection refused: connect,驱动我是从本地安装目录拷贝出来的(D:\IRIS-HealthConnect\dev\java\lib\JDK18\intersystems-jdbc-3.1.0.jar),这个可能会是什么问题
文章
Tingting Jiang · 三月 21, 2023
注意:请投递时,发送英文简历!
工作概述
每年夏天InterSystems都会招聘实习生在中国办公室工作,从事专门围绕InterSystems产品设计的项目。我们信任实习生团队在导师的指导下可独立的工作。除了在项目中工作外,实习生还能融入我们的团队,与我们的全职员工一起解决所面对的工作问题。
InterSystems的带薪暑期实习项目可以让学生接触到在重要的职业生涯中出类拔萃所需的各种技术和软技能。
我们希望实习生可以累计工作时长4个月,预计于2023年6月份开始。
工作职责
参加必要的培训课程,成功完成实习期间分配的项目。
在导师和其他InterSytems员工的指导下,成功地完成分配给他们团队的项目。
向高层领导和InterSystems的员工展示他们的项目。
遵守实习计划的所有要求(包括出勤、着装、行为)。
遵守公司关于实习的合理指示。
在公司规定的时间内可以进行活动。
如果在实习期间有任何计划外的缺席,请及时通知人力资源部门。
遵守适合公司的职业行为标准。
遵守公司的政策和程序,包括那些与WHS和就业公平和多样性有关的政策和程序。
在任何时候都要适当地、负责任地使用公司的资源。
承担所有与实习有关的评估活动。
对在实习期间获得的有关公司、员工、客户和公司业务的信息进行保密。
公司可能不时地指示其他职责。
任职条件
优先有以下一种或多种编码经验:Python、InterSystems ObjectScript、Node.js、SQL、XSLT和AngularJS在敏捷团队中工作,或类似的经验。
技术上的好奇心。
对复杂的技术挑战有创造力。
协作的团队心态。
在不断变化的工作环境中表现出灵活的态度。
主动为自己的职业生涯打下技术基础。
专业要求
计算机等相关专业的本科生、硕士生或者博士在读学生。
薪资
本科生:RMB6,000/月;硕士生:RMB7,000/月;博士生:RMB8,000/月。
工作地点
北京市朝阳区建国门外大街1号银泰中心写字楼C座2701
如何申请
请点击链接InterSystems Careers, 或在2023年4月30日前发送邮件至recruitment.asiapacific@intersystems.com。
不知道我可不可以 你可以给实习生当老师 哈哈哈哈
文章
Hao Ma · 十月 28, 2024
### IRIS image下载
[参考:下载Images的在线文档](https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_containerregistry#PAGE_containerregistry)
在网站上获得可以下载的InterSystems的各种docker镜像。如果只是安装Community版本, 不需要注册。如果是下载安装正式的版本,需要在网站注册,然后获得Login Token登陆。
```zsh
#;这一部有可能需要科学上网,否则无法正常登陆
hma@CNMBP23HMA ~ % docker login -u="hma" -p="k8zIqpoafIUaViP2BA4gCZdcC4EeKyb0svSjnyVtcWMb" containers.intersystems.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
# pull iris image,webgateway,Passhash, arbiter, etc.
hma@CNMBP23HMA ~ % docker pull containers.intersystems.com/intersystems/healthconnect-arm64:latest-cd
hma@CNMBP23HMA ~ % docker pull containers.intersystems.com/intersystems/webgateway-arm64:latest-cd
...
```
**Tips**
- 下载社区(Community)版本的镜像不用在网站注册,使用时也不需要安装license。社区版内置内置了一个13个月的license。而正式版本IRIS Continer安装需要从InterSystems处获得IRIS docker版的专用license。
- 标记`latest-cd(Continuous delivery)`,`latest-em(Extended maintenance)`, `latest-preview`是最新的"持续交付"版本, "扩展维护"版本,以及"开发预览版"。 您也可以选择指定专门的版本,比如当前最新的GA版本2024.2。同时,如果硬件是ARM芯片,请选择带有“-arm64"后缀的版本。
- WebGateway-nginx是nginx服务器的版本,而WebGateway镜像内置了apache2服务。
### 简单的搭建测试环境
我要使用的iris 2024的版本,其中再没有之前的内置的PWS(Private Web Server), 也就是说您当前以及无法从http://localhost:52773/csp/sys/UtilHome.csp登录管理门户了。因此我用`docker-compose`来创建下面的例子。`docker-compose`用来编排多个container共同工作。它自动的创建一个单独的docker network, 其中的所有service, 也就是docker container可以通过container name通信。
如果是简单的测试环境, 可以直接用`docker run`运行IRIS Container。 我们先来run一个最简单的社区版:
**compose.yaml**
```yaml
services:
iris-a:
image: containers.intersystems.com/intersystems/irishealth-community-arm64:2024.2
container_name: iris-a
hostname: irisa
ports:
- 1980:1972
- 52773:52773
environment:
- TZ=CST-8
webgateway-apache:
image: containers.intersystems.com/intersystems/webgateway-arm64:2024.1
container_name: wg-apache
hostname: wg-apache
ports:
- "8080:80"
environment:
- TZ=CST-8
```
说明两点: 1. 在IRIS2024中52773端口已经无法使用,所以不需要再被映射到主机。 2. TZ=CST-8是把container的时区设置为上海。
运行后可以看到两个container都已经工作
```zsh
hma@CNMBP23HMA demo % docker-compose up -d
[+] Running 3/3
✔ Network demo_default Created 0.0s
✔ Container wg-apache Started 0.0s
✔ Container iris-a Started 0.0s
hma@CNMBP23HMA demo % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfa4cc730c14 containers.intersystems.com/intersystems/irishealth-community-arm64:2024.2 "/tini -- /iris-main" 6 seconds ago Up 5 seconds 2188/tcp, 52773/tcp, 53773/tcp, 54773/tcp, 0.0.0.0:1980->1972/tcp iris-a
63e983d90034 containers.intersystems.com/intersystems/webgateway-arm64:2024.1 "/startWebGateway" 6 seconds ago Up 5 seconds 0.0.0.0:8080->80/tcp, 0.0.0.0:4433->443/tcp wg-apache
hma@CNMBP23HMA demo %
```
#### **查看iris container**
这时,虽然还无法登录iris的管理门户,您可以使用docker exec进入iris container查看iris实例已运行。 注意两点:
1. 默认登录的用户是irisowner
2. IRIS的安装路径是`/usr/irissys`.
```zsh
hma@CNMBP23HMA installer_cch % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
59e2424757db containers.intersystems.com/intersystems/irishealth-arm64:2024.1 "/tini -- /iris-main" 6 seconds ago Up 5 seconds 0.0.0.0:1972->1972/tcp, 2188/tcp, 53773/tcp, 0.0.0.0:52773->52773/tcp, 54773/tcp iris
hma@CNMBP23HMA installer_cch % docker exec -it iris bash
irisowner@59e2424757db:~$ iris list
Configuration 'IRIS' (default)
directory: /usr/irissys
versionid: 2024.1.0.263.0
datadir: /usr/irissys
conf file: iris.cpf
status: running, since Wed Oct 23 12:32:45 2024
SuperServers: 1972
state: warn
product: InterSystems IRISHealth
irisowner@59e2424757db:~$ iris session iris
Node: 59e2424757db, Instance: IRIS
USER>halt
irisowner@59e2424757db:~$
```
#### 查看Webgateway Container
1. 从浏览器打开 http://localhost:8080, 可以看到apache2的主页面。
2. 访问http://localhost:8080/csp/bin/Systems/Module.cxw?CSPSYS=0&CSPSYSreferer=_CSP.Portal.Home.zen,可以进入Webgateway的配置页面。 这里一定注意:访问http://localhost:8080/csp/bin/Systems/Module.cxw会得到500错误。当前状态下一定要带着参数访问这个网址。
3. 配置webgateway到iris的连接:在当前页面,你需要设置。
- Server Local的IP/DNS和Port:这里是iris container的名字iris-a,和iris-a container的superserver端口1972
- 登录iris的账户密码:CSPSystem, SYS
保存设置,然后在"Test Server Connection"页面测试连接,你将看到连接成功的结果。
4. 尽量webgateway已经成功连接了IRIS, 但配置还没有完。要成功访问IRIS管理页面,你需要修改一个apache2的配置文件CSP.conf
- 使用`docker exec -it wg-apache bash`进入container.
- 修改`/etc/apache2/mods-available/CSP.conf`配置文件,如下:
```bash
# 原始文件的内容
CSPModulePath "${ISC_PACKAGE_INSTALLDIR}/bin/"
CSPConfigPath "${ISC_PACKAGE_INSTALLDIR}/bin/"
SetHandler csp-handler-sa
SetHandler csp-handler-sa
AllowOverride None
Options None
Require all granted
Require all denied
# 自己添加的内容
CSP On
CSP On
CSP On
```
- 用命令行`service apache2 restart`重启apache2, 或者从container里退出重启wg-apache container.
- 从浏览器访问http://localhost:8080/csp/sys/UtilHome.csp, 您应该已经可以成功访问IRIS了。
### 总结
虽然题目是'简单的搭建测试环境', 但实际上还是有非常多的步骤,主要是集中在webgateway到IRIS的连接上。 如果您熟悉docker-compose,您知道这样人工的配置一个container是不合适的。而后面的章节我会专门有一章节如何在docker-compose里自动配置webgateway。之所以还要介绍webgateway的人工配置步骤,是因为这些知识是自动配置webgateway的背景知识,而且在做debug时非常关键。
另外,后面我还会介绍webgateay-nginx的配置。
文章
Claire Zheng · 五月 18, 2023
“数据二十条”体现了怎样的制度创新和政策智慧?FHIR将如何发挥作用?来看InterSystems亚太区总经理老卢(Luciano Brustia)与CHIMA主任委员王才有的精彩探讨!