#InterSystems IRIS

0 关注者 · 960 帖子

InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。

新增
InterSystems 官方 Claire Zheng · 9 小时 前

在 InterSystems IRIS 中使用 OpenEHR

我们偶尔会收到有关在 InterSystems 中使用 OpenEHR 的问题。 通常,这些讨论的重点是企业为什么以及如何在构建应用程序时实施 OpenEHR。下面是一份简要指南:

  • InterSystems 注重互操作性: 我们 优先考虑通过 HL7、IHE、DICOM 和 ISO 等标准实现互操作性。根据我们的经验,没有一种标准能满足复杂医疗数据的所有需求。因此,我们建议在评估 OpenEHR 的任何实施方案时,都要与这些标准结合起来,并分析 每种标准能最好地满足哪些情况的需要。
  • InterSystems IRIS 上的 OpenEHR:对于使用 OpenEHR 模型构建应用程序或数据产品的组织而言,InterSystems IRIS 是一个理想的平台。它具有多模型功能、可扩展性、高性能和可靠性。InterSystems IRIS for Health 还可在同一应用程序中灵活使用包括 HL7 FHIR 在内的许多其他医疗标准。
  • 与 OpenEHR 的互操作性:OpenEHR 早于 HL7 FHIR,但 FHIR 现在涵盖了 OpenEHR 的许多原始用例。
0
0 2
新增
文章 Jeff Liu · 四月 26 1m read

作为新的互操作性用户界面浪潮的一部分(请参阅@Aya Heshmat2025.12025.3中介绍的新内容),v2026.1已经作为开发者预览版发布,这可能是您尝试一下的理由——它将发布用于消息查看和搜索的新用户界面,包括可视化跟踪(以及其他用户界面好东西)。

以下是一个快速预告:

0
0 5
新增
文章 姚 鑫 · 四月 26 3m read

在这里插入图片描述

📘新书发布|《IRIS(数据平台)编程技术指南》正式发售!

大家好,我是姚鑫

最近一段时间,我把自己过去几年在 InterSystems IRIS 项目中的开发经验,系统整理成了一本书—— 📕 《IRIS(数据平台)编程技术指南》 现已由 北京航空航天大学出版社 正式出版发行。

说实话,写书的过程比我想象中要难很多。 如果说写博客是“随手记录”,那么写书就是一次真正的“工程项目”:要保证结构完整、逻辑严谨、内容能从入门一路带到实战。


🚀这本书写了什么?

本书围绕 InterSystems IRIS 的核心开发语言 ObjectScript 展开,内容不仅讲语法,更注重“工程实践”。

主要包括:

✅ IRIS 平台介绍与开发环境搭建 ✅ ObjectScript 语法规则、变量体系、全局变量机制 ✅ 常用数据类型、表达式、系统命令、系统函数 ✅ 函数与方法、面向对象编程基础 ✅ %Persistent 持久类(ORM 与 SQL 映射) ✅ Storage 存储策略、懒加载机制、并发分析 ✅ 嵌入式数据结构、常见性能问题与技术难点解析

整体内容更偏向“项目实战型”,不是纯概念堆砌。


🎯适合哪些人?

0
0 20
新增
公告 Claire Zheng · 四月 24

Hi 大家好!

备考 InterSystems 认证考试,仅阅读文档远远不够,更需要针对真实考试目标进行集中练习。如果您计划在 HL7、SQL、系统管理或开发领域验证自己的专业技能,系统化的准备将带来显著效果。

 

🧑‍🏫 备考平台

本平台提供了大量与认证领域相匹配的练习题,并附有详细的答案解析,指出相关文档参考。您还可以随时跟踪自己的学习进度,从而更清晰地了解哪些方面有所提升、哪些方面仍需加强。

 

涵盖认证

  • HL7 接口专家
  • IRIS SQL 专家
  • IRIS 系统管理专家
  • IRIS 开发专家
  • ObjectScript 专家

通过教材与互动测验的结合,您可以找出薄弱环节,巩固知识,并以更充分的信心应对考试。

👉 点击此处开始练习

 


请注意,exam-prep.es 是一个独立的练习平台,与 InterSystems 无任何关联。本平台旨在作为备考的辅助工具使用。

0
0 12
新增
文章 Kelly Huang · 四月 22 6m read

痛点所在

我们在将 IRIS 实例迁移到另一台机器(甚至可能是升级版本)后,有多少次是在几天之后才猛然惊觉:我们忘了迁移那个对于业务操作(Business Operations)至关重要的 SSL 配置?或者是漏掉了某个凭据(Credential),又或是某个包里孤零零的一个类?

解决方案

最简单的法子就是列一张清单¹。把我们必须迁移的实体项都罗列出来。但是,Word 文档里的简易清单往往会被人抛诸脑后,甚至干脆被无视。

管理学的基本原理告诉我们:如果你希望人们遵循流程,你可以采取以下手段:

  1. 通过监控行为来强制他们执行;
  2. 将某项活动系统地锁定在某个流程之后(例如使用流水线部署代码,并要求自动化测试通过才能合并 PR);
  3. 让流程比人工操作更便捷、更省力。​ 这样人们才会心甘情愿地去用。(这正是我的目标所在)

Python 脚本固然可行,但人们可能会忘记脚本放在哪儿,或者去哪儿下载。一旦有了新版本,所有使用者都得重新下载。

IRIS 类或任务似乎也是理想选择,直到你意识到有时你是迁移到另一个网络的服务器,一个实例根本无法访问另一个。

这就是为什么我选择了浏览器插件一旦安装,它便触手可及(哪怕你几个月不用它);更新会自动完成。即便你换了浏览器或出于某种原因弄丢了插件,从应用商店重新安装也只是点击一下的事。

0
0 14
新增
文章 Jeff Liu · 四月 21 4m read

尽管LOCK(docs) 是 InterSystems IRIS 的基础部分,负责并发性,但开发者社区上关于它的讨论并不多。这是可以理解的,因为它是一个稳定且相当低级的命令。在本文中,我将举一个简单的例子,说明如何使用互操作性锁。在示例中,我们将有一个本地表,其中的引用数据由两个不同的进程使用:

  • 从表中读取数据的实用功能(由生产中的各种 DTL/Rules 使用)
  • 更新表的专用业务操作

这里的问题是,当业务操作更新表时(最糟糕的情况是进行完全重建),自定义函数将无法从表中获取数据,这将导致 DTL/规则处理出现问题。

锁可以帮助我们解决这个问题。具体方法如下:

  • 实用程序将在获取数据前获得共享锁。任何数量的进程都可以持有共享锁,因此不会出现并发问题。一旦检索到数据,我们就会释放共享锁。
  • 更新器业务操作会先使用共享锁,然后再释放独占锁。一旦某个进程获得独占锁,IRIS 就会保证其他进程无法获得同一资源上的锁。这样,当独占锁被持有时,实用程序就无法获取共享锁。一旦我们的业务操作完成对表的更新,它就会释放独占锁,允许实用程序访问表。

    让我们开始吧

本地表

有点简单(在实际项目中作为 LUT 可能会更好),但我们的目的是展示锁是如何工作的,而不是构建一个复杂的表:

Class Lock.
0
0 10
新增
文章 Claire Zheng · 四月 20 4m read

大家好。又是我!!😀

最近,我试图整理InterSystems IRIS😆的一些学习材料,并意识到这些资源实际上非常分散。

因此,我在这里列出了一个按类别分组的列表,供以下人员使用:

  • 是 InterSystems 的新手
  • 或想深入了解某个特定领域的人

此外,我还补充了一些自己的经验,说明哪些有用(哪些没用,可能只是对我没用🤫🤐)。


1.对于初学者

如果您不知道从哪里开始,请从这里开始:

我的体验 从 Developer Hub + 入门开始效果很好。它提供了快速运行的足够条件(无需安装,直接测试!!!!ᾒ)。

不适合我的地方 一开始就直接进入文档→正如我常说的...我知道句子中的每个单词,但就是不理解🥲。


2.设置/安装/工具

当你想真正开始工作时:

0
0 38
新增
InterSystems 官方 Claire Zheng · 四月 16

InterSystems IRIS® 数据平台、InterSystems IRIS® for HealthTMHealthShare® Health Connect 2025.1.4 2024.1.6维护版本现已全面上市 (GA)。这些版本包括对最近发布的一些警报和建议的修复,其中包括以下内容:

请通过Ideas Portal使用 "发布后反馈"类别分享您的反馈意见,以便我们共同打造更好的产品。

文档

您可以在这些页面上找到详细的变更列表和升级检查列表:

早期使用计划 (EAP)

现在有许多 EAP 可用。请查看此页面并注册您感兴趣的项目。

如何获取软件?

0
0 6
新增
文章 Lilian Huang · 四月 15 8m read

关键词 氛围编码(Vibe coding), Windsurf, IRIS, TIE

为什么不呢? "氛围编码 "从来都与氛围无关!( "Vibe coding" is never about the vibe!)

迄今为止,有人没有尝试过 "氛围编码(vibe coding) "吗?

即使仅仅在三年前,如果有人问

  • "我可以用英语、西班牙语或只用中文为 NHS TIE 实施 IRIS 吗?"或
  • "我能否用英语指示 TIE 建立自己的 e2e 路由,获取 PDF 报告,然后将其转化为 ORU/MDM 信息并提交到 PAS?
  • "我们能否只用英语查询 IRIS 数据库,并根据英语指令建立仪表板或我自己的特别报告?

你可能会大笑一声,尽量不生气,找把椅子坐下来,开始计算光是这些分析/SoW/需求/设计/测试/服务文档就需要多少人*日或人*周,以及实际工程工作。

然而,随着基础模型的飞跃和进步,今天的情况肯定会变得更加现实。

我也希望了解其他人是如何使用它的。 以下只是我自己匆忙写下的随笔。

范围

  • IDE:**Windsurf (是的,它还在那里) **或 Cursor 等(现在大约有 20 多个流行/强大的),或者只是带有此类扩展的 VSCode。
0
0 55
InterSystems 官方 Claire Zheng · 四月 13

互操作性用户界面项目在 2025.1 版本的基础上继续进行 ,并采纳了客户和合作伙伴提出的许多建议和意见。 我们将继续投资于反馈和更新这一重要的用户体验。 在最新发布的 2026.1 版(适用于 IRISIRIS for HealthHealthConnect 和 Health Connect Cloud) BPL 编辑器(BPL Editor)信息查看器/可视跟踪(Message Viewer/Visual Trace) 应用程序现在可供选择使用!
注意

  • 现有用户可在现代化和标准体验之间切换。
  • 所有其他互操作性屏幕仍保留在标准用户界面中。
  • 由于新的工作流在新的用户界面中可用,我们希望在这项工作继续进行时,两种体验都可用。
生产配置-配置任务介绍
  • 改进了用户界面在大型制作中的性能,例如有 2000 多台主机的制作
  • 当主机被选中时,"制作工具栏 "具有特定于主机的操作功能
  • 设置功能可启用/禁用与所有主机的连接线,或在选择主机时只显示主主机连接线
  • 可在新操作工具栏中更改主机类别作为操作
  • 当同名主机使用不同类别时,检查器面板(右侧)中的主机名称会显示为下拉列表,可在同名主机之间切换
    • 此外,这两个主机在 "生产配置 "视图中将显示为同一主机,并在主机名左侧显示同名主机的数量
  • 左侧 "Collections "面板的global筛选器可实现对主机、产品、DTL 等的批量筛选。
0
0 12
文章 Nicky Zhu · 四月 10 2m read

处理文件通常很简单:打开文件,读取并处理。这种方法非常有效,直到文件碰巧是 Excel 文件。

常见假设

起初,Excel 文件(.xlsx)看起来就像另一个数据文件,行、列和值。因此,我们很自然地认为它可以像 .txt 或 .csv 文件一样被读取。但问题就出在这里。

Excel 文件为何表现不同

关键区别在于数据的存储方式:

-> .txt / .csv - 纯文本,逐行存储。

-> .xlsx - 压缩、结构化格式(非纯文本)

excel 文件实际上不是一个简单的可读行流。从内部看,它是一个包含结构化数据的打包文件,标准文件读取命令无法解释这些数据。

如果把它当作文本文件处理,会发生什么情况?

  • 执行过程中出现错误
  • 输出看起来无法阅读

重要事项 --> 这不是限制,而是工具和文件格式不匹配


实用的处理方法

与其只使用基于文本的方法,还有更好的选择、

  • 转换为 CSV
  • 嵌入 Python (pandas 或 openpyxl 等库)
  • IRIS 互操作性工具

如果有人曾在 IRIS 中处理过 Excel 文件,或有其他行之有效的方法,请随时分享。)

下面提到几个例子。

0
0 78
文章 Qiao Peng · 四月 9 8m read

本文介绍如何在 InterSystems IRIS 中通过继承 EnsLib.HTTP.GenericOperation(或 EnsLib.REST.GenericOperation)实现 OAuth2.0 支持,包括 OAuth2.0 Client 配置、Access Token 自动获取与 Header 注入,适用于各类第三方 REST API 集成场景。


在企业集成项目中,我们经常需要通过 REST API 对接第三方平台,例如 CRM、支付系统、云服务和 Open API 网关。

这些接口大多数采用 OAuth 2.0 作为授权机制。

虽然 InterSystems IRIS 提供了功能强大的通用 HTTP / REST 业务操作类:

  • EnsLib.HTTP.GenericOperation
  • EnsLib.REST.GenericOperation

但目前它们不直接支持 OAuth2.0 Access Token 自动注入

本文将介绍一种常见且推荐的实现方式:

通过继承 GenericOperation类,自定义一个支持 OAuth2.0 的通用业务操作类(Business Operation)

实现以下能力:

  • 自动检查令牌(Token)是否有效
  • 自动获访问令牌(Access Token)
  • 自动注入授权头(Authorization Header)
  • 对业务调用透明

一、先理解 OAuth2.

0
0 32
文章 Nicky Zhu · 四月 9 1m read

简介

FHIR(快速医疗互操作资源)是存储和交换临床数据的现代标准。但是,一旦您的数据存储在 FHIR 服务器中,如何才能真正浏览这些数据呢?FHIR 数据以 JSON 格式存储,虽然功能强大,但直接读取并不实用。我希望有一种工具,可以让您点击病人,以简洁、可读的格式查看他们的病情、用药、化验结果等。于是,我创建了FHIR 患者查看器(FHIR Patient Viewer)

如何运行

该应用完全在 Docker 中运行,并直接连接 InterSystems IRIS for Health FHIR 服务器。启动时,它会自动将 115 个合成患者载入 IRIS,无需手动设置。

  • 浏览患者列表
  • 点击任何患者,查看其所有临床记录

  • 逐字段展开每条记录

  • 随时查看底层原始 JSON 文件


     

数据

它预装了由Synthea生成的 115 个合成患者数据


Open Exchange 上有完整的源代码和设置说明:
https://openexchange.intersystems.com/package/FHIR-Patient-Viewer-2

欢迎反馈!

0
0 68
文章 Lilian Huang · 四月 3 7m read

在我年轻的时候(具体有多年轻不在本文讨论范围之内),"token"这个词意味着乐趣。你看,每年我都会有几次机会去街机厅,和朋友们一起玩一些有趣的电子游戏。

如今,token意味着安全。JSON 网络令牌(JWT)身份验证已成为确保 REST API 安全的最流行标准之一。幸运的是,对于 IRIS 用户来说,我们有一种直接的方法来设置应用程序,使其受到这种方式的保护。然而,这种想法仍与我以前玩街机时的想法相似。如果你想玩游戏,就需要获取一些token!

设置

我们的首要任务是为 IRIS 做好准备,使用户能够获取token。首先,我们要在全系统范围内允许使用 JWT 身份验证。为此,我们将打开系统管理门户并登录。然后,我们将进入System Administration > Security > System Security > Authentication\Web Session选项。在同一区域,我们还可以授权其他身份验证替代方案,如 LDAP 和双因素身份验证。在变体列表的底部附近,我们会发现一个名为 "JWT Issuer Field "的字段,在这里我们必须键入一些值来标识token发行者。它可以是任何唯一的字符串,但通常是一个 URL 或域。这应该由应用程序接口和前端开发人员事先商定。您可以选择用户访问 API 时发送请求的 URL。在我的示例中,我将选择 www.myurl.

0
0 41
文章 Jeff Liu · 四月 2 7m read

在本文中,我将向你展示如何在笔记本电脑上快速建立一个分片 IRIS 节点集群。本文的目的既不是详细讨论分片,也不是定义生产就绪架构的部署,而是展示如何在自己的电脑上快速建立一个配置为分片节点的 IRIS 实例集群,并利用它来玩转和测试这一功能。如果你想了解更多有关 IRIS 分片的信息,请点击此处查看相关文档。

首先,我要说明的是,IRIS分片允许我们做两件事:

  • 定义、加载和查询分片表(shard tables),数据将在集群节点之间透明分发
  • 定义联合表(federated tables),提供属于不同表的数据的全局和组合视图,这些数据将物理存储在不同的分布式节点中

因此,正如我所说,我们可以在其他文章中讨论分片表或联合表,现在只需关注前一步,即设置分片节点集群。

0
0 50
文章 Nicky Zhu · 四月 1 7m read

您熟悉 SQL 数据库,但不熟悉 IRIS 吗? 请继续阅读...

大约一年前,我加入了 InterSystems,IRIS 就这样进入了我的视线。 我使用数据库已经有 40 多年了,其中大部分时间都是为数据库供应商工作,我以为 IRIS 与我所知道的其他数据库大致相同。 然而,我惊讶地发现,IRIS 在很多方面都与其他数据库截然不同,而且往往要好得多。 这是我在 Dev Community 上发表的第一篇文章,我将为已经熟悉 Oracle、SQL Server、Snowflake、PostgeSQL 等其他数据库的人提供 IRIS 的高级概述。 希望我的介绍能让您更清楚、更简单,并节省您的入门时间。

首先,IRIS 支持 ANSI 标准 SQL 命令和语法。它有表格、列、数据类型、存储过程、函数......所有关系型的东西。 你还可以使用 ODBC、JDBC 和 DBeaver 或任何你喜欢的数据库浏览器。 因此,是的,您在其他数据库中知道和做的大多数事情都可以在 IRIS 上正常运行。 耶!

但我提到的那些不同之处又是怎么回事呢? 好了,系好安全带:

多模型(Multi-Model)IRIS 是一个关系数据库,但同时也是一个面向对象的数据库,还是文档存储,支持向量和立方体/MDX,以及.你知道我要说什么。

0
0 48
InterSystems 官方 Claire Zheng · 三月 29

InterSystems IRIS® 数据平台、InterSystems IRIS® for HealthTMHealthShare® Health Connect 2026.1版本现已全面上市 (GA)。这是一个扩展维护 (EM) 版本。

版本亮点:

  • 数据库可扩展性增强取消了历史数据库大小限制,实现了无缝增长,超过了以前的大小限制,无需进行数据转换。其他底层性能改进进一步优化了大规模操作。
  • 表分区:根据用户定义的逻辑键拆分表和相关索引数据,以便在数据库间轻松映射。这可以实现存储分层,提高查询性能和超大表的运行效率。该功能是一项实验性功能,可通过 "早期访问计划"订阅更新并转达您的反馈意见。
  • 互操作性用户体验改进:此更新具有新的 BPL 编辑器、对生产配置的额外改进以及 DTL 编辑器,其中包括人工智能辅助 DTL 解释。要了解更多信息,请访问InterSystems 学习中心。对于现有客户,这些功能仍可选择使用。在集成方面,该版本引入了 Mirth 迁移工具,以加速传统集成引擎的替换和现代化。
  • FHIR 服务器授权、批量数据和管理更新: 大幅扩展 FHIR 功能,包括细粒度 OAuth 范围执行和结果过滤,从而实现更精确的数据访问控制。增强批量 FHIR(JWT 授权、从 EHR 计划导出)和更快的服务器/软件包管理。
0
0 197
InterSystems 官方 Claire Zheng · 三月 29

InterSystems IRIS®数据平台的2023.1.7维护版本 InterSystems IRIS® for **** for HealthTM和HealthShare®Health Connect的 2023.1.7 维护版本现已全面上市 (GA)。

请通过Ideas Portal使用 "发布后反馈"类别分享您的反馈意见,以便我们共同打造更好的产品。

文档

您可以在这些页面上找到详细的变更列表和升级清单:

早期使用计划 (EAP)

现在有许多 EAP 可用。请查看此页面并注册您感兴趣的项目。

如何获取软件?

InterSystems IRIS 和 InterSystems IRIS for Health 的完整安装包可从 WRC 的InterSystems IRIS 数据平台完整工具包页面获取。HealthShare Health Connect工具包可从 WRC 的HealthShare 完整工具包页面获取。容器映像可从InterSystems 容器注册中心获取。

可用性和软件包信息

此版本附带适用于所有支持平台的经典安装包,以及 Docker 容器格式的容器映像。 有关完整列表,请参阅支持的平台文档。这些维护版本的版本号是2023.

0
0 14