大家好,
我们非常高兴地与大家分享,我们刚刚推出了一个新的免费互动教程,专门为那些刚刚接触 InterSystems IRIS 并希望了解其核心概念的人设计。
🧑🏫InterSystems IRIS 的数据模型🧑💻

InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。
大家好,
我们非常高兴地与大家分享,我们刚刚推出了一个新的免费互动教程,专门为那些刚刚接触 InterSystems IRIS 并希望了解其核心概念的人设计。
🧑🏫InterSystems IRIS 的数据模型🧑💻

在现代医疗保健领域,寻找临床上相似的患者往往感觉像大海捞针。传统的关键字搜索往往会失败,因为医学语言具有高度的细微差别;搜索 "心力衰竭 "可能会漏掉包含 "充血性心力衰竭 "的记录。
我很高兴与大家分享 iris-medmatch,这是一个基于InterSystems IRIS for Health的人工智能患者匹配引擎。通过利用矢量搜索(vector search),该工具能够理解临床意图,而不仅仅是匹配字面字符串。
## 核心创新:语义临床搜索
iris-medmatch "在原始FHIR数据和可操作的人工智能洞察力之间架起了一座桥梁。该引擎利用 "all-MiniLM-L6-v2 "模型,将临床条件转化为数学向量。
标准搜索查找的是准确的单词,而该引擎能理解**临床上下文**。例如,它可以使用数学向量相似性将 "高血压 "患者与 "高血压 "搜索匹配起来。
该解决方案的优势在于其架构效率。通过嵌入式 Python 运行 Transformers,我们消除了 "数据重力 "问题。数据留在 IRIS 中,人工智能处理在数据所在的地方进行。
🚀应用演练
1.
概述
嵌入式 Python改变了 InterSystems IRIS 的游戏规则,可直接在数据库中访问庞大的 Python 生态系统。但是,在 ObjectScript 和 Python 之间架起桥梁有时会让人感觉像是在两个不同的世界之间转换。
为了实现这种无缝过渡,请使用embeddedpy-bridge。
该软件包是一个以开发人员为中心的实用工具包,旨在为嵌入式 Python 提供高级 ObjectScript 封装、熟悉的语法和强大的错误处理功能。它允许开发人员使用他们已经熟悉的本地 IRIS 模式与 Python 数据结构交互。
虽然 %SYS.Python 库功能强大,但开发人员经常面临一些障碍:
While 循环无法与 Python 迭代器进行本地 "对话"。embeddedpy-bridge我的目标是创建一个 "桥梁",让 Python 感觉像是 ObjectScript 中的一等公民。
py 前缀约定:%ZPython.你好
数据迁移通常听起来像是一个简单的 "将数据从 A 转移到 B 的任务",直到你真正去做。实际上,这是一个融合了规划、验证、测试和技术精度的复杂过程。
我曾在多个项目中负责将数据迁移到在 IRIS(TrakCare)上运行的 HIS 中,在这些项目中,我认识到成功来自于纪律和自动化的结合。
以下是我想强调的几个要点。
1.从定义好的数据格式开始。
在打开第一个文件之前,确保每个人,尤其是数据提供者,都清楚地了解您所期望的确切数据格式。尽早定义模板可以避免不必要的来回奔波和返工。
虽然 Excel 或 CSV 格式很常见,但我个人认为使用制表符分隔的文本文件(.txt)上传数据是最好的。它既轻便又一致,还能避免文本字段内的逗号问题。
PatID DOB Gender AdmDate
10001 2000-01-02 M 2025-10-01
10002 1998-01-05 F 2025-10-05
10005 1980-08-23 M 2025-10-15确保文件中提供的日期格式正确且在整个文件中保持不变,因为所有这些文件通常都是从 Excel 文件转换而来,而 Basic excel 用户可能会在提供错误的日期格式时犯错。错误的日期格式在转换为 horolog 时会让您恼火。
在最近的竞赛中,看到更多的人在创建 VS Code 扩展程序,这令人鼓舞。不过我注意到,在三个需要使用凭据进行连接的扩展中,只有我的gj :: dataLoader 利用了历史悠久、官方支持的InterSystems Server Manager扩展来获取连接定义并安全地处理凭据。
我有一个新项目,要将 REST 响应中的信息存储到 IRIS 数据库中。我需要同步来自至少二十几个不同 REST 端点的信息,这意味着需要创建将近这么多的 ObjectScript 类来存储来自这些端点的结果。
我能否使用 ChatGPT 来创建这些类?答案是 "可以",这非常好,因为这是我第一次尝试使用生成式人工智能来做一些有用的事情。生成长颈鹿喝汤的图片有点老....。
我是这么做的:
我在 "Message ChatGPT "提示符中输入了以下请求:
我:Generate an ObjectScript class that will hold data from the following JSON(生成一个 ObjectScript 类,用于保存以下 JSON 中的数据):
在输入 JSON 之前,我点击了 "Return",因此 ChatGPT 给我的提示如下:
ChatGPT:Please provide the JSON structure you'd like me to generate the ObjectScript class
InterSystems IRIS的嵌入式向量搜索功能使我们能够搜索非结构化和半结构化数据。数据被转换为向量(也称为 "嵌入"),然后存储在 InterSystems IRIS 中并编制索引,用于语义搜索、检索增强生成(RAG)、文本分析、推荐引擎和其他用例。
这是一个将 IRIS 用作向量数据库和在 IRIS 上进行相似性搜索的简单演示。
先决条件:
存储库: https://github.com/piyushisc/vectorsearchusingiris
操作步骤
InterSystems IRIS 的架构将数据的逻辑组织(命名空间)与其物理存储位置(数据库)分开。理解这种分离以及命名空间和数据库之间的区别对于有效的数据管理、安全性,尤其是高性能数据共享至关重要。
在本文中,我将讨论这些基础组件,并提供利用全局映射跨不同逻辑环境共享本地数据结构(全局)的实用指南。
数据库代表了数据存储在磁盘上的物理现实。首先,它是文件系统中名为 IRIS.dat 的文件(例如,<安装文件夹>\mgr\user\IRIS.DAT )。该文件的最大容量为 32TB。它是所有实际数据和代码的容器。数据库由 IRIS 内核管理,它在物理文件级别处理缓存、日志和事务日志。
安装 InterSystems IRIS DBMS 时,会自动安装以下数据库:

有时,根据预先定义的资源 "列表(List)"限制 FHIR 搜索会更方便、更高效、更安全。
自 2025.1 版起,我们的 FHIR 服务器支持多个与列表相关的功能。
我将在此重点介绍这些功能,并提供一些示例。
InterSystems IRIS® data platform, InterSystems IRIS® for Health, and HealthShare® Health Connect 2026.1 的第三次开发人员预览版已发布到 WRC 开发人员预览版网站。 容器可在我们的容器注册表中找到,其标签为latest-preview。
这些开发人员预览版包括从 2026.1.0 开始放弃对 Mac Intel 的支持,以及将 Windows Server 2019 支持添加回 2026.1.0。
初始文档可在以下链接中找到:
这些文档链接目前只是占位符,随着最终版本的推出和更多细节的分享,这些链接将不断更新。以下是 2026.1 文档的一些显著新增内容:
由于这是早期的开发人员预览版,一些内容仍在开发中,我们将在功能最终完成后提供完整的文档。我们感谢您在此阶段的耐心等待和反馈!
该版本为所有支持的平台提供了经典安装包,如需完整列表,请参阅 "支持的平台 "文档。
在使用InterSystems 互操作性(Iris/Health Connect/Ensemble)时,配置数据通常分散在许多生产项目中:服务、流程、操作、适配器及其设置。
常见的操作或安全需求是回答以下问题:
下面的 ObjectScript 工具正是通过将选定的配置设置导出到 CSV 文件来解决这个问题的。
该脚本
Ens_Config.Item)
:、/ 或 \ 的值)
当您需要时,应使用此实用程序:
这对使用许多接口和适配器的多个产品的大型实例尤其有用。
您可能知道这种情况:
前段时间,你发现了一个非常特殊的 $ZU 函数,可以解决一种非常特殊的问题。某种神秘的公式。它变得很流行,被许多开发人员在您的代码和所有安装中使用。
几个版本和更新之后,ISC 通知你,你的神秘 $ZU 已经过时,不再支持。建议您用新的 $something() 替换它。
那么,如何找到并记录这段神秘代码的用法呢?
它可能位于类、MAC、INT 或 INC 代码中。
它也可能分布在多个命名空间中。
在过去,Studio 还不够完善:它不适用、速度慢、不准确。
我在不同的安装中不止一次遇到过这种情况。
当时还没有源代码控制功能,即使最终引入了源代码控制功能,也很少有人使用。
由于 ObjectScript 是应对这一挑战的唯一可能选择,我编写了自己的实用程序。
我的解决方案经过了多年的发展,一旦计划迁移到 IRIS,我就会再次检查它的实用性。
由于它是用纯 ObjectScript 编写的,因此在 IRIS 中无需修改任何字符即可运行。
如您所知,在 ObjectScript 中搜索特定文本的问题一直没有改变。
您发送了一个 HTTP 请求,但得到了一个 HTTP 错误,而且是一个您意想不到的 HTML 错误页面......这是怎么回事?
具体举例来说,也许您尝试读取 FHIR 资源(例如 /Patient/123),但得到的是 404 错误页面,尽管使用其他患者 ID 时,您得到的是资源有效载荷,因此 "页面 "肯定存在......为什么会得到 404 错误页面?
我曾多次遇到一种模式,即我需要使用临时文件/文件夹,并在稍后的某个时候将其清理掉。
在这种情况下,自然是遵循"Robust Error Handling and Cleanup in ObjectScript "中的模式,使用 try/catch/pseudo-finally 或注册对象来管理析构函数中的清理工作。%Stream.File*也有一个 "RemoveOnClose "属性,您可以对其进行设置,但要小心使用,因为您可能会不小心删除一个重要文件,而且这个标志会在调用%Save()时被重置,因此您需要在重置后将其设回 1。
不过,有一个棘手的情况——假设你需要临时文件在外部堆栈级别中继续存在。例如:
大家好,现在我想继续我们之前讨论过的话题
使用 Postman 测试 InterSystems FHIR 存储库的 OAuth2.0 - 第一部分
.png)
问题1:我的client_id和client_secret是从哪里来的?
简短回答:身份验证服务器(Authentication Server)。
如果没有身份验证服务器,可按以下方法设置一个
.png)
提供主机名(主机必须支持 Https)、至少 1 种大类型(这里我们选择客户端凭证)和 SSL/TSL 配置
.png)
输入作用域(这里我们输入user/*.read和user/ *. write,这是基于 FHIR 服务器(资源服务器)支持的作用域)。万一我们遗漏了某些作用域,请检查 "允许不支持的作用域(Allow unsupported scope)"。
.png)
JWT 设置选择 RS256(这只是一个示例,您可以选择适合您架构的设置)
.png)
将生成令牌类(Generate token class)更改为%OAuth2.Server.JWT。如果需要,还可以更新命名空间。
.png)
保存(Save)设置
问题 2:如何查看身份验证服务器的 client_id 和 client_secret?
简短回答: 设置 OAuth2.0 客户端(如果没有)并创建一个客户端
以下是设置 OAuth2.0 客户端的步骤。
.png)
如果要从 x509 证书/密钥生成JWT,对%SYS.X509Credentials的任何操作(包括读取)都需要 %Admin_Secure 资源上的 U。之所以需要 %Admin_Secure,是因为 %SYS.X509Credentials 是持久的,这样做是为了防止所有用户访问私钥。
如果 %Admin_Secure 资源在运行时不可用,可以使用以下变通方法。
在查看 JWT 生成代码时,我发现 JWT 代码仅利用 %SYS.X509Credentials 作为 PrivateKey、PrivateKeyPassword 和 Certificate 的运行时数据源。作为一种变通方法,您可以使用 X.509 接口的运行时非持久化实现,只公开这些属性。如果要使用互操作性,证书/PK 可以存储在凭证中,以便安全访问:
Class User.InterSystems IRIS 数据平台是所有 InterSystems 应用程序以及医疗保健、金融服务、供应链和其他生态系统中数以千计的客户和合作伙伴应用程序的基础。它是一个融合平台,提供交易分析数据管理、集成互操作性和数据集成,以及集成分析和人工智能。它支持 InterSystems Smart Data Fabric 方法,用于管理多样化的分布式数据。
.png)
IPM 0.10.5 版已于 2026 年 1 月 15 日发布。新版本包含大量改进和错误修复,请务必直接从GitHub 页面或社区注册中心查看!
主要变化如下
<Invoke> 将更直观地表现为始终检查 %Status 返回值,前提是且仅当方法签名声明返回 %Status。这意味着如果没有返回任何值、返回值不是 %Status 或不是 $$$OK,就会产生错误。
以下是完整的变更列表:
已添加
- #938:为软件包命令添加了 -export-python-deps 标志
- #462:用于版本库配置的
repo命令现在支持使用-password-stdin标志的密码秘密输入终端模式。
- #935:添加通用的 JFrog Artifactory tarball 资源处理器,用于将工件与软件包捆绑,并在安装时部署到最终位置。
InterSystems IRIS 提供广泛的可配置安全选项,但许多开发人员主要使用角色和资源来保护整个表或例程。今天,我们将深入探讨。我们也可以分别确保单个列和行的安全,但这两种机制的操作方式截然不同。让我们从列开始。
列安全
为便于测试和演示,我们将保持表结构简洁明了。我们在 USER 名称空间中有一个名为 "Person "的表,其中包含 ID 列、出生日期列 (DOB)、名和姓。
在上一篇文章中,我们谈到了 ODBC 和 C# 连接,现在让我们看看 JDBC 和 Java。InterSystems JDBC 驱动程序是集成 Java 应用程序的高性能推荐方式。
以下是使用 JDBC 驱动程序将 Java 应用程序连接到 IRIS 实例的分步指南。
JDBC 驱动程序与 ODBC 驱动程序不同,后者通常安装在整个系统中,而 JDBC 驱动程序通常以JAR 文件的形式发布,必须包含在 Java 项目的类路径中。
如果 InterSystems IRIS 安装在本地计算机或您可以访问的其他计算机上,您可以在 install-dir/dev/java/lib/ 或类似位置找到该文件,其中 install-dir 是实例的安装目录。反之,您也可以从驱动程序软件包页面下载 jar 文件。
或者按照 @Dmitry Maslennikov 在评论中的建议 ,使用 Maven 的maven 中央仓库:
<dependency>
<groupId>com.intersystems</groupId>
<artifactId>intersystems-jdbc</artifactId>
<version>3.10.5</version>
</dependency>或 Gradle:
implementation("com.intersystems:intersystems-jdbc:3.10.5")在项目中包含 jar 文件:
pom.xml 或 build.gradle 文件中。这会自动下载并管理 JAR。/lib)中,并在编译和运行时将其明确添加到 classpath 中。对于构建外部应用程序的开发人员,尤其是使用C# 等熟悉技术的开发人员来说,ODBC(开放数据库连接)是连接任何关系数据库(包括 InterSystems IRIS)的重要标准化桥梁。虽然 InterSystems 提供了自己的本地 ADO.NET 提供商,但 ODBC 驱动程序通常是与通用数据库工具和框架集成的最直接途径。
以下是使用 ODBC 驱动程序将 C# 应用程序连接到 IRIS 实例的分步指南,重点是无 DSN 连接字符串。
在 Windows 机器上安装 InterSystems IRIS 时,默认会安装 InterSystems ODBC 驱动程序。
安装完成后,可在 Windows 的ODBC 数据源管理员(ODBC Data Source Administrator)工具中验证其是否存在(查找 InterSystems IRIS ODBC35 驱动程序)。
.png)
Hi开发者们!
我们很高兴地宣布今年首次举办 InterSystems 在线编程竞赛:
比赛时间:2026年2月2日至3月1日(美国东部时间)
奖金:12,000 美元
不可避免的是,您最终需要将您的代码从一个版本的 IRIS 或 Cache 升级到最新版本的 IRIS。在这一过程中,您可以采取一些好的步骤来为自己的成功做好准备。
仔细阅读文档
在迁移任何代码之前,你应该先查看IRIS 文档页面,其中包含许多关于IRIS不同版本变更的有用资源。如果你需要跨多个版本升级,请查阅所有相关版本的文档,而不仅仅是目标升级版本。对于每个版本,点击“维护版本变更”(Maintenance Release Changes)链接,你将看到一份开发人员升级清单,对指导你需要进行的修改非常有帮助。你还应查看“发布说明”(Release Notes),其中列出了可能对你有用的新功能,以及已被弃用的功能。此外,建议访问“产品新闻与警报”(Product News and Alerts)页面,以获取最新的紧急事项。事实上,即使不进行升级,定期查看该页面或订阅警报通知也是个好主意,以便及时了解变更。
了解你的替代方案
根据你在文档中阅读到的内容,你可能会看到一堆问题。不过,在开始处理这些问题之前,您应该花些时间了解一下有哪些替代方案。如果您喜欢使用的特定 ObjectScript 类已被弃用或移除,那么如果您打算使用集成的 Python,就不要只寻找 ObjectScript 的替代品。如果您是 Zen 报表的用户,InterSystems Reports 就是该工具的替代品。
互操作性用户界面项目从 2025.1 版继续 进行,并纳入了许多我们的客户和合作伙伴建议和观察到的项目。 我们将继续投资于反馈和更新这一重要的用户体验。在最新发布的 2025.3 版(适用于 IRIS、 IRIS for Health、 HealthConnect 和 Health Connect Cloud) 中 , DTL 编辑器 和 生产配置 应用程序可选择
NOTE:
大家好,社区成员们:
对于刚接触InterSystems IRIS的开发者而言,这有个好消息!我们现已在Instruqt平台上推出了实操互动教程!这些教程非常适合希望快速上手、在真实环境中演练,并建立对基于IRIS的开发信心的开发者。(译者注:国内需要🪜)
.png)
概述
25.24.1 版对 DNS 功能、平台可靠性、升级工作流和开发人员体验进行了重大增强。该版本还包括关键修复和平台限制的增加,以更好地支持现代工作负载。
新功能和增强功能
|
类别 |
功能/改进 |
详细信息 |
| 网络 - DNS | DNS 映射(静态 DNS 支持) | DNS 支持从仅转发扩展到完整的 DNS 映射,允许创建和管理静态 DNS 条目,以提高服务发现和配置的灵活性。 |
| 可靠性和恢复能力 | 增强的自愈检查 | 改进了内部自愈验证例程,能够更快地恢复和更精确地检测运行异常。 |
| 高级安全性 | 改进的子网计算 | 增强了子网验证和计算逻辑,减少了配置错误,确保在不同部署中实现一致的网络分段。 |
| 升级和更新流程 | 改进 HCC 和 IRIS 托管服务 | 简化和强化了 Health Connect Cloud 和 IRIS 托管服务的升级/更新工作流,提高了可靠性和自动化准确性。 |
| DNS 修复 | DNS 别名错误修复 | 修复了 DNS 别名在特定配置中无法正确应用或传播的问题。 |
| 网络服务器 | 最大有效负载增至 200 MB | 允许的最大有效载荷大小从 10 MB 增加到 200 MB,支持更大的上传和更复杂的 API 交互。 |
| 开发人员工具 | InterSystems Data Studio 默认版本 1. |
概述
25.23.2 版对高级安全用户界面进行了有针对性的改进,并进一步简化了 InterSystems 云产品的升级和更新工作流程。这些更改重点关注清晰度、效率和卓越运营。
新功能和增强功能
| 类别 | 功能/改进 | 详细信息 |
|---|---|---|
| 高级安全性 | 增强应用程序可见性的用户界面 | 更新后的界面提供了更清晰、更直观的应用程序映射,提高了对安全边界、相关策略和受保护资源的理解。 |
| 升级和更新 | 优化的升级/更新流程 | 增强的升级/更新管道缩短了执行时间,最大限度地减少了维护窗口,提高了计划运行期间的整体系统可用性。 |
有关此版本的更多信息或帮助,请通过 iService 或云服务门户联系 InterSystems 云服务支持。
概述
本版本对存储的可扩展性和性能进行了重大改进,对所有产品的操作系统进行了重大升级,并推出了新的 FHIR 服务器默认版本。这些更新共同增强了系统的可靠性、灵活性和安全性,同时确保了平台的长期可支持性。
新功能和增强功能
|
类别 |
功能/改进 |
详细信息 |
| 存储 | 增强的 LVM 支持(条带或线性) | 增加了对 LVM 配置的支持,允许使用条带式或线性卷布局进行部署,以提高性能和灵活性。 |
| 选择使用 LVM 配置 | 客户现在可以在配置过程中选择使用基于 LVM 的存储,从而更好地控制卷管理和数据布局。 | |
| 扩大最大存储限制 | 每个部署支持的最大存储容量增至8 PB,可支持大规模数据工作负载和长期增长。 | |
| 操作系统 | Red Hat Enterprise Linux 9.6 升级 | 所有 InterSystems 云产品都从 RHEL 9.0 升级到了RHEL 9.6,提供了更好的内核性能、更强的安全性和更长的生命周期支持。 |
| FHIR 服务器 | 默认版本 2025.11.0 |
FHIR Server2025.11.0 现在是所有新部署的默认版本,在可扩展性、互操作性和数据管理方面都有改进。
有关详细信息,请参阅 FHIR Server 2025.11.0 发行说明。 |
概述
25.20.2 版扩展了全球可用性,提高了高级安全灵活性,并扩大了网络连接集成。该版本引入了对更多地区的支持、新的应用程序感知安全规则,以及针对关键 InterSystems 服务的更多连接选项。
新功能和增强功能
|
类别 |
功能/改进 |
详细信息 |
| 高级安全性 | 支持消息库规则 | 高级安全功能现在可以应用专门针对消息库的策略和规则,从而为消息存档和分析管道提供更精细的保护。 |
| 多应用规则支持 | 现在可以对规则进行配置,使其同时适用于多个应用,从而减少重复配置,简化策略管理。 | |
| 网络连接 | 支持 TGW 对等互联 | 现在支持中转网关 (TGW) 对等互联,实现了可扩展的多区域和多 VPC 连接,降低了复杂性并改进了流量控制。 |
| 支持 FHIR 服务器 | 针对 FHIR Server 的本机 Network Connect 集成,改进了路由管理、网络可见性和集成工作流。 | |
| 支持数据工作室(供应链模块) | 供应链模块增加了对 InterSystems Data Fabric Studio 的支持,实现了与客户网络拓扑的无缝集成。 |
.png)
InterSystems Ideas 门户网站上得票最多的想法-——获得 74 票——要求提供一个轻量级版本的 IRIS。虽然该平台已发展成为一个强大的数据引擎,但许多项目只需要其 SQL 数据库功能。本文演示了如何构建一个非官方的、紧凑的 IRIS 社区版镜像,该镜像只关注核心数据库功能,将镜像大小缩小了 80% 以上。
本项目生成的是 InterSystems IRIS Community Edition 的非官方实验镜像。
虽然 IRIS 目前包含丰富的互操作性、分析、机器学习、系统管理等功能,但许多项目只需要其核心 SQL 功能。官方社区版 Docker 镜像约为
IRIS Light 可将其减少到
因此适用于