Encontrar

記事
· 2025年11月6日 5m read

Création d'un référentiel vectoriel FHIR avec InterSystems IRIS et Python via le module IRIStool

Introduction

Dans mon article précédent, j'ai présenté le module IRIStool, qui intègre de manière transparente la bibliothèque pandas pour Python à la base de données IRIS. Je vais maintenant vous expliquer comment utiliser IRIStool pour exploiter InterSystems IRIS comme base pour une recherche sémantique intelligente dans les données de soins de santé au format FHIR.

Cet article décrit ce que j'ai fait pour créer une base de données pour mon autre projet, FHIR Data Explorer. Les deux projets sont candidats au concours InterSystems actuel, alors n'hésitez pas à voter pour eux si vous les trouvez utiles.

Ils sont disponibles sur Open Exchange:

Dans cet article, nous aborderons les sujets suivants:

  • Connexion à la base de données InterSystems IRIS via Python
  • Création d'un schéma de base de données compatible FHIR
  • Importation de données FHIR au moyen d'intégrations vectorielles pour la recherche sémantique

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

FHIR 环境设置指南

我很清楚对于那些完全不熟悉 VS Code、Git、Docker、FHIR 和其他工具的人来说,设置环境时会遇到一些困难。 所以我决定写这篇文章,详细介绍整个设置过程,以便大家能够轻松上手。

如果您能在本文最后留下评论,告诉我说明是否清楚,是否有遗漏,或者是否有其他您觉得有用的东西,我将不胜感激。

设置包括:

✅ VS Code – 代码编辑器
✅ Git – 版本控制系统
✅ Docker – 运行 IRIS for Health Community 的实例
✅ VS Code REST 客户端扩展程序 – 用于运行 FHIR API 查询
✅ Python – 用于编写基于 FHIR 的脚本
✅ Jupyter Notebook – 用于 AI 和 FHIR 任务

准备工作:确保您在系统上拥有管理员权限

除了阅读本指南,您还可以按照视频中的步骤操作:

如果您是 Windows 系统(请注意:原文是YouTube视频,请跳转至EN原帖查看)

如果您是 macOS 系统(请注意:原文是YouTube视频,请跳转至EN原帖查看)

本文结尾有一个调查,请分享您的心得,非常感谢您的反馈。

让我们开始吧!

1. 安装 Visual Studio Code (VS Code)

VS Code 是用于开发的主要编辑器。

Windows 和 macOS

  1. 前往 VS Code 下载页面:https://code.visualstudio.com/
  2. 下载适合您的操作系统的安装程序:
    • Windows:.exe 文件
    • macOS:.dmg 文件
  3. 运行安装程序并按照提示操作。
  4. (仅限 Windows):安装过程中,勾选“添加到 PATH(Add to PATH)”。
  5. 验证安装:
  • 打开终端(命令提示符、PowerShell 或 macOS 终端)
  • 运行:
code --version
  • 您应该会看到版本号。

2. 安装 Git

Git 用于版本控制、克隆和管理代码仓库。

Windows

  1. 从以下网址下载最新版本:https://git-scm.com/downloads
  2. 运行安装程序:
    • 选择“从 Windows 命令提示符中使用 Git (Use Git from the Windows Command Prompt)”。
    • 保持默认设置并完成安装。
  3. 验证安装:
git --version

macOS

  1. 打开终端并运行:
git --version

如果未安装 Git,macOS 会提示您安装命令行工具。 按照说明操作。

3. 安装 Docker

运行 InterSystems IRIS for Health Community 需要 Docker。

Windows

1.    从以下网址下载 Docker Desktop:https://www.docker.com/products/docker-desktop
2.    运行安装程序并按照设置进行操作。
3.    安装后重启计算机。
4.    启用 WSL 2 后端(如果出现提示)。
5.    验证安装

请注意:安装 Docker 需要您计算机的管理员权限,并且至少需要重启一次

macOS

1.    从以下网址下载 Docker Desktop for Mac:https://www.docker.com/products/docker-desktop
2.    将 Docker.app 拖动到“应用程序”文件夹进行安装。
3.    从“应用程序”菜单中打开 Docker。

为了确保 Docker Desktop 引擎在 Windows 或 macOS 上运行,请执行以下步骤:

启动 Docker Desktop

Windows:从“开始”菜单中打开 Docker Desktop。 Docker 鲸鱼图标应该出现在您的系统托盘中。

Mac:从“应用程序”文件夹启动 Docker Desktop。 运行后,您将在菜单栏中看到 Docker 鲸鱼图标。

等待初始化

启动 Docker Desktop 后,引擎可能需要一点时间才能启动。 查找指示 Docker“正在运行(running)”或“已启动(started)”的状态消息。

通过终端/命令提示符进行验证:

打开终端(或 Windows 上的命令提示符/PowerShell)并运行:

docker --version

docker info

问题排查

如果引擎未运行,尝试重启 Docker Desktop 或检查 Docker Desktop UI 中是否有任何错误消息。此外,确保您的系统符合 Docker Desktop 的要求。 当您尝试在未运行 Docker Desktop 的情况下构建 Docker 镜像时,您可能会看到一些令人困惑的错误消息。

4. 构建 IRIS for Health 镜像并使用 Docker 运行该镜像

在启动运行 IRIS for Health Community(包括我们的 FHIR 服务器)的 Docker 容器之前,我们必须构建该容器。

  1. FHIR Repository克隆到文件系统上一个方便的目录中。 在 VS Code 中打开一个终端,使用以下命令克隆此库:
    git clone https://github.com/pjamiesointersystems/Dockerfhir.git
     
  2. 导航到该目录并在 VS Code 中打开文件夹。 按照 readme 文件中的说明来构建和运行容器。 关键的一步是确保基础仓库在您的 Docker 商店中可用。 您可以在 VS Code 终端上使用以下命令执行此操作:
    docker pull containers.intersystems.com/intersystems/irishealth-community:latest-em
    您应该会在几分钟后看到确认信息。
  3. 导航到 VS Code 中的目录,在那里可以看到文件 docker-compose.yaml,然后发出命令:
    docker-compose build 
    这将启动构建过程,此过程最长可能需要 10 分钟,在此期间将构建完整的 FHIR Repository并加载样本患者。
  4. 构建过程完成后,使用以下命令启动容器
    docker-compose up -d
    接着是
    docker ps
    您应该会看到名为 **iris-fhir** 的容器正在运行。 如果容器无法启动,请检查日志:
    docker logs iris-fhir
     

5. 安装 VS Code REST 客户端扩展程序

此扩展程序可以让您从 VS Code 发送 FHIR API 请求。

  1. 打开 VS Code。
  2. 前往“扩展程序”(Ctrl + Shift + X 或 Cmd + Shift + X(在 macOS 上))。
  3. 搜索“REST Client”。 存在多个 REST 客户端,请安装此客户端:
  4. 点击“安装(Install)”。

6. 安装 Python

与 FHIR 相关的编程任务需要使用 Python。

Windows

1.    从以下网址下载 Python:https://www.python.org/downloads/
2.    运行安装程序,并勾选“将 Python 添加到 PATH(Add Python to PATH)”。 您需要具有管理凭据才能修改路径
3.    完成安装。
4.    验证安装:

python --version

macOS

  1. 打开终端并通过 Homebrew 安装 Python:
    Brew install python
    如果您没有 Homebrew,请先安装:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
     
  2. 验证安装:
python3 --version

7. 安装 Jupyter Notebooks

Jupyter Notebooks 用于 AI 和 FHIR,以及 FHIR SQL 任务。

Windows 和 macOS

  1. 打开终端(命令提示符、PowerShell 或 macOS 终端)。
  2. 使用 pip 安装 Jupyter:
    pip install jupyter
    jupyter --version
     
  3. 运行 Jupyter Notebook:
jupyter notebook

这将在 Web 浏览器中打开 Jupyter。

8.  验证

在 shell 中导航到 docker compose 文件来运行容器。 执行命令

docker compose up -d
docker ps

访问 IRIS 管理门户:

用户名:_SYSTEM
密码:ISCDEMO

访问 FHIR API:

最终检查

运行以下命令验证所有安装:

code --version       # VS Code
git --version        # Git
docker --version     # Docker
python --version     # Python
jupyter --version    # Jupyter

如果一切正常,说明您已经成功安装上述所有软件。

问题排查

问题 解决方案
任何工具的“命令未找到(Command not found)” 确保它已添加到 PATH(如果需要,请重新安装)。
Docker 未在 Windows 上运行(Docker not running on Windows) 重启 Docker Desktop 并确保 WSL 2 后端已启用。
IRIS 容器无法启动(IRIS container fails to start) 运行 docker logs iris-fhir 检查错误。
无法访问 FHIR API (Can't access FHIR API ) 确保容器正在运行 (docker ps)。

感谢您抽出宝贵的时间! 期待看到您的评论!

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

Interoperability on Python (IoP) 简介

Interoperability on Python (IoP) 是一个概念验证项目,旨在展示与 Python 优先方式相结合时 InterSystems IRIS Interoperability Framework 的强大功能。IoP 利用Embedded Python(嵌入式 Python,InterSystems IRIS 的一个功能)使开发者能够用 Python 编写互操作性组件,从而可以与强大的 IRIS 平台无缝集成。本指南专为初学者编写,全面介绍了 IoP、其设置以及创建第一个互操作性组件的操作步骤。 阅读完本文,您将能够清楚地了解如何使用 IoP 构建可扩缩、基于 Python 的互操作性解决方案。
IoP 对于使用 InterSystems IRIS 或 IRIS for Health 的开发者特别有用,因为它简化了使用 Python 创建业务服务、业务流程和业务操作的过程。 此类方式减少了对 ObjectScript(传统的 IRIS 开发语言)的依赖,使其更便于 Python 开发者使用。


我们为什么应使用 IoP?

IoP 为开发者带来了以下优势:

  1. Python 优先开发:Python 是一种广泛使用的适合初学者的语言,具有丰富的库生态系统。 IoP 使开发者能够在 IRIS 生态系统中利用其 Python 专业知识。
  2. 简化的互操作性:IoP 将基于 ObjectScript 的复杂配置抽象化,使开发者能够更快地开发互操作性组件。
  3. 医疗应用程序:由于 IRIS for Health 对医疗标准的大力支持,IoP 特别适合用于医疗集成,例如涉及 FHIR的集成。
  4. 社区和开源:IoP 在 PyPI 和 GitHub 上托管,并具有积极的社区支持,包括像 Guillaume Rongier(InterSystems 的开发者布道者)这样的开发者的贡献。

先决条件

在深入了解 IoP 之前,请确保您拥有:

  • InterSystems IRIS 或 IRIS for Health:本地安装或运行 IRIS 的 Docker 容器(社区版对于测试来说已足够)。
  • Python 3.10 或更高版本:对于运行 IoP 及其依赖项必不可少。
  • Python 基础知识:熟悉 Python 类、函数和软件包安装。

在本教程中,我们将使用本地 IRIS 安装来创建 InterSystems IRIS 生产,该生产具有基于 Python 的业务操作,在收到请求时,它会记录“Hello World”消息。 它应展示出与 IRIS Interoperability Framework 的无缝集成。

以下步骤概述了实现这一目标所需的过程:

  • 第 1 步:设置虚拟环境
  • 第 2 步:安装 IoP 软件包
  • 第 3 步:设置 IRIS 连接的环境变量
  • 第 4 步:使用命令行界面 (CLI) 初始化 IRIS 中的 IoP 模块
  • 第 5 步:创建 Python 业务操作 – Hello World 示例
  • 第 6 步:将 IoP 组件迁移到 IRIS 中
  • 第 7 步:生产概述
  • 第 8 步:测试生产操作组件

我们先来执行第 1 步。

第 1 步:设置虚拟环境

首先,设置一个 Python 虚拟环境来隔离项目的依赖项,确保与 IoP 和 InterSystems IRIS 兼容。 虚拟环境是一个具有特定 Python 版本和项目所需软件包的自包含目录。 这种设置可以避免与其他 Python 项目发生冲突,并简化开发过程。 对于本教程,创建一个名为 IOP 的文件夹来存放项目文件。

转到 IOP 文件夹,运行以下命令来设置虚拟环境:

python -m venv .venv

此命令会在 IoP 文件夹中创建一个 .venv 目录,其中包含 Python 解释器和为 IoP 项目安装的任何软件包。

要在 Windows 上激活虚拟环境,请应用下一个命令:

.venv\Scripts\activate

 

对于 Unix 或 MacOS,请使用以下命令

source .venv/bin/activate

第 2 步:安装 IoP 软件包

激活虚拟环境后,安装 iris-pex-embedded-python 软件包(IoP 项目的核心依赖项),以实现与 InterSystems IRIS 之间基于 Python 的互操作性。 在您的终端运行以下命令:

pip install iris-pex-embedded-python

此命令会将 iris-pex-embedded-python 软件包及其依赖项从 Python Package Index (PyPI) 安装到您的虚拟环境中。 安装后,可以使用 IoP 模块创建基于 Python 的互操作性组件,例如 IoP 项目的业务操作。

 

第 3 步:设置 IRIS 连接的环境变量

要将 IoP 项目连接到 InterSystems IRIS,您需要配置环境变量以指定连接详情。 在本教程中,对于本教程,我们将使用一个名为IOP的、启用了互操作性的命名空间来运行本地IRIS实例:

如果您的系统是 Windows
  

如果您的系统是 Unix 或 MacOS

export IRISINSTALLDIR=<installation_directory>
export IRISUSERNAME=<username>
export IRISPASSWORD=<password>
export IRISNAMESPACE=<namespace>

第 4 步:使用命令行界面 (CLI) 初始化 IRIS 中的 IoP 模块

对于使用库(library)的开发者来说,iop 命令行界面 (CLI) 是一个强大的工具。 除了 --init--migrate,它还提供了可以直接从终端管理互操作性组件的命令。

一些关键命令包括:

  • iop --start:启动 settings.py 文件中定义的生产。
  • iop --stop:停止正在运行的生产。
  • iop --status:检查生产的状态。
  • iop --log:查看正在运行的组件的日志。
  • iop --init:初始化 IRIS 中的 IoP 模块。
  • iop --migrate:使用设置文件迁移生产和类。

运行以下 IoP CLI 命令,初始化 IRIS 中的 IoP 模块:

iop --init

此命令会在 InterSystems IRIS 实例中执行必要的配置,使其能够找到并使用您创建的 Python 模块。
 

在 IRIS 管理门户中(IRIS Management Portal),导航到“系统管理 > 配置 > 类(System Administration > Configuration > Classes)”。 选择 IoP 命名空间,并勾选“显示生成的条目(Show Generated Items)”复选框,以查看 IoP 生成的类,例如 PEX.MyBo。 这将确认 IoP 模块已在您的 IRIS 实例中成功注册。

  

第 5 步:创建 Python 业务操作 – Hello World 示例
 

我们来创建一个简单的“Hello World”业务操作,以了解 IoP 组件的基本结构。
这个示例将说明如何定义一个类来处理传入消息并记录响应。
为此,我们生成一个名为 hello_world 的新文件夹。

mkdir hello_world

在该文件夹中,创建一个名为 bo.py 的新文件。

您的组件的核心是继承自 BusinessOperation 的 Python 类,它会获取一条消息作为输入,并返回一条消息作为输出。 在此期间,它只是在日志中打印“Hello World”。

from iop import BusinessOperation

class MyBo(BusinessOperation):
    def on_message(self, request):
        self.log_info("Hello World")



我们来解释一下这段代码。

首先,我们从 iop 模块导入 BusinessOperation 类。

然后,我们生成一个继承自 BusinessOperation 的名为 MyBo 的类。

最后,我们覆盖 on_message 方法。 此方法会在业务操作收到消息时调用。

第 6 步:将 IoP 组件迁移到 IRIS 中

要将 IoP 组件迁移到 IRIS 中,我们需要在名为 settings.py 的 hello_world 文件夹中创建一个新文件。

此文件包含两个主要设置:

  • CLASSES:包含项目中使用的类。
  • PRODUCTIONS:包含项目中使用的生产名称。
from hello_world.bo import MyBo

CLASSES = {
    "MyIRIS.MyBo": MyBo
}

PRODUCTIONS = [
        {
            'MyIRIS.Production': {
                "@TestingEnabled": "true",
                "Item": [
                    {
                        "@Name": "Instance.Of.MyBo",
                        "@ClassName": "MyIRIS.MyBo",
                    }
                ]
            }
        } 
    ]


在此文件中,我们在 IRIS 中导入名为 MyIRIS.MyBo MyBo 类,并将其添加到 CLASSES 字典。

然后,我们将一个新生产添加到 PRODUCTIONS 列表。 此生产将保留我们名为 Instance.Of.MyBoMyBo 类实例。

    使用 iop 命令,我们可以将组件导入 IRIS。

    iop --migrate /path/to/hello_world/settings.py
    

    该命令将在IRIS中生成生产环境(配置),并将MyBo类添加到其中。


    第 7 步:生产概述

    iop --migrate 命令创建了以下生产:

    在下面,可以看到操作详细信息(%classname 是指 bo.py 文件中的类名称,%module 是指 Python 文件名,%classpaths 包含 Python 文件的路径)
     

      
    第 8 步:测试生产操作组件

    要测试生产,请选择“业务操作(Business Operation)”。然后,转到操作(Actions)选项卡,并点击测试(Test)按钮。
    选择 Ens.Request 作为请求类型,点击调用测试服务(Invoke Testing Service按钮,然后点击视觉跟踪(Visual Trace,查看详细信息:
     

     

    结语

    Interoperability on Python (IoP) 向 Python 开发者开放了 InterSystems IRIS Interoperability Framework,简化了构建强大、可扩缩集成的过程。 本指南介绍了如何安装 IoP、配置开发环境以及创建业务操作。 使用 IoP,您可以利用 Python 的简单性和 IRIS 的强大功能来连接系统。有关更多详细信息,请查看文档

    感谢阅读!
     

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

    November Article Bounty Topics

     

    Hey! November Article Bounty is live on Global Masters! 🍁🚀

    Share your expertise by writing a brand-new article on one of the topics and get 🏆 5,000 points when it’s approved! 🎉

    Here’s the list of October topics:

    1. ObjectScript Best-Practice Cheat Sheet for Everyday Coding
    2. Real-Time Analytics with InterSystems IRIS and External Tools: Designing Live Dashboards and Alerts
    3. ODBC and JDBC with InterSystems IRIS: Step-by-Step Setup for Windows, Linux & macOS
    4. Using Embedded Python in InterSystems IRIS: Real-World Scenarios
    5. From “AI-Curious” to AI-Ready: Practical Ways to Use AI with InterSystems IRIS
    6. Let Generative AI Draft Your %UnitTest Cases (Safely)
    7. Consuming External REST APIs with %Net.HttpRequest: End-to-End Examples
    8. “Caché Me If You Can”: Real-World Debugging Tales and Lessons in ObjectScript
    9. Business Process Language (BPL) That Scales: Design Patterns and Anti-Patterns
    10. Bulletproof Productions: Data Validation and Error Handling Best Practices in IRIS

    Rules to follow: 

    • ⚠️The article must follow the general Developer Community Guidelines and should not be written by AI. Submitting AI-generated articles may result in disqualification from future Article Bounty Activities.
    • Articles must be useful, practical, and not too general — generic or overly broad articles will not be accepted.
    • Article size: 400 words minimum (links and code are not counted towards the word limit).
    • The article must be about InterSystems products and services.
    • The article must be in English (including inserting code, screenshots, etc.).
    • The article must be 100% new.
    • The article cannot be a translation of an article already published in other communities.
    • The article should contain only correct and reliable information about InterSystems technology.

    Articles on the same topic but with dissimilar examples from different authors are allowed. Not a Global Masters member yet? Join here - use your InterSystems SSO credentials to log in.

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

    ¡Van subiendo los registros del webinar! Smart Supply Chain 360: Ver, Decidir, Actuar

    ¡Hola! ¿Qué tal la semana?

    Como sabéis, cerramos el año con el webinar de @Pierre-Yves Duquesnoy "Smart Supply Chain 360: Ver, Decidir, Actuar" el jueves 27 de noviembre, a las 4:00 PM (CET).

        

    ¿Y qué veréis? Pierre nos enseñará cómo InterSystems Supply Chain Orchestrator actúa como tejido conectivo inteligente entre vuestros sistemas ERP, WMS, TMS existentes, sin necesidad de "rip and replace".

    Además, veréis en acción un chatbot inteligente con acceso directo a todos vuestros datos de supply chain, que comprende vuestro modelo de datos y actúa como asistente conversacional para la toma de decisiones en tiempo real. Podéis preguntarle sobre inventarios, analiza KPIs críticos, o solicita recomendaciones prescriptivas.

    Este webinar Incluye demo técnica mostrando APIs, modelo de datos extensible y análisis prescriptivo. 

    Nos vemos muy pronto.

    🗣 PonentePierre-Yves Duquesnoy, Senior Sales Engineer en InterSystems 

    ➡️ Registro >>

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