#互操作性

0 关注者 · 104 帖子

在医疗保健领域,互操作性是指在不同信息技术系统和软件应用程序之间进行通信、数据交换以及使用交换信息的能力。

新增
公告 Claire Zheng · 八月 30


Rule Editor的用户们,我们需要你们!我们正在重新设计规则编辑器的部分功能,希望那些每天都在使用这个工具的用户能来体验一下我们的设想!👩‍💻

如果您已经试用过新的(Angular)规则编辑器,并遇到了奇怪的边际情况,或者曾疑惑“为什么它会这样工作”,现在就是您畅所欲言的好时机!🗣️

以下是新版界面的抢先预览:

如果您有兴趣体验我们的交互式原型,请通过 📧 邮件联系InteropUXFeedback@intersystems.com,告知您的意向以及本周的空闲时间。

🗨️ 告诉我们你愿意参加!
📅 请附上你本周的空闲时间
🎯 帮助打造一款你真正“想用”的工具

您回复得越早,我们能为您做的就越多,所以请尽管联系我们!

0
0 11
文章 Nicky Zhu · 八月 19 17m read

处理遗留代码时的差异与注意事项

刚开始接触 ObjectScript 时,我编写的大部分代码都遵循了 InterSystems 的现代编程模式。我使用类、方法、REST 服务、互操作性生产、JSON 对象以及 %Status 值。

与此同时,我负责维护的生产系统中,很大一部分代码采用的编写风格却截然不同。

该系统使用了例程、标签、global、缩写命令、“点-do”语法、共享局部变量以及错误处理模式——这些在基于类的 ObjectScript 普及之前就已经存在了。

起初,我曾以为这仅仅是旧语法与新语法的区别。随着时间的推移,我意识到最大的差异并非表面上的。传统的MUMPS风格代码与现代ObjectScript在变量作用域、执行层级、数据流和错误处理方面往往基于不同的假设。这种区别至关重要,因为旧代码很容易被误读。

某个例程看似未接收任何参数,却依赖于调用者创建的多个变量;某个标签在某处表现得像一个过程,在另一处却表现得像一个函数;一个点块(dot block)虽然会创建另一个执行层级,却可能看起来像缩进;一段代码在移入类后虽然能编译通过,但在运行时却可能表现得截然不同。

代码看起来依然很熟悉。语言依然是 ObjectScript。然而,它可能已经发生了变化。

本文介绍了我在处理遗留代码并将其与更现代的 ObjectScript 应用程序集成时所遇到的一些最重要的差异。

1.

0
0 34
InterSystems 官方 Claire Zheng · 八月 18

互操作性用户界面项目自 2025.1 版本以来持续推进,采纳了各位——我们的客户和合作伙伴——提出的许多建议和反馈。  我们将持续重视用户反馈,并不断优化这一重要的用户体验。在IRISIRIS for HealthHealth Connect及 Health Connect Cloud 的最新版本 2026.2 中,“模式查看器”(只读模式)现已开放选配!
注意

  • 现有用户可在现代化界面与标准界面之间切换。 
  • 所有其他互操作性界面仍保留在标准用户界面中。 
  • 随着新工作流在新用户界面中陆续推出,在相关工作持续进行期间,预计两种体验模式将同时提供。 

生产环境配置——配置任务简介
  • 改进了 用于“生产工具栏”视图与“主机工具栏”视图之间切换的 切换选项的可见性

  • 现在,即使未选择主机,主机操作也会始终显示在“主机工具栏”中。在选择主机且选项有效之前,这些操作处于禁用状态。

  • 新增了在“类别”字段中以 逗号分隔的列表形式输入多个值 的功能。

  • 新增了重命名现有类别的功能。

  • 创建新流程类时,现在可以配置新规则以自动调用源代码控制操作,从而简化类导出和源代码控制集成工作流。

DTL 编辑器——DTL 工具简介
  • 图形编辑器的顶部面板中 添加了用于独立滚动的边界

  • 新增了按字母顺序段字段路径表达式进行排序的功能。

  • 现在,只读和内部属性 在 DTL 编辑器中会显示为灰色 ,以防止出现无效的映射。

0
0 33
文章 Kelly Huang · 八月 17 12m read

我非常兴奋能继续我的“InterSystems入门指南”系列文章,今天,我们将向大家详细介绍我们最强大的互操作性功能之一。

嘿,即使您已经尝试过,我们仍计划深入探讨如何充分利用这些功能,从而进一步优化我们的生产环境。

什么是记录映射器(Record Mapper)?

简而言之,Record Mapper 是一款可将文本文件中的数据映射到生产消息,反之亦然的工具。而管理门户界面则允许您创建文本文件的可视化表示以及该数据的有效对象模型,从而将其映射到单个持久化的生产消息对象上。

因此,如果您希望将数据从 CSV 文件导入到持久化类中,可以尝试使用几个入站类来实现(通过 FTP 或文件目录……)。不过,请不要着急!我们将在适当的时候逐一讲解这些要点。


提示:本文中描述的所有示例和类均可从以下链接下载:https://github.com/KurroLopez/iris-recordmap-fordummies.git


如何开始?

让我们直奔主题,明确我们的场景吧!

我们需要导入客户信息,包括姓名、出生日期、国民身份证号码、地址、城市和国家。

打开您的 IRIS 门户,然后选择“互操作性”–“构建”–“记录映射”(Interoperability – Build – Record Maps):

使用包名和类名创建一个新的记录映射。

在本示例中,包名为 Demo.Data,类名为PersonalInfo

0
0 54
文章 Claire Zheng · 八月 12 1m read

在医疗互操作性项目中,FHIR 实施指南(IG)的创建往往繁琐且耗时。本期视频详细介绍了如何使用 FHIR Shorthand(FSH)定义配置文件、扩展、值集,再用 SUSHI 工具一键生成实施指南,大幅简化 IG 的创建流程。


您将了解到:
FSH 的核心概念:配置文件、扩展、值集、实例
在 VS Code 中用 FSH 编写规则
使用 SUSHI 验证并生成实施指南
从零创建心率恢复(Heart Rate Recovery)示例 IG

0
0 33
文章 Jeff Liu · 八月 11 10m read

借助 PollingBusinessService 提升开发者体验

4.0.0 版本中最引人注目的新增功能之一是 PollingBusinessService

在此版本之前,创建定时 Python 业务服务意味着需要 直接处理低级入站适配器模式。在 4.0.0 版本中,定时 Python 入口点可以直接编写为 PollingBusinessService, 框架会在后台自动使用默认的 IRIS 入站适配器。

以下是一个完整的小型示例:

from dataclasses import dataclass

from iop import BusinessOperation, Message, PollingBusinessService, Production, target


@dataclass
class HelloRequest(Message):
    text: str = "Hello World"


class HelloService(PollingBusinessService):
    Output = target()

    def on_poll(self):
        self.send_request_async(self.Output, HelloRequest())


class HelloOperation(BusinessOperation):
    def on_message(self, request: HelloRequest):
        self.log_info(request.text)
        return request


prod = Production("HelloWorld.Production", testing_enabled=True)
service = prod.service("HelloService", HelloService)
operation = prod.operation("HelloOperation", HelloOperation)
service.connect(HelloService.Output, operation)

PRODUCTIONS = [prod]
0
0 49
文章 Lilian Huang · 八月 6 9m read

大家好,

数据转换语言(DTL)是那种乍看之下简单得令人误判的工具之一——拖动一个源字段,将其拖放到目标字段上,就大功告成了。然而,一旦开始处理实际的集成项目,你很快就会意识到,仅靠简单的字段映射是远远不够的。 当你需要验证字段长度、清理输入字符串、从 ID 中去除不需要的字符,或者生成下游系统要求的特定格式的时间戳时,真正的挑战才刚刚开始。

在本文中,我们将超越基础知识,探讨实际集成中经常出现的四个实用 DTL 场景。每个部分都围绕一个示例 HL7 消息展开,方便您在自己的环境中跟随操作,并亲眼查看结果。

本文将涵盖的内容:

  • 在管理门户中从零开始创建 DTL。
  • 基于字段长度($Length$Extract)的条件逻辑。
  • 使用 ReplaceStr 去除和替换文本。
  • 使用链式 从患者 ID 中去除特殊字符。
  • 将 HL7 时间戳重新格式化为自定义显示格式。

先决条件

  • 配备了支持互操作性命名空间的 InterSystems IRIS 或 HealthShare。
  • 可访问管理门户。
  • 对 HL7 v2 消息结构有基本了解。

注意:虽然所有示例均使用 HL7 v2 ADT 消息,但相同的 DTL 函数同样适用于 XML、JSON 或自定义消息类。


什么是 DTL?

0
0 67
文章 Claire Zheng · 八月 6 4m read

2026 全球医疗峰会(GHS2026)将于8月7–8 日在香港会议展览中心启幕。InterSystems亚太区董事总经理卢侠亮(Luciano Brustia)受邀出席 8月7日的圆桌论坛,与全球医疗领袖共议 “AI 智慧医院的地基:数据、平台与信任”(Building the AI Hospital: Data, Platforms and Trust)。 亚太地区的医疗机构正竞相采用人工智能——然而,许多项目尚未兑现价值便已停滞。会前,我们与InterSystems 亚太区董事总经理Luciano Brustia展开对话,探讨了为何数据质量是医疗 AI 隐形的瓶颈,以及医疗机构如何加速成果落地。 以下为 InterSystems 于 GHS2026 会议手册刊载的专访原文。

0
0 45
文章 Jeff Liu · 七月 22 4m read

这一切始于我乘火车去看望父母的途中,当时我正和隔壁包厢的一位邻居聊天。像往常一样,话题转到了科技上,她抛出了一个非常具体的问题:“ChatGPT 能用来分析人类基因组吗?”我对它能否完成如此复杂的事情持高度怀疑态度。 但这个问题始终萦绕不去,深深扎根于我的脑海。等我踏进家门时,我的怀疑已经转变为一种挑战。 虽然手头没有基因组测序数据集,但我确实想看看标准的ChatGPT能否利用PyProd包从零开始构建一个可运行的互操作性生产环境。况且,这还能让我有机会参与“从构想到应用”社区赏金计划的第一轮,实现第三个创意

0
0 66
文章 Nicky Zhu · 七月 15 4m read

项目链接

概述

FHIR 患者快照代理(FHIR Patient Snapshot Agent)是一款专为 InterSystems AI 代理和 FHIR 编程竞赛开发的小型开源应用程序。

该项目实现了建议的“智能患者摘要生成器”构想:它检索所选患者的结构化 FHIR 资源,并生成一份简明扼要、针对特定角色的患者摘要。

其目的并非进行诊断或推荐治疗方案。该代理仅作为摘要生成助手,所有生成的内容都必须与源FHIR数据进行核对验证。

InterSystems IRIS for Health 的应用方式

该应用程序使用 InterSystems IRIS for Health 作为 FHIR 互操作性层。

在本地部署环境中,IRIS for Health 提供了一个 FHIR R4 API。Python 应用程序通过查询该 API 来获取与患者相关的资源,包括:

  • 患者
  • 病情
  • 用药请求
  • 过敏与不耐受
  • 观察
  • 就诊
  • 护理计划

该 Python 应用程序不会直接读取本地临床文件。

0
0 54
文章 Lilian Huang · 七月 10 8m read

大多数“AI 代理 + FHIR”项目最终都呈现出相同的架构:这边是一个 FHIR 服务器,那边是一个向量数据库,中间则是一个 Python 服务,其职责是调用嵌入 API、在两端之间转换浮点数数组,并保持两个数据存储库的同步。 三个活动组件、两次网络跳转,以及一个你从此永久拥有的嵌入式客户端。

Triage Park:我们 提交给InterSystems 编程大赛:FHIR AI Agent的参赛作品完全没有这些复杂结构。该代理从不计算嵌入向量,也从未导入过 OpenAI 嵌入向量客户端。 没有向量数据库。它将原始文本发送给 IRIS,剩下的工作由 IRIS 完成:它在服务器端计算嵌入向量,并通过针对与 FHIR 存储库位于同一数据库*中的表执行单条 VECTOR_COSINE SQL 语句来响应检索请求。

这就是 IRIS for Health 的“AI Hub”模式,一旦我采用该模式,我自己的代码中整整一层就消失了。以下是它的具体工作原理。

问题在于:分诊人员需要快速获得指导方针

Triage Park 是一款对话式分诊助手。患者描述症状(“我上楼梯时胸口发紧”),由大型语言模型(LLM)支持的助手会读取患者的真实 FHIR 病历,并生成分诊决策:自我护理 / 看全科医生 / 急诊护理 / 急诊科,同时附上依据说明。

“引用依据”(Cited rationale)是关键所在。

0
0 58
文章 Claire Zheng · 六月 29 1m read

v2026.1 刚刚正式发布,其中我最期待使用的一项功能就是DTL 说明功能。

该功能允许您选择一个数据转换,只需点击一下按钮,即可获得该转换的人类可读描述(您还可以将其作为 DTL 描述的基础)。

对于复杂的 DTL,尤其是那些并非由您亲自编写,或者虽然由您编写但已时隔许久的 DTL,该功能将帮助您快速清晰地了解其工作原理。

对于尚未使用过“安全钱包”(Security Wallet)功能 的用户(有关此功能的更多信息,请参阅这些文档这段 4 分钟视频以及这段 36 分钟视频),请注意:您需要使用该功能来配置DTL 解释器的OpenAI 许可证 API 密钥

有关此功能的更多详细信息,请参阅此处的文档

另请参阅@Aya Heshmat的帖子,其中包含一段视频(链接直接跳转至展示 DTL Explainer 的时间点),介绍了新互操作性 UI 中的所有最新功能。

此外,还可观看@Julie Ma 提供的这段更详细的视频演示与讲解。

这是将生成式人工智能(GenAI)功能整合到 InterSystems 产品中的一个示例。

0
0 62
公告 Claire Zheng · 六月 23

大家好,

现在是时候公布InterSystems开发者竞赛:面向FHIR的AI Agent”的获奖名单了! 

非常感谢我们的18位社区成员开发了

🌟20 款精彩绝伦的应用程序🌟

本次竞赛收到了令人印象深刻的参赛作品,每一件都体现了创新精神和创造性思维。面对如此众多优秀的参赛作品,评选出最佳作品确实是一项艰巨的任务。

让我们来认识一下获奖者,并了解他们的项目:

0
0 69
文章 Nicky Zhu · 六月 10 5m read

Intersystems_pyprodInterSystems Python Productions 的简称,它是一个 Python 库,使开发人员能够完全使用 Python 构建这些互操作性组件。该库设计灵活,支持混合方法:您可以将基于 Python 的新组件与现有的基于 ObjectScript 的组件无缝地混合在一起,并充分利用已建立的 IRIS 基础架构。这些 Python 组件一旦定义,就可以像其他组件一样进行管理;可以使用 IRIS 生产配置页面添加、配置和连接这些组件。


快速了解 InterSystems IRIS 生产系统

生产的关键要素

图片来自Learning Services培训材料

IRIS 生产系统通常从外部接口接收数据,通过协调的步骤进行处理,并将其传送到目的地。当信息在系统中移动时,它们会被自动持久化,从而通过 IRIS 的可视化跟踪和日志工具对整个流程进行全面跟踪。该架构依赖于某些关键要素:

  1. 业务主机:这些是核心构件--服务流程操作--它们在彼此间传递可持久化的信息。
  2. 适配器:入站和出站适配器管理与外部世界的交互,处理接收和发送数据所需的特定协议。
  3. 回调:引擎使用特定的回调方法在主机之间同步或异步地传递消息。这些回调方法遵循严格的签名,并返回一个 Status 对象,以确保执行的完整性。
0
0 203
公告 Claire Zheng · 五月 31

嗨,开发人员、

我们很高兴地宣布新一届 InterSystems 在线编程竞赛即将开始:

🏆InterSystems 开发者竞赛:面向 FHIR 的AI Agent🏆

持续时间: 2026 年 5 月 25 日至 6 月 14 日(美国东部时间)

奖金:12,000 美元

 

主题

开发一个可在互操作性 FHIR 解决方案中调用的AI Agent。 

 

实施建议任务可获得 5 个额外积分 (!) - 每个应用程序一次

  1. 智能患者摘要生成器

    1. 功能:从 FHIR 数据中创建简洁、便于临床医生使用的患者摘要,包括病情、用药、过敏症、最近就诊情况、化验和护理计划。

    2. FHIR 资源:Patient, Condition, MedicationRequest, AllergyIntolerance, Observation, Encounter, CarePlan.

    3. 平台功能:FHIR API、FHIR SQL Builder、AI Hub。

    4. 1-2 周 MVP: 挑选一名患者,调取最近的 FHIR 资源,生成:

      • "当前问题;
      • "近期变更";
      • "风险/随访项目"。
    5. 加分项为不同角色生成不同摘要:ED 医生、护理经理、患者或家庭护理人员。

0
0 169
文章 Nicky Zhu · 五月 12 10m read

RabbitMQ 是一个消息代理,它允许生产者(发送数据消息的一方)和消费者(接收数据消息的一方)建立异步、实时且高性能的海量数据流。RabbitMQ 支持 AMQP(高级消息队列协议),这是一种开放标准的应用层协议。

采用 RabbitMQ 的主要原因包括以下几点:

  • 您可以使用异步方法来提高应用程序的性能。
  • 它通过数据消息中介,让您能够解耦并减少服务、微服务和应用程序之间的依赖关系,这意味着交换数据的生产者和消费者无需互相了解。
  • 它允许在利用响应队列之后,交付(包含结果的)已发送数据的长时间运行处理。
  • 它帮助您从单体架构迁移到微服务架构,其中微服务通过 Rabbit 以解耦和异步的方式交换数据。
  • 它通过使消息能够被存储和转发,提供了可靠性和弹性。一条消息可以被投递多次,直到被处理为止。
  • 消息排队是扩展应用程序的关键。随着工作负载的增加,您只需添加更多的工作进程(worker)来更快地处理队列。
  • 它与数据流应用程序配合良好。
  • 它对物联网(IoT)应用程序有益。
  • 它是机器人(Bots)通信的必备工具。

RabbitMQ 基础概念

我们将利用温度监测器作为案例来详述 RabbitMQ 的概念:

  • Producer(生产者):发送消息的软件程序。
  • Exchange(交换机):接收来自生产者的消息,并将其路由到零个或多个队列。
  • Queue(队列):支持小型和大型二进制消息的消息存储区/缓冲区。
0
0 82
文章 Lilian Huang · 五月 6 2m read

如果您有长时间运行的报文,这里有一段简单的代码可以捕获它们。您也可以使用队列等待警报(Queue Wait Alert)来获得相同的结果,不过这段代码甚至可以捕获队列为空的单条活动消息。它还能扫描所有命名空间,且不会对生产进行修改,因此可用于调试。

Include Ensemble

Class User.LongMessagesTask Extends %SYS.Task.Definition
{

Parameter TaskName = "Long running messages";

Property LongRunningMessageThreshold As %Integer(MINVAL = 1) [ InitialExpression = 60 ];

Method OnTask() As %Status
{
	set ts = $zdatetime($NOW(0),3,1)
	set ns = ""
	while 1 {
		// Iterate namespaces
		set ns = $o($$$EnsJobMonitorRoot(ns))
		quit:ns=""
		
		set job =""
		while 1 {
			// Iterate jobs
			set job = $o($$$EnsJobMonitorRoot(ns, job))
			quit:job=""
			
			// Get business host name
			set bh = $o($$$EnsJobMonitorRoot(ns,job,""))
			
			// Get the time of the last state change
			set lastActivity = $$$EnsJobMonitorRoot(ns,job,bh,"%LastActivity")
			
			// Get active message, if any - bh can be just idling
			set active = $d(^[ns]Ens.ActiveMessage(job),messageid) // From $$$EnsActiveMessage
			if active {
				set time = $system.SQL.Functions.DATEDIFF("s", lastActivity,  ts)
				if time > ..LongRunningMessageThreshold {
					set text = $$$FormatText("Long running message %1, in ns: %2, BH: %3, processing since %4, for %5 seconds", messageid, ns, bh, lastActivity, time)
					// For debug
					// write text, !
					do ##class(%SYS.System).WriteToConsoleLog(text)
				}
			}
		}
	}
	quit $$$OK
}

}
0
0 62
文章 Jeff Liu · 四月 26 1m read

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

以下是一个快速预告:

0
0 107
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 85
InterSystems 官方 Claire Zheng · 四月 16

摘要

警报 ID

受影响的产品和版本

风险类别和评分

明确要求

IF-9262

InterSystems IRIS® for Health

InterSystems HealthConnect™

版本 
2024.1.4, 2024.1.5

系统稳定性关注度:5(高)

FHIR 和 Health 互操作性问题可能导致升级失败和意外或不良的产品行为。

问题

  • 由于在几个 FHIR 和医疗保健互操作性功能中发现了问题,受影响的 InterSystems IRIS for Health 和 Health Connect 版本正在从 WRC 分发站点删除。这不会影响同一版本的 InterSystems IRIS® 数据平台版本。我们提醒 InterSystems IRIS for Health 和 Health Connect 的所有客户,无论他们打算或实际使用该产品与否,都应遵循所附的修复步骤。
  • 稳定性问题可能会导致严重的升级失败和意外或不良的产品行为。有关稳定性问题的完整列表 ,请联系 WRC。

影响评估

尝试升级至受影响产品可能会导致升级步骤失败或产品在以下领域出现不良表现:安装(包括安装向导)、镜像(Mirroring)、FHIR 服务器、批量 FHIR(Bulk FHIR)、IHE 功能、安全角色与资源,以及医疗互操作性功能。

有关 2024.1.4 或 2024.1.5 中关注问题的详细列表,请联系 WRC。

0
0 79
文章 Kelly Huang · 四月 15 2m read

背景情况

急诊医疗服务(EMS)团队到达急诊科时,常常会遇到人口统计数据不完整或未知的病人——没有病历号(MRN),没有确认的姓名,有时甚至没有出生日期。然而,急救医疗运送记录仍然需要准确无误地记录在病历中。

为了支持安全可靠的记录,急救医疗机构、第三方集成服务和医院集成团队建立了安全接口,用于交换识别码和临床信息。当这些标识符不一致时,下游系统就无法自动发布转运记录,从而产生可避免的人工操作,并延误记录的完整性。本文概述了如何使用 FHIR Patient.Search (R4) 来填补最常见的人口统计空白并改进自动发布。

挑战

在许多 EMS 到医院的集成中,患者最初是以通用或临时标识符注册的。最终登记和任何记录合并可能要到稍后才会发生,有时是在出院后。在这些更新传播之前,EMS 患者标识符和电子病历 (EMR) 标识符可能一直不同步。

当转运记录因不匹配而无法发布时,集成通常会生成一个错误,并转到 EMR 工作队列进行人工审核。在 EMS 处理量大的情况下,队列会迅速增长。

0
0 429
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 72
文章 Nicky Zhu · 四月 10 2m read

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

常见假设

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

Excel 文件为何表现不同

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

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

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

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

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

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

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


实用的处理方法

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

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

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

下面提到几个例子。

0
0 337
文章 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 314
InterSystems 官方 Claire Zheng · 三月 29

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

版本亮点:

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

我以前可能提到过这一点:我认为可视化跟踪(Visual Traces),即包含每个步骤完整内容的序列图,是 IRIS 数据平台的一项神奇功能!以可视化跟踪的方式提供有关 API 内部工作原理的详细信息,对 IRIS 平台上的项目非常有用。当然,这适用于我们没有开发高负荷解决方案的情况,在这种情况下,我们根本没有时间保存/读取信息。对于所有其他情况,欢迎阅读本教程!

0
0 320
文章 Kelly Huang · 三月 23 6m read

供应链是指由公司业务领域及其供应商和合作伙伴(利益相关者)执行的一系列流程和活动,从原材料采购、生产到交付给最终消费者。利用 InterSystems IRIS 的协调功能,供应链管理解决方案可以更好地管理供应链:

0
0 80
文章 Lilian Huang · 三月 6 13m read

什么是 FHIR Profile?

FHIRProfile是规则和约束的集合,用于定制和完善基础快速医疗互操作性资源 (FHIR) 资源(resource。Profiling是一个重要的过程,它可以调整基础 FHIR 资源标准,以满足特定用例、地理区域、医疗机构或临床工作流程的独特要求。

基础 FHIR 规范为资源(如病人、观察或药物)提供了通用、灵活的定义,而Profiling则将这些通用资源转化为更精确的资源。这就确保了为特定社区或实施量身定制的数据交换的一致性和互操作性。

FHIR 旨在覆盖全球各种医疗保健场景。配置文件允许实施者在不丧失标准化优势的情况下调整这一通用平台。

0
0 153
文章 Jeff Liu · 二月 3 2m read

在使用InterSystems 互操作性(Iris/Health Connect/Ensemble时,配置数据通常分散在许多生产项目中:服务、流程、操作、适配器及其设置。

常见的操作或安全需求是回答以下问题:

  • 哪些接口引用了文件系统路径?
  • 目录、网络共享或绝对路径配置在哪里?
  • 我能否在所有产品中快速审核或记录这些信息?

下面的 ObjectScript 工具正是通过将选定的配置设置导出到 CSV 文件来解决这个问题的。

该脚本

  1. 循环浏览所有现有命名空间
  2. 查询所有命名空间中的所有互操作性配置项(Ens_Config.Item)
  3. 遍历每个项目的设置
  4. 提取文件系统/URL 路径(包含 :/\ 的值)
  5. 将结果写入CSV 文件,按类别分组
  6. 生成便于审计的输出,可在 Excel 中打开或与操作/安全团队共享

典型用例

当您需要时,应使用此实用程序:

  • 🔍审计整个产品的文件系统使用情况
  • 🛡审查安全风险(本地路径、网络共享、数据库连接)
  • 📄记录迁移、升级或灾难恢复规划的配置
  • 🔄比较环境(开发环境vs测试环境vs 生产环境)
  • 🧹清理遗留或未使用的路径

这对使用许多接口和适配器的多个产品的大型实例尤其有用。

0
0 99