年度InterSystems IRIS开发者大赛来了,我们特别兴奋能够邀请大家参加我们今年的年度大奖赛,利用InterSystems IRIS数据平台创建开源解决方案!

🏆 InterSystems2022年度编程大奖赛 🏆

时间: 2021年5月9日 - 6月5日(美东时间)

总奖金超过$22,000美金,比去年提高37%!!! 

 


  Add to calendar Apple Google Outlook
0 0
0 23
文章
Michael Lei · 四月 19 阅读大约需 13 分钟
用Caché ObjectScript 生成EXCEL

有很多方法可以使用Intersystems生成excel文件,其中一些是ZEN报告、IRIS报告(Logi报告或正式称为JReports),或者我们可以使用第三方Java库,可能性几乎是无限的。

但是,如果你想只用Caché ObjectScript创建一个简单的电子表格呢?(没有第三方应用程序)

在我的案例中,我需要生成包含大量原始数据的报告(财务人员喜欢这些数据),但是我的ZEN/IRIS失败了,给了我一个我想称之为 "零字节的文件",基本上说java的内存用完了,并导致报告服务器上的重载。

这可以用Office Open XML(OOXML)来完成。Office Open XML格式是由一个ZIP包内的一些XML文件组成的。因此,基本上我们需要生成这些XML文件,并将其压缩重命名为.xslx。就这么简单。

这些文件遵循一套简单的惯例,称为开放包装惯例。你需要声明各部分的内容类型,以及告诉消费应用程序应该从哪里开始。

为了创建一个简单的电子表格,我们至少需要5个文件。

0 0
0 37

     在软件开发和业务集成中,规则无处不在:会员折扣的计算规则、根据消息类型和内容将其路由到不同目标系统的路由规则。还有一个规则发挥重要作用的地方-  辅助决策规则,例如临床知识库和医疗质量指标规则。

规则经常需要随业务调整和知识积累进行调整,而规则的调整是业务和行业专家定的。如果规则是以代码硬编码的,这些调整需要程序员改动,一来不直观、需要业务专家与程序员大量的沟通成本,二来硬编码改动会对应用伤筋动骨,甚至带来风险,三来没法控制新规则生效的时间 – 总不能让程序员在新规则生效的那一刻去编译和部署吧。

1 0
0 34

尽管IRIS和HealthConnect拥有全面的互操作特性,但在实际工作中,还是有可能遇到需要使用遗留类库,dll SDK等方式与外部应用通信的情况。例如IRIS中并没有内嵌国密算法SM2、SM3和SM4,而开源社区中不乏通过Java、Python和C++等语言完成的具体实现。本文就将以调用SM4的Java实现为例展示ObjectScript程序与第三方语言通信的过程。

Github地址:https://github.com/LinZhuISC/javademo.SM4

跨编程环境调用设计要点

在开始实际操作之前,希望读者先针对整个调用过程中的主调方和被调方思考两个现象:

1 1
1 32
文章
Hao Ma · 四月 19 阅读大约需 26 分钟
Linux系统IRIS安装总结

本文档只是给您一个大致的概念,方便您了解IRIS安装的方方面面。并非官方安装手册或者安装建议。生产环境的安装请仔细研究并参照IRIS官方的安装文档

操作系统的选择

IRIS支持多种Linux系统。详细的列表请参见各个版本的支持列表,比如这个是最新的2021IRIS的支持列表。需要注意的是, CentOS只支持作为测试系统, 并不支持生产系统的安装。

官方文档是以Redhat为主介绍的IRIS安装, 这是IRIS在生产环境中最常用的Linux系统之一。另一个Ubantu, InterSystems提供的docker版本是安装在Ubantu上的。

0 0
0 29
文章
Nicky Zhu · 五月 7 阅读大约需 3 分钟
一个新库引发的血案

我们的一位客户五一期间向使用IRIS搭建的数据流推送一家三甲医院数年的历史数据,导致实施的同事们经历了一系列噩梦,包括但不限与:

1. 由于未通知实施团队有这样规模的数据推送,数据推送过程与全库备份任务重叠。尽管实例和数据流正常运行,但备份任务与数据流争抢IO,导致备份任务不能在预期时间内完成,实施童鞋五一加班处理问题。

2. 为了节省磁盘空间,服务器上部署了定期删除IRIS备份文件的任务,原本能够保持一周的全备+增量备份,但在本次数据暴增的情况下,新的备份尚未完成而旧的全备已被删除,导致问题发生时没有可用于恢复的备份。

3. 由于这次数据推送前未进行数据质量校验,推送的数据全部不合规,但已经历了较长的数据流进行处理全部入库;同时由于备份文件已被删除,无法通过恢复数据库的方法回滚,导致实施童鞋不得不逐条从生产环境三个库的数百张表中挑出问题数据逐一删除,从五一放假结束至今还未完成善后工作。大家可以设想一下,如果备份还在,那么恢复备份就可以了。

因此,我们希望再次提醒各位在前线奋斗的亲们:

1. 善待你的备份。尽管对于大型医院或医疗集团来说,两周的全备+增量备份策略下,备份文件会占据数个TB的存储空间。但在需要回滚时,这几个T的空间能救命。

3 1
0 23
文章
Johnny Wang · 四月 25 阅读大约需 39 分钟
Angular 中 Ensemble 工作流的 UI

    大家应该都已经很熟悉 InterSystems Ensemble(一个集成和应用程序开发平台),每个人都知道 Ensemble Workflow 子系统是什么以及它对于自动化人类交互的作用。 对于那些不了解 Ensemble Workflow 的人,我将简要介绍它的功能(已经熟悉的朋友可以直接跳过这一部分并学习如何使用 Angular.js 中的 Workflow 接口)。

InterSystems Ensemble

    InterSystems Ensemble 是一个集成和应用程序开发平台,旨在集成异构系统、自动化业务流程和创建新的复杂应用程序,这些应用程序通过新的业务逻辑或新的用户界面增强集成应用程序的功能:EAI、SOA、BPM、BAM 甚至 BI (感谢 InterSystems DeepSee:一种用于开发分析应用程序的内置技术)。

    Ensemble 具有以下关键功能:

0 0
0 17
文章
Jiakeng Lei · 四月 22 阅读大约需 1 分钟
IRIS SQL网关连接Oracle19C数据库报错解决

问题:
通过JDBC连接Oracle19C数据报错 "ORA-28040: No matching authentication protocal"

解决 :
1、在数据库服务器上找到sqlnet.ora文件,一般在oracle安装目录app/oracle/product/19.0.0.0/db_1/network/admin/sqlnet.ora

2、如果有进行修改,没有直接创建

3、slqnet.ora文件新增或修改以下
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

4、注意事项:
① 如果没有sqlnet.ora文件可以直接创建 vi sqlnet.ora
② 如果有不能直接vi 需要使sed -a 命令追加,否则会导致ora文件乱码
③ 添加参数后新无需重启数据库或者监听,但是需要修改用户密码,否则会报错

5、修改用户名密码

sqlplus / as sysdba

alter user 用户名 identified by 新密码;

0 2
0 15

在HIMSS 2022的一次讨论中,小组成员讨论了长期执行登陆火星任务的健康挑战,以及新的交互如何保证宇航员的安全。

将人类送上火星的任务是一项艰巨的任务。但是在这些开创性的旅程中,对宇航员健康主要风险相关的关注却小得令人吃惊。

"你会认为太空飞行真的很复杂,但我们把它归结为五个方面,"美国宇航局总部NASA的首席科学家和科技利用经理朱莉-罗宾逊在HIMSS22的一个小组讨论会上说。

"而且我们在地球上以及在当前和计划中的太空任务中模拟了未来的火星任务。我们利用我们所做的每一次任务来推进我们对如何在未来任务中保持船员安全和健康的理解。" 

载人航天飞行期间的这五个主要危险包括:辐射;隔离和禁闭,如长期与相同的人困在一个狭小的空间里的行为和社会心理影响;远离地球,因为你不能离开或迅速与家乡的其他人沟通;失重;以及不友好和封闭的环境,因为宇航员不断重复使用水和重新呼吸相同的空气。

但是美国宇航局可以在地球上和国际空间站上模拟其中一些健康风险,为前往火星的长期任务做准备。这也是将人类送回月球的Artemis计划的一个目标。

Artemis计划将对这些重力、辐射、环境和隔离风险提供一个更好的模拟。当然,月球比火星离家近得多,通信延迟将短得多。

0 0
0 11
问题
Johnny Wang · 四月 21
转发问题

hello 各位老师好:

          电子病历闭环埋点接口是单独接口,由平台提供接口文档,接口方式为Webservice,不能走在平台标准服务里吗?

0 0
0 10

InterSystems IRIS 2021.1 的发布引入了自适应分析(Adaptive Analytics)的介绍。 为了开始使用和熟悉 InterSystems IRIS BI cube示例,我们创建了一个用于自适应分析的 HoleFoods 应用程序示例模版。 此示例应用程序可在 Open Exchange 上获得, 还有一个学习服务课程learning services course 可用于了解有关自适应分析的更多信息。

0 0
0 10
文章
Michael Lei · 四月 17 阅读大约需 3 分钟
翻译博客文章--浏览医疗保健的未来

在最近一次探索马里兰小镇的 "度假 "期间,我偶然发现了一家非常令人愉快的书店,在那里我愉快地消磨了一下午。我和我的家人都是读者,喜欢各种类型的书--新的、二手的、印刷的、电子的。我们尽量在当地购物,以帮助零售店保持运营。

这次访问促使我思考图书行业所发生的事情与我们的医疗保健系统所发生的事情之间的一些相似之处。

医疗保健行业与图书行业的趋势


数字化


我们阅读内容的格式已经发生了根本性的变化。在2020年,电子书几乎占美国市场的四分之一。音频书占美国图书收入的10亿美元。许多印刷书籍是按需出版的,而不是保存在库存中。同样,医疗保健早已不再是一个“伸出舌头说啊 ”的行业,基因组测试、由人工智能算法读取的X射线、可植入设备和远程医疗访问已经改变了医疗的面貌。

虚拟服务

0 0
0 10
问题
Michael Lei · 四月 27
如何更改主键?

Hi, 请问如何更改表(有数据)上的主键?谢谢!

答:

如果数据已经存在,那么这是一项必须重视的任务,特别是如果存在继承或父/子关系,因为这将导致你的数据存储方案的改变。

最简单的方法是通过一个中间(临时)表来实现。

创建一个具有相同结构的新类,但有一个新的主键。
使用SQL(不是合并命令)将数据从旧的类中移到它里面。
删除旧类中的数据/索引,然后改变其中的主键。
使用合并命令,将数据从新类移到旧类中。
删除带有数据的新类。
重建索引(如果有的话)。

几个有用的链接:
        MERGE

0 0
0 10
文章
Johnny Wang · 四月 27 阅读大约需 3 分钟
是什么在消费使用我的licenses

    有时,我们在给客户提供技术支持时会得到重复的问题,某事或某人正在使用比预期更多的licenses,我们需要找到什么。

    我们经过分析后认为主要有两种原因。 第一种原因是在我们意识到,当应用程序无法运行或尝试通过终端连接并获得“lovely”时,许可证实际已用尽;

    <licenses限制超出> 消息:

    第二种情况是最终用户抱怨他们有时无法使用该应用程序,而当问题发生时我们发现已经太晚了。 在这些情况下,我们通常会在 messages.log 中看到以下“License Limit exceeded xxxx times”消息:

    我们要及时发现问题:

0 0
0 10

本月我们正式发布VS Code ObjectScript扩展的1.8.0版本,它包含以下增强功能和错误修复。

最大的更新是支持服务器端的项目文件,因为很多人会记得Studio。如果你在客户端工作,VS Code已经有很好的项目管理功能。你可以简单地使用一个文件夹作为一个项目,或者使用多个根目录的工作空间。但是如果你在服务器端工作,你可能会喜欢一些更好的工具管理能力,这就是这个功能的意义所在。更多内容,欢迎查阅文档的新项目章节

0 0
0 9
问题
Michael Lei · 四月 29
Cache 动态 SQL 分页

我想知道是否有更好的方法来使用动态SQL对数据集进行分页,而不是我下面使用的方法。问题是,当潜在的数据池变大时,这段代码就会变慢,以至于无法使用。在分析下面的每一行代码时,似乎速度变慢与最初的rset.%Next()迭代有关。 有没有什么不需要子查询/%VID的可用方法,比如简单的LIMIT/OFFSET?

我的代码类似于:

s sql=##class(%SQL.Statement).%New()

s query="SELECT *,%VID FROM (SELECT prop FROM table WHERE prop=x) WHERE %VID BETWEEN 1 AND 100"             

s sc=sql.%Prepare(query)

s rset=sql.%Execute()

while rset.%Next() {.....

0 0
0 9
文章
Michael Lei · 四月 20 阅读大约需 1 分钟
老外做的Cache SQL 存储映射

附件中的压缩文件包含了一些我多年来所做的Cache SQL Storage映射的例子。

如果你有现有的globals,并且想通过Objects或SQL暴露它们,你需要设置Cache SQL Storage映射。  如果你没有看到对你的情况有帮助的例子,请给我发一个例子,我可以帮你解决。

下载附件:https://community.intersystems.com/sites/default/files/post-associated-d...

 

0 0
0 9

临床研究必须与健康数据相连

就在不久以前,临床科研人员还需要依靠三联的纸质NCR表格,手工收集从堆积如山的手写电子病历中提炼出来的病人数据。从又大又重的《医师案头参考》(PDR)撕下几页,通过传真机发送给FDA,用于药物安全报告。业内专业人士接受了大量的培训,以确保数据经过源文件验证、双键处理,并在经过看似无休止的查询以纠正错误之后,保证其符合目的。

值得庆幸的是,随着电子健康档案的广泛采用,健康数据的数字化,这一过程得到了极大的改善。但是,鉴于临床研究进展缓慢,特别是精美的Excel表格仍由人工数据摘要完成,该领域早该有更多的技术变革,特别是围绕释放医疗互操作性的全部好处。如果我们能做到这一点,生命科学公司将有机会利用宝贵的健康数据来确保病人的安全,优化新药的疗效,并使临床开发过程更加高效,减少错误。

0 0
0 9
文章
姚 鑫 · 四月 26 阅读大约需 4 分钟
第124章 SQL函数 SECOND

第124章 SQL函数 SECOND

返回日期时间表达式的秒数的时间函数。

大纲

{fn SECOND(time-expression)}

参数

  • time-expression - 作为列名、另一个标量函数的结果或字符串或数字文字的表达式。它必须解析为时间戳字符串或 $HOROLOG 字符串,其中基础数据类型可以表示为 %Time%TimeStamp%PosixTime

描述

SECOND 返回一个从 059 的整数,也可能返回小数秒。秒数是针对 $HOROLOG$ZTIMESTAMP 值、ODBC 格式日期字符串(没有时间值)或时间戳计算的。

1 0
0 8

Hi 社区,

想象一下,使您的应用程序能够阅读文本?现在有了IRIS的新功能--嵌入式Python,这就成为可能。有了这个新功能,IRIS可以原生地运行任何开源或商业的Python库。gTTS(https://pypi.org/project/gTTS/)是一个免费的库,使用谷歌翻译服务将文本转换成音频。

怎么做

只要通过参数传递文本,gTTS就会返回一个将文本转换为音频的MP3文件。也就是说,你的应用程序可以播放任何文本的音频! 请看如何做到这一点。

1. 进入https://openexchange.intersystems.com/package/IRIS-Text2Audio,点击下载按钮。

2. 克隆/git pull repo到任何本地目录中

0 0
0 8