文章 Shengzhi Wu · 十月 28 13m read

在线体验:http://43.139.159.100:8082/paymentguard/

——仪表盘、REST API 与背后的互操作生产全程在线,灰色地带决策由 DeepSeek 实时作出。

本文是英文参赛文章的中文版。源码:github.com/Dylan5237/payment-guard-ai。

以下是正文:


支付授权,本质上是个决策问题。

大多数支付没什么可纠结的:老客户、熟悉的金额、常用的设备,几条确定性规则微秒级就能放行或拦下。真正难的是中间那片灰色地带——新设备、不常见的国家、比平时高出一截的金额、KYC 还没过审的客户。人工分析师的时间基本都耗在这里,而这恰恰是大模型 Agent 能帮上忙的地方——前提是它手里有真工具,查得到真数据。

PaymentGuard AI 做的事就这么直接:把一个真实的 IRIS AI Hub Agent(%AI.Agent)当成一个业务操作,塞进一条普通的互操作生产里。Agent 不瞎猜——它通过 AI Hub 的 SQL 工具直接查支付平台自己的 IRIS 库,查完按严格的 JSON 格式给结论;剩下的路由、审计、算 token 成本,生产全接管。

混合决策:规则打头,Agent 收尾

每笔支付进生产后走三段:

  • 确定性规则先上。 制裁地区、黑名单、硬性限额、速率尖峰,命中即拦;完全可信的客户加小额加常用设备加本地,直接放行。
0
1 19
InterSystems开发者社区
与开发者和专家交流,提出问题、寻找答案,并分享有关 InterSystems 技术、产品和解决方案的知识。 了解更多
28,929 名开发者,社区仍在不断壮大
文章 John Pan · 十月 28 16m read

为什么同一个人有两条记录,名字却不同?当相似的记录包含相互冲突的标识符时,系统应如何处理?当关键信息缺失时,系统应给出建议,还是应向来源方索取更多证据?

这些问题促使我开发了**“患者身份冲突审查助手”**。我希望在互操作性工作流中嵌入一个人工智能代理,供人工审查并可随时暂停。该代理负责收集证据并推荐处理方案;而人工审查员则负责授权记录之间的关联。

该应用程序使用了InterSystems IRIS Community AI Hub EAP 版本 154 中的原生 ObjectScript SDK。本文描述的是 pi-review1.1.0版本(提交编号 ab53930)。 所有案例和源数据均为合成数据,与任何医院均无关联。模型使用情况来自保存的实时呼叫记录。

项目链接:GitHub 代码库·Open Exchange 应用程序 (1.1.0)·带版本号的安装指南。下文所述的实现基于已固定的 1.1.0 源代码。

从一个缺失数据案例开始

合成案例 c6 最初缺少身份标识符和出生日期。一名操作员明确启动了调查。代理读取了该案例,验证了其来源,检索了治理规则,并返回了 NEEDS_DATA。随后,生产环境通过原生 MCP 请求了数据丰富处理。

当操作员获取数据丰富结果时,服务器在更新案例前检查了收据、来源范围和版本。随后,操作员显式地启动了另一项调查

0
1 17
文章 cheng yu · 3 小时 前 6m read

本文旨在为希望在 Web 应用程序中原生使用 OAuth2 的初学者提供入门指南。

这里有一个配套的视频/演示,可能会对您有所帮助: 

您还可以使用随附的 Open Exchange 应用程序在本地重现此示例。

OAuth 2.0 作为 Web 应用程序的原生身份验证类型

OAuth(开放授权)2.0 是一种标准机制,允许一个应用程序在不共享用户名和密码的情况下调用另一个应用程序的 API。客户端无需在每次请求中发送凭据,而是发送一个访问令牌(通常位于 Authorization: Bearer ... 请求头中)。

OAuth2 侧重于授权(客户端被允许执行哪些操作)。如果您还需用户登录和身份声明,OAuth2 通常会与 OpenID Connect(OIDC)配合使用——但本文将重点讨论 OAuth2 访问令牌和作用域。

如果您想快速复习一下,这段短视频提供了一个很好的概述:《OAuth 2.0 概述》

0
0 2
文章 cheng yu · 4 小时 前 2m read

InterSystems 官方的 VS Code 扩展功能丰富,让使用 InterSystems 产品进行开发变得轻而易举。今天,我想重点介绍一些您可能忽略了的小而实用的功能。

显示所有类成员

只需点击一个按钮,即可查看当前类的所有成员,包括继承的成员。只需点击编辑器窗口右上角的类图标,就会出现一个可筛选的所有成员列表。点击其中一个成员,它就会在编辑器标签页中显示出来。

显示执行计划

在 ObjectScript 代码中使用 SQL 是充分利用 InterSystems IRIS 强大多模型功能的一种常见方式。然而,编写高性能的 SQL 查询可能颇具挑战。 正因如此,InterSystems 新增了一项功能,让您只需在编辑器标签页中单击一下,即可查看 SQL 语句的执行计划。只需点击类查询和嵌入式 SQL 语句上方的 Show Plan 按钮,代码旁边就会出现一个显示执行计划的 Web 视图。

打开 InterSystems 文档

VS Code 的一项便捷功能是允许您同时打开多个根文件夹。此外,每个文件夹中通常包含大量文件,这使得使用资源管理器界面导航到特定文件时有时会显得繁琐。 虽然 VS Code 提供了按文件名快速打开文件的命令,但文件名通常与 InterSystems 文档的名称不同(例如,User.Test.cls 的文件路径通常为 /User/Test.cls)。

0
0 3
文章 cheng yu · 4 小时 前 4m read

概述

需要通过FHIR捕获、存储和共享患者层面的质量或风险调整指标结果的组织,可以通过扩展HealthShare SDA并启用向FHIRMeasureReport资源的转换来实现。

本文介绍了如何配置 HealthShare 以支持《达芬奇风险调整(RA)实施指南》,具体方法是启用针对单个患者或成员的MeasureReport资源的存储及基于 FHIR 的交换功能。

 

此配置的效果是能够将MeasureReport 数据持久化存储在 SDA 中,并按照达芬奇 RA 配置文件的要求通过 FHIR R4 进行公开。

 

解决方案概要

该解决方案引入了一个自定义的 SDA3 容器来存储每位患者的 MeasureReport 数据,并配置 HealthShare 将该数据转换为 FHIR R4 MeasureReport 资源。

0
0 2
文章 John Pan · 8 小时 前 5m read

在构建应用时,我们可能同时使用 Supabase 和 InterSystems IRIS:前者为应用提供基于 PostgreSQL 的后端服务,后者保存现有业务系统中的数据。如何让 PostgreSQL 查询到 IRIS 中的数据,是两套系统协作时经常遇到的问题。

iris-wasm-fdw 是一个面向这一场景的实验性项目。它使用 Supabase Wrappers 的 WebAssembly 外部数据包装器机制,通过 IRIS Atelier HTTP/JSON API 执行预先配置的 SQL,并将结果映射为 PostgreSQL 外部表。

项目目前适合结果集可控的只读查询和小规模试用。本文介绍它的工作方式、基本配置以及使用时需要注意的限制。

什么是 Wasm FDW?

PostgreSQL 的外部数据包装器(Foreign Data Wrapper,简称 FDW)允许用户将外部数据源映射为外部表。应用查询外部表时,包装器负责访问数据源并返回结果。

Supabase Wrappers 为这一机制提供了 WebAssembly 支持。开发者可以构建 Wasm 组件,由 Wrappers 扩展在 PostgreSQL 中加载;组件通过宿主提供的接口访问 HTTP API,并将数据交还给 PostgreSQL。

0
0 4
文章 John Pan · 8 小时 前 1m read

在 2026.3 版本中,FHIR 管理工具提供了一种安装 FHIR 软件包的新方法。

过去,您需要手动下载 FHIR 软件包,包括了解该软件包有哪些依赖项,并下载这些依赖项(以及它们的依赖项,以此类推)。 随后,您需要将这些文件放置在服务器可访问的位置。接着,您需要按照“依赖关系树”要求的顺序,分别安装每个包。

最新版本引入了一项新选项。我将详细说明其含义和工作原理,并进行简短演示。

0
0 6
文章 cheng yu · 12 小时 前 5m read

现代平台通常将可观测性视为三类核心指标:

  • 指标
  • 日志
  • 追踪

OpenTelemetry(OTel)是生成并传输这三类信号的标准方式。本文将介绍在 Docker Compose 中运行的InterSystems IRIS的实际配置方案,其中包含完整的本地可观测性堆栈:

  • Prometheus(指标)
  • Loki(日志)
  • Tempo(跟踪,用于 Grafana 跟踪钻取)
  • Jaeger(可选,替代的追踪查看器)
  • Grafana(统一用户界面)
  • OpenTelemetry Collector

您将构建的内容

  • IRIS 向OpenTelemetry Collector发送OTLP/HTTP遥测数据
  • 收集器将数据路由至:
    • 追踪 ->Tempo(用于 Grafana)/Jaeger(备用追踪界面)
    • 指标 →Prometheus
    • 日志 ->Loki
  • Grafana 从Prometheus、Tempo、 Jaeger 和 Loki读取数据,并将所有信息集中展示在一个界面中

您可在此处下载完整的可运行 Docker Compose 示例:https://github.com/isc-jyin/iris-otel-example

先决条件

  • Docker

分步指南

1. 创建文件夹结构

otel-minimal-config/
  iris/
    cpf-merge.cpf
  configs/
    otel-collector-config.yaml
    prometheus.yaml
    tempo.yaml
    grafana/
      provisioning/
        datasources/
          datasources.yaml
  docker-compose.yaml
  README.md
  README.pdf
0
0 4
文章 cheng yu · 12 小时 前 2m read

InterSystems IRIS 和 IRIS for Health 2026.1 的新功能

InterSystems IRIS 2026.1现已发布,其中包含众多强大的增强功能,旨在帮助组织以前所未有的方式扩展其数据管理能力。 无论您是处理海量数据集的管理运营工作,还是希望优化存储成本,此版本都提供了一系列功能,旨在简化您的数据管理流程,并应对超大规模数据集带来的日益严峻的挑战。 

扩展的数据库容量

得益于扩展的块寻址机制,我们将最大数据库容量从 32 太字节 (TB) 大幅提升至令人惊叹的 8 拍字节 (8 PB,采用 8k 块),远超以往的上限。 我们采用的方法无需进行中断服务的迁移,即可将您的数据库透明地切换到新的“扩展数据库大小”格式——只需进行例行完整性检查,即可确保系统平稳运行。不过,旧版实例无法识别新的块编号方案,因此我们将此功能作为可选功能推出。更多详情请参阅发布说明。

多卷数据库

告别笨重且庞大的数据库文件。借助多卷数据库(MVDB),IRIS 会随着数据增长自动创建新的物理文件,因此您无需担心管理巨型文件或手动放置数据。 该功能无缝、透明且设计简洁,将逻辑数据库大小与物理文件限制解耦。特别是当您需要使用上述“扩展数据库大小”功能时,MVDB 是保持文件规模可控的必备功能。

0
0 6
文章 cheng yu · 12 小时 前 6m read

大家好,社区的各位。

我使用 Intersystem Caché 已有两年时间,一开始就对 Caché 提供的丰富生态系统感到兴奋。 然而,我对使用 #call 进行的调用感到失望,我也明白这在当时是一种限制。 问题在于,#call 默认返回 null,这意味着虽然执行了 AJAX 请求,但没有钩子可以获取该请求的返回值。要获取该请求的数据,唯一的方法是在服务器端使用 &js<> 构建回调函数。

最终,我创建了一个类,用于在服务器端自动处理这些回调。简而言之,该类提供了一个方法(..Async(data)),通过覆盖全局变量将数据返回给客户端。

ClassMethod Async(data As %String, callback As %String = "globalAsync" ) As %Status
{
    &js< #(globalAsync)#(#(..QuoteJS(data))#) >
    return $$$OK
}

实现这一功能后,我遇到了两个问题:首先,使用全局变量是一个错误。 其次,该全局变量每次只能被单个请求覆盖。

0
0 5
文章 cheng yu · 12 小时 前 24m read

什么是微服务?

微服务是一种架构风格,它将应用程序结构化为一组小型、自治的服务。每个组件围绕特定的业务能力进行开发,可以独立部署,通常由一个小型、专业化且自主管理的团队负责管理。(来源:https://microservices.io/)

0
0 6
公告 cheng yu · 12 小时 前

我们很高兴向大家介绍SCO Workbench——这是一个开源项目,旨在让任何人都能更轻松地了解和探索InterSystems Supply Chain Orchestrator™(SCO)。

如果您正在评估 SCO,SCO 社区版(SCO CE)为您提供了一种免费的方式,让您能够亲身体验 SCO 平台。 SCO Workbench 与 SCO CE 相辅相成,为初次接触 InterSystems 技术、希望在编写任何代码或参加正式产品培训之前了解 SCO 功能的用户提供了一个简单的入门起点。

0
0 5
文章 cheng yu · 12 小时 前 2m read

您可能已经看到了关于InterSystems Supply Chain Orchestrator™ 社区版(SCO CE)的最新公告——与 IRIS 社区版类似,此版本将允许开发人员在本地机器的容器中试用 SCO 平台。

安装

为了方便大家操作,我们整理了一个快速入门仓库: SCO 社区版安装指南
 
该仓库仅包含一个 Docker Compose 文件,该文件会拉取并运行 SCO 社区版和 WebGateway 社区版,以及 WebGateway 所需的配置文件。有关 WebGateway 的更多信息可在IRIS 文档中查阅,但 SCO CE 设置仓库提供了一个简易配置方案,便于快速启动。
 
只需克隆该设置仓库即可开始。
git clone https://github.com/intersystems-community/sco-community-setup-example.git
然后进入其根目录,并启动。
docker compose up -d
这将启动两个容器:
容器 用途 端口
sco SCO 社区版 1972
webgateway 通过Web访问管理门户和REST API 52773
数据存储在 ./external 文件夹中,因此在容器重启后数据仍会保留。若要重新开始,请删除该文件夹。

使用社区版

0
0 4
文章 cheng yu · 12 小时 前 5m read

简介
InterSystems IRIS 自适应分析(Adaptive Analytics)是一项可选扩展,它在 InterSystems IRIS 与流行的商业智能(BI)和人工智能(AI)客户端工具之间提供了一个面向业务的虚拟数据模型层。 自适应分析由 AtScale 提供支持,AtScale 的文档可通过此链接查看:https://documentation.intersystems.atscale.com

本文将介绍一些有助于数据分析的 AtScale 功能:

  1. 立方体创建
  2. Excel 可视化
  3. 并行期间
  4. 查询
  5. Snowflake
  6. 安全
  7. 聚合函数

0
0 5
InterSystems 官方 Claire Zheng · 17 小时 前

InterSystems 正在调整扩展维护(EM)版本系列的维护版本发布节奏,以更加可预测、安全且及时的方式向客户提供修复。

即日起,对于 InterSystems IRIS®、InterSystems IRIS® for Health 和 InterSystems™ Health Connect 最近的两个 EM 版本系列,客户可以预计大约每月会发布一次维护版本(具体说明见下文)。

2026 年预计发布计划

鉴于此项调整,今年预计的发布计划如下:


2027 年计划发布时间表

这一变化在明年将更为明显,届时计划每月发布一次维护版本。请注意,2025.1 版本流计划在 2027.1 发布后转为较低频次的发布节奏。

几点说明:

  • 如果某个月没有重要的修复程序准备就绪,我们将跳过该月的维护版本(MR)。
  • 若发现关键漏洞,我们可能会在当月发布多个维护版本。
  • 我们此前曾暗示2027 年将发布更多维护版本。这是对该计划的加速和优化。 

如需进一步了解 EM 和 CD 版本,请参阅我们的版本发布流程文档。

0
0 3
文章 John Pan · 十一月 2 6m read

在医院、企业和运维场景中,很多重要信息都需要及时送达相关人员:接口运行异常、系统资源告警、审批提醒、任务完成通知……这些消息通常由不同业务系统产生,但接收人员希望在一个熟悉的地方查看。

企业微信是一个自然的选择。对于已经使用 InterSystems IRIS Interoperability 的团队,如果能够直接在 Production 中配置企业微信出站组件,就可以把现有业务流程中的消息发送到员工或工作群,而不必为每个业务系统单独开发一套推送服务。

iris-wechat-gateway 就是为这个目的设计的。它提供基于 IRIS Interoperability 的企业微信出站适配器,让业务流程通过 Business Operation 发送企业微信消息。项目源码可在 GitHub 仓库查看。

项目能做什么?

当前版本支持两种企业微信消息通道:

通道 适用场景 鉴权方式
企业微信应用消息 向指定员工、部门或标签发送业务通知 CorpID、应用 Secret、AgentId
企业微信消息推送 向工作群发送告警和通知 消息推送 webhook key

两种通道都支持 text 和 markdown 消息。例如:

  • 发送接口故障或服务器磁盘空间告警;
  • 通知员工某项任务已完成;
  • 向相关部门推送业务处理结果;
  • 在运维群中集中展示监控通知。
0
0 6
问题 John Pan · 十一月 2

据我了解,HL7消息是基于服务和操作进行索引的。但是,我无法确定索引具体在何时发生,特别是针对操作而言。例如,如果一条消息被放入操作的队列中,它会被索引吗?如果操作未运行,此时它会被索引吗?

我曾看到在转换后的流程中存在已建立索引的搜索表字段,那么这些索引是在哪里生成的?

我尝试阅读了源代码,但未能找到该逻辑所在的位置。

1
0 9
文章 John Pan · 十一月 2 4m read

OcuPilot

在开发 OcuPilot(https://openexchange.intersystems.com/package/OcuPilot)——一款用于 IRIS 管理门户的人工智能副驾驶——的过程中,我为测试运行了大量短暂存在的 IRIS 容器。 这些容器将数据保存在我 Mac 上的 /tmp 目录下的文件夹中,因为那里是临时文件的存放位置。三天后,其中一个容器开始出现莫名其妙的故障:一个仍显示为已挂载的临时数据库背后实际上没有对应的文件,且向其写入数据时会失败。

我起初怀疑是 IRIS 的问题,随后又怀疑是自己的代码出了问题。但事实并非如此。这其实是 macOS 完全按照其设计原理在正常运行。

macOS 的工作原理

每天午夜,macOS 会运行一个小型清理任务,删除 /tmp 目录下超过三天无人触碰的文件。 这是 macOS 自身的一部分,对于临时文件夹来说也是合情合理的。它只检查 /tmp(实际上是 /private/tmp),且不关心文件的具体内容。

为什么 IRIS 数据库特别容易受到影响

IRIS 将您使用的数据保存在内存中,仅在发生变更时才写入数据库文件。我对此进行了测试:读取数据库(即使是全部读取),文件的时间戳也完全保持不变。 因此,对于仅被读取或完全未使用的数据库,清理任务会将其视为未被触及,三天后该文件便会消失。

0
0 8
文章 John Pan · 十一月 2 10m read

TL;DR / 简要回答

本文深入剖析了 InterSystems IRIS 的进程架构、内存结构以及 EVTW 和 SLMSPAN 等晦涩难懂的进程状态,是一份详尽的实操指南。 文章阐述了IRIS为何采用“每个任务一个进程”的模型而非多线程机制,解释了进程专用内存和符号表的工作原理,并介绍了管理员如何利用内置工具诊断和解决性能瓶颈。


本文适用对象

本指南面向管理 InterSystems IRIS 环境的数据库管理员(DBA)、系统架构师和后端性能工程师,他们需要解读低级进程状态并排查系统争用问题。
 

1. 引言:架构背后的原因

每当用户打开终端/连接会话、通过 ODBC 在 IRIS 上运行报告,或者互操作性生产环境转发 HL7 消息时,InterSystems IRIS 都会做一件许多现代平台刻意避免的事情:它将这项工作交由其自身的操作系统进程处理。 这并非从一个大型服务器进程内部的共享池中提取的线程——而是一个真正的、独立的操作系统进程,拥有自己的内存、自己的栈以及自己的生命周期。要理解IRIS为何采用这种架构,我们需要追溯到比IRIS本身更早的时期,追溯到其源头语言。

2. InterSystems IRIS 为何采用进程模型

IRIS 采用专用进程模型的关键原因在于提供强大的故障隔离并保护内存完整性。

0
0 8
文章 John Pan · 十一月 2 14m read

2019 年,我编写了iris-history-monitor,旨在以可视化方式展示系统监视器(System Monitor)记录的关于 InterSystems IRIS 实例的信息,并用更易于阅读的界面取代管理门户(Management Portal)中的仪表盘和进程列表。

虽然它曾有效运行,但已显陈旧。该工具基于一个大型网格库构建,由一组 CSP 页面组成,将每次请求的数据保存在共享全局变量中;在当前的 IRIS 环境中,其“历史”屏幕会显示为空白,却未说明原因。 本文将介绍此次重新设计:您现在所看到的界面,以及为使后端能在 IRIS 2026.1 上运行而进行的底层改动。

在 2026 年 10 月 13 日发布的 2.2.0 版本中,我还添加了可选的浏览器通知功能。现在,当您在其他界面工作时,只要相关标签页保持打开状态,监控系统就能在指标恶化时及时提醒您。

The new Overview

有哪些变化

  • 全新的三屏界面,包括“概览”、“历史”和“进程**”,这些界面以静态文件(React、TypeScript、Vite)的形式构建,由 IRIS 通过其自身的 Web 应用程序提供服务。**服务器端无需构建步骤,也无需运行其他 Web 服务器。
  • **一个带有契约的 REST API。**该接口调用一个带版本号的 API(/historymonitor/api/v1),其规范由代码库中的 OpenAPI 文档描述。
0
0 8
文章 John Pan · 十一月 2 2m read

许多数据库用户需要了解现代端点防护平台(例如 Palo Alto Cortex XDR 和 CrowdStrike Falcon)对其数据平台性能的影响。 本文所引用的研究(链接见下文)展示了在 RHEL 9.5 和 Ubuntu 24.04 版 Linux 操作系统上运行的 InterSystems IRIS 数据库,在采用这些终端防护平台时的测试结果。 该研究使用了这两款安全产品的正式版,并测量了多种数据库工作负载,包括 ObjectScript 执行、日志记录、进程创建、并发以及低级系统同步。结果表明,核心数据库操作基本未受端点防护的影响,性能差异通常在正常系统波动范围内。 测试框架旨在模拟真实的企业部署环境,并包含多次基准测试以确保结果的可靠性。总体而言,端点防护可在 InterSystems IRIS 上安全部署,且不会对正常的数据库操作产生显著影响。

这些发现表明,在类生产环境中验证端点保护部署并密切监控日志延迟、复制延迟、故障转移时间和 CPU 利用率等关键指标至关重要。 应特别关注日志路径,针对该路径进行有针对性的调优(包括在适当情况下将日志目录排除在实时文件扫描之外),可在保持安全效益的同时提升性能。部署前应建立性能基准。部署后应持续监控系统,以识别性能退化或配置问题。

0
0 6
文章 John Pan · 十一月 2 2m read

用户经常会遇到 InterSystems IRIS 与 Red Hat 的文件访问策略守护进程(fapolicyd)之间的兼容性问题,后者是一种基于可信软件强制执行执行白名单的安全机制。 完整报告(链接见下文)解释道,fapolicyd 默认信任通过 RPM 安装的软件,而 InterSystems IRIS 则是通过基于 TAR 的安装程序分发的,因此默认会被视为不可信。 因此,当 fapolicyd 以默认模式启用时,由于所需的共享库被阻止,InterSystems IRIS 将无法初始化或运行。这种情况并非 InterSystems IRIS 本身的限制,而是信任配置导致的后果。通过使用自定义规则和信任数据库条目,一种经过验证的解决方案既能确保正常运行,又能维持安全控制。

所附报告展示了在 RHEL 8 和 RHEL 10 环境中,针对 x86_64 和 ARM64 平台进行的广泛测试结果,涵盖了多个 InterSystems IRIS 版本。验证过程分为四个阶段:基线模式、宽松模式、强制模式(默认)和强制模式(受信任)。 测试结果表明,InterSystems IRIS 在“基线”和“宽松”模式下运行正常,在“强制(默认)”策略下完全无法运行,而在应用“强制(受信任)”规则后则能成功运行。

0
0 7
文章 John Pan · 十一月 2 14m read

一听到“openEHR”,你是否就感到不寒而栗?“原型”这个词是否让你起鸡皮疙瘩?

通过本文克服你的恐惧,利用 InterSystems IRIS for Health 的强大功能,轻松掌握 OpenEHR!

什么是 openEHR?

openEHR 是一项开放且与供应商无关的规范,旨在以语义丰富且长期可持续的方式表示、存储和交换临床信息。与许多互操作性标准定义固定消息结构的做法不同,openEHR 通过多层建模方法将临床知识与技术实现分离。

从本质上讲,openEHR 基于三个基本概念:

  • 参考模型(RM)
    该模型定义了健康记录中使用的核心结构,例如组合(Compositions)、条目(Entries)、观察结果(Observations)、评估(Evaluations)和操作(Actions)。参考模型(RM)刻意设计为通用且与技术无关。
  • 原型
    可机读的模型(以 ADL 表示),用于定义特定概念(如血压测量值或出院小结)的详细临床语义。原型对参考模型施加约束,并提供可重用的临床词汇。
  • 模板(OPT文件)
    基于原型构建的特化形式。模板将原型定制为适用于特定用例、系统或表单的形式(例如,生命体征模板或区域出院摘要)。模板消除了可选性,并生成系统可安全实施的操作性定义。
0
0 7
文章 John Pan · 十一月 2 6m read

向InterSystems西班牙语开发者社区的所有尊贵成员问好!

虽然我经常查阅开发者社区的内容,也偶尔在这里提问,但这将是我发表的第一篇文章,而参加第三届技术文章大赛无疑是发表首篇文章的最佳契机。

本文将探讨 InterSystems IRIS 为我们提供的各种工具,这些工具既能优化数据库,也能优化我们执行的查询,同时还将介绍新型存储和数据类型。

优化我们的 SQL 查询

为了撰写本文,我在一个 InterSystems IRIS Community 实例中搭建了一个小型示例,导入了一个 CSV 文件,其中包含 500 万条记录,这些记录模拟了多年来在不同城市进行的假想销售数据。

表结构将非常简单,但足以满足我们所需的测试。请原谅这些名称,但您也知道,没有什么比临时解决方案更持久的了。

Sales.Record

Sales.Record

月销售额 城市代码 Anyo 月份
454323 1 1995 3
... ... ... ...

竞赛.地点

城市代码 城市 自治区代码 自治区
1 巴利亚多利德 1 卡斯蒂利亚-莱昂
... ...    

我们将尝试提取像巴利亚多利德这样的城市在某一年的历史平均销售额:

让我们看看查询返回月平均销售额需要多长时间:

结果显示,返回月平均销售额耗时略超过8秒。

0
0 7