查找

記事
· 2025年11月11日 3m read

GORM 与 InterSystems IRIS 的相遇:介绍一下 gorm-iris

如果你觉得 IRIS 对 Go 的原生支持令人兴奋,那就等着看 GORM 加入后会发生什么吧。


就在最近,随着go-irisnative 的发布,我们迎来了 InterSystems IRIS 的本地 GoLang 支持这仅仅是个开始。现在,我们又推出了gorm-iris ——一个 GORM 驱动程序,旨在为您的 IRIS + Go 堆栈带来对象关系映射 (ORM) 的强大功能。

为什么选择 GORM?

GORM 是 Go 生态系统中最流行的 ORM 库之一。它使使用 Go 结构而不是编写原始 SQL 与数据库交互变得简单。通过自动迁移、关联和查询构建等功能,GORM 极大地简化了后端开发。

因此,在实现 Go 与 IRIS 的本地对话后,下一步自然是让 GORM 与 IRIS 无缝协作。这正是 gorm-iris 所要做的。


什么是 gorm-iris

gorm-iris 是在 go-irisnative 基础上为 InterSystems IRIS 定制的 GORM 驱动程序。它就像一座桥梁,支持开发人员使用熟悉的 GORM 语法和模式与 IRIS 数据库交互,而幕后的所有繁重工作都通过本地 IRIS 调用来处理。

可以将其视为两个世界中的最佳选择:

  • 通过 go-irisnative 实现本地性能和数据访问
  • 通过 GORM 实现开发人员友好的 ORM 功能

主要功能

以下是 gorm-iris 提供的功能:

✅ GORM 和 IRIS 之间的无缝集成
✅ 使用本地 Go 结构为 IRIS 数据建模
✅ 开箱即用的基本 CRUD 操作
✅ 通过 Go 界面自定义行为

当然,这一切都是开源的。


快速入门示例

想开始使用吗?这里有一个最基本的设置来演示如何工作:

package main

import (
	"fmt"
	iris "github.com/caretdev/gorm-iris"
	"gorm.io/gorm"
)

type User struct {
  ID    int
  Name  string
  Email string
}

func main() {
  dsn := "iris://_SYSTEM:SYS@localhost:1972/USER"
  db, err := gorm.Open(iris.Open(dsn), &gorm.Config{})
  if err != nil {
    panic("failed to connect to IRIS")
  }

	// Auto-migrate schema
  db.AutoMigrate(&User{})

  // Create
  db.Create(&[]User{
		{Name: "Johh", Email: "john@example.com"},
		{Name: "Johh1", Email: "john1@example.com"},
		{Name: "John2", Email: "john2@example.com"},
	})

  // Read
  var user User
  db.First(&user, "email = ?", "john1@example.com")
	fmt.Printf("Found: ID: %d; Name: %s\n", user.ID, user.Name)
}

没错,就是这样。


引擎盖下有什么?

gorm-iris 驱动程序通过 go-irisnative 将 GORM 操作转换为本地调用。这意味着你仍然可以获得直接访问 IRIS 的速度和效率,但对于日常用例来说,这只是一个更高层次的抽象。

它非常适合以下开发人员:

  • 希望使用 IRIS 作为后台构建 Go 应用程序
  • 偏好 ORM 式开发而非直接查询构建
  • 希望使用简洁、可读的 Go 代码构建原型或全面的应用程序

发展方向

这只是 0.1.1 版——我们正在积极改进功能覆盖范围、性能调优和处理更复杂的 GORM 功能。

如果您正在使用 GORM,并有反馈意见或功能需求,欢迎提出问题和建议!

👉 查看软件源: https://github.com/caretdev/gorm-iris


最终想法

通过 go-irisnative,我们为 GoLang 开发人员打开了与 InterSystems IRIS 对话的大门。通过 gorm-iris,我们邀请他们留下来共进晚餐。

这个库就是要让 IRIS 在您的 Go 开发工作流中有家的感觉。它简洁、富有表现力,并充分利用了 Go 开发人员已经喜爱的工具。

所以,来吧!试试它,构建一些很酷的东西,并让我们知道你的想法。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年11月11日 7m read

OMOP探索之旅——基于GCP医疗API的实时FHIR®到OMOP数据转换(RealTymus)

实时 FHIR® 到 OMOP 转换

OMOP 之旅的这一部分,我们在尝试挑战Scylla 之前先反思一下,InterSystems OMOP 转换是建立在批量 FHIR 导出作为源有效载荷的基础上的,我们是多么幸运。 这开启了 InterSystems OMOP 转换与多个 FHIR® 供应商的放手互操作性,这次是与谷歌云医疗 API 的 互操作性

谷歌云医疗 API FHIR® (Google Cloud Healthcare API FHIR®)导出

GCP FHIR® 数据库支持通过命令行界面(CLI)或应用程序编程接口(API)进行FHIR数据的批量导入/导出,其前提条件很简单,且相关文档极为详尽,因此我们就不让模型再针对这方面进行赘述训练了,如有兴趣,我们会附上相关链接。 本段标题中更有价值的是bulk FHIR export (批量FHIR导出)标准本身的实现。

谷歌实施 FHIR® 导出的重要区别在于:通过 Pub/Sub 发送资源变更通知,以及指定增量导出的能力。

实时?

是的!我想我会死在这把剑上的。 这不仅是我的说唱手柄,而且其机制绝对可以支持一个很好的技术论证,可以说...

"当一个新的组织被创建到 FHIR 时,我们会对其进行转换,并将其添加到 InterSystems OMOP CDM 中,与 Care_site/location 一样"。

演练

本文试图简明扼要地概括发布/子通知如何与云功能相结合,将这两种解决方案粘合在一起,并在细粒度级别上实现 OMOP 的自动摄取。

第一步:将 InterSystems OMOP 与 AWS Bucket 连接起来

这个步骤在本社区的帖子中越来越多地重复出现,因此我将以最快的速度介绍这些步骤。

  • 购买 AWS S3 存储桶
  • 启动 InterSystems OMOP,添加桶配置
  • 从 InterSystems OMOP 部署中弹出策略
  • 将策略应用到 AWS S3 存储桶

 

我不知道,这些步骤和图像在我的脑海中似乎更好用,但也许不是。 这里有文档,这里有一个更深入的方法,可以在本系列中用更好的示例来解决这个问题。

第二步:在谷歌云医疗 API 中添加发布/订阅(Pub/Sub)目标

如前所述,实现这一功能的基础是数据存储中的资源变更通知这一超级强大的功能。 您可以在对话框中的设置中找到此选项,也可以在配置后使用。 我通常喜欢选中这两个选项,以便在通知中提供尽可能多的数据。 例如,在删除时,您可以在通知中包含已删除的资源,这对于 EMPI 解决方案来说非常重要。

第三步:云功能 ⭐

云功能需要投入工作,其 SOW 看起来有点像这样。

在创建方法上监听组织类型的 FHIR 资源更改发布/子通知,并从事件触发时起增量导出数据存储。 由于导出功能仅支持 GCS 目标,因此读入创建的导出并创建 fhir 导出压缩文件,将 ndjson 文件压缩到压缩文件根目录,然后将创建的压缩文件推送到 aws bucket。

再次说明第二个让它特别出色的功能,那就是从特定日期和时间导出的功能,这意味着我们不需要导出整个数据集。 为此,我们将使用收到事件的时间,再加上一分钟左右,希望导出、导入和转换的步骤更少,当然也更及时。

 
realtimefhir2omop.py

第四步:现在正在发生什么?

为了分清发生了什么,让我们通过每一点的截图来检查实时处理情况。

创建 FHIR Organization

发布/订阅(Pub/Sub)事件已发布

 
发布/订阅 FHIR 事件

云功能从订阅中接收资源事件

云功能导出 FHIR 存储 GCS

云功能从 GCS 创建 ZIP 并推送至 AWS

InterSystems OMOP 将 FHIR 转换为 OMOP

组织可在 CDM 中作为护理站点使用

FHIR 资源是何时转换到 CDM 的?

YARN | Now. You're looking at now. Everything that happens now is happening  now. | Spaceballs (1987) | Video gifs by quotes | 1606b976 | 紗

第四步:验证乐趣

OBS 的趣味性和音频的不确定性(注意:视频来源YouTube,请移步至原帖查看)

总结

去年在MIT Grand Hack 上也做过类似的事情,使用的是相同的设计模式,但中间使用了 Questionairre/Response 资源和 Gemini。

Gemini FHIR Agent MIT Grand Hack

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
InterSystems公式
· 2025年11月11日

Notas de la versión: Servicios en la nube de InterSystems – Versión 25.22.2

Resumen

Esta versión introduce el FHIR Server 2025.10.0, que ofrece las últimas mejoras en cumplimiento de estándares y rendimiento. También mejora el proceso de actualización de Health Connect Cloud (HCC) para una mayor fiabilidad y añade nueva flexibilidad a Network Connect mediante la compatibilidad con listas de prefijos en las configuraciones de VPN.


Nuevas características y mejoras

Categoría

Característica / Mejora

Detalles

FHIR Server

Lanzamiento de FHIR Server 2025.10.0

Introduce la última versión del FHIR Server de InterSystems, con mayor escalabilidad, mejor cumplimiento con FHIR R5 y optimizaciones para el intercambio masivo de datos.

Health Connect Cloud

Mejoras en el proceso de actualización

Flujo de actualización optimizado y reforzado para implementaciones de HCC, reduciendo la duración de las ventanas de mantenimiento y mejorando la seguridad en las reversiones y la precisión de la automatización.

Network Connect

Importación de VPN estática con soporte para listas de prefijos

La tarea de importación de VPN estática ahora admite listas de prefijos de AWS, lo que simplifica la gestión de rutas y permite configuraciones de red más dinámicas y coherentes en los entornos de los clientes.


Acciones recomendadas.

 

No hay acciones recomendadas para esta actualización. 


Soporte

Para obtener asistencia o conocer más sobre estas actualizaciones, abrid un caso de soporte a través de iService o del Portal de Servicios en la Nube de InterSystems.

©2025 InterSystems Corporation. Todos los derechos reservados.

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2025年11月11日

Webinar de lanzamiento del concurso de InterSystems “Bringing Ideas to Reality” 2025

Hola comunidad,

Nos complace invitaros al próximo webinar de lanzamiento del concurso de InterSystems “Bringing Ideas to Reality”.

Durante el webinar, nuestros ponentes explorarán las Community Opportunity Ideas del Portal de Ideas de InterSystems, que son los temas de este concurso de programación. Mostrarán cómo desarrollar, crear y desplegar aplicaciones utilizando la plataforma de datos InterSystems IRIS.

Fecha y hora: lunes, 17 de noviembre – 10:30 a. m. EST | 4:30 p. m. CET

Ponentes:  
🗣 @Derek Gervais, Developer Relations Evangelist
🗣 ​​​@Evgeny Shvarov, Senior Manager of Developer and Startup Programs
🗣 @Raj Singh, Product Manager - Developer Experience

✅ Registraos para el webinar de lanzamiento hoy mismo!

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2025年11月11日

Kick-off Webinar for InterSystems "Bringing Ideas to Reality" Contest 2025

Hey Community,

We're pleased to invite everyone to the upcoming kick-off Webinar for InterSystems "Bringing Ideas to Reality" Contest!

During the webinar, our speakers will explore the Community Opportunity Ideas from the InterSystems Ideas Portal, which are the topics of this programming contest. They will show how to develop, build, and deploy applications using the InterSystems IRIS data platform.

Date & Time: Monday, November 17 – 10:30 am EST | 4:30 pm CET  

Speakers:  
🗣 @Derek Gervais, Developer Relations Evangelist
🗣 ​​​@Evgeny Shvarov, Senior Manager of Developer and Startup Programs
🗣 @Raj Singh, Product Manager - Developer Experience

✅ Register for the kick-off today!

1 Comment
ディスカッション (1)1
続けるにはログインするか新規登録を行ってください