搜索​​​​

清除过滤器
文章
Louis Lu · 一月 7, 2021

采用软件定义数据中心 (SDDC) 和超融合基础架构 (HCI) 解决方案的 InterSystems 客户需要重点关注的事项

本文介绍了 InterSystems 客户围绕 SDDC 和 HCI 解决方案的注意事项。 采用软件定义数据中心 (SDDC) 和超融合基础架构 (HCI) 解决方案的 InterSystems 客户需要重点关注的事项 越来越多的 IT 组织正在探究使用SDDC 和 HCI 解决方案的可行性。 这些解决方案看上去很有吸引力,其市场定位为跨异构数据中心和云基础设施可以使得 IT 管理更容易、投入的成本花费更少。 对于 IT 组织来说,潜在的好处是巨大的,许多 InterSystems 客户正在拥抱 SDDC、HCI 或两者兼有。 如果您正在考虑 SDDC 或 HCI 解决方案,请联系您的销售客户经理或销售工程师,安排与技术架构师的通话。 这对于确保成功非常重要。 这些解决方案具有高度的可配置性,组织可以从许多软件和硬件的组合中自由选择。 我们看到了我们的客户使用各种 SDDC 和 HCI 解决方案,通过这些经验,我们意识到,仔细考虑解决方案配置以避免风险是非常重要。 在某些情况下,有些客户的实施不符合关键事务型数据库系统所需的性能和弹性需求。 这导致了应用性能不佳和意外停机的出现。 如果客户的目标是为关键事务型数据库系统提供高弹性和低延迟的存储能力,则组件的选择和配置需要针对您的情况进行仔细考虑和规划,包括: * 选择适当的组件 * 正确配置这些组件 * 使用适当的操作步骤 SDDC 和 HCI 提供了灵活性和易管理性,它们在操作系统和物理存储层之间的管理程序层内或旁路运行。 这会增加不同程度的开销。 如果配置错误,会从根本上影响磁盘延迟,这对于应用的性能而言是灾难性的。 InterSystems IRIS、Caché 和 Ensemble 的设计注意事项 以下最低要求和设计注意事项列表基于我们对 SDDC 和 HCI 解决方案的内部测试。 请注意,这不是一个参考架构,意味着您的应用需求将根据您的实际情况和性能目标有所更改。 网络 * 每节点拥有两个或更多的 10Gb NIC 接口,专门用于存储流量。 * 本地两台无阻塞速率 10Gb 交换机,实现交换机的弹性连接。 * 当然也可以选择 25、40、50 或 100Gb 而不是 10Gb速率,将其作为对 HCI 的前瞻性投资,以满足特定基准和测量应用程序的要求。 **计算** * 至少一个六节点群集,以便在维护和故障期间提供更高的弹性和可预测的性能。 * 英特尔可扩展 Gold 或 Platinum 处理器或更高版本,2.2Ghz 或更高主频。 * 以每个 CPU 插槽 6 个 DDR4-2666 DIMM 为一组的形式安装 RAM(最少 384GB)。 存储 * 全闪存存储。 这是唯一推荐的存储选项。 InterSystems 强烈建议不要将混合或分层 HCI 存储用于生产工作负载。 * 每个物理节点至少两个磁盘组。 每个磁盘组应支持至少三个大容量驱动器。 * 独占使用写入密集型 12Gbps SAS SSD 或 NVMe SSD。 * 对于具有缓存和容量层的全闪存解决方案,建议将 NVMe 用于缓存层,将写入密集型 12Gbps SAS 用于容量层。 * 对 Linux 虚拟机使用 LVM PE 条带化,从而将 IO 分布在多个磁盘组(请联系 InterSystems 获得指南)。 * 对于 Linux 虚拟机上的所有数据库和写入映像日志 (WIJ) 文件使用异步 IO 及 rtkaio 库。 这样可以绕过文件系统缓存并降低写入延迟(请参见[文档](http://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls)或与 WRC 联系以获取有关在 Linux 上正确启用异步 IO 的帮助)。 这些最低要求建议已证明可以减轻 SDDC 和 HCI 的开销,但并不确保应用性能。 与任何新技术一样,测试您自己的应用的性能和弹性对于任何成功部署都是至关重要的。 重申一次,如果您正在考虑 SDDC 或 HCI 解决方案,请联系您的销售客户经理或销售工程师,他们会为你安排与技术架构师的通话。这对于确保成功至关重要。
文章
Michael Lei · 六月 1, 2021

使用 InterSystems IRIS 实现 Data Fabric 架构

什么是 Data Fabric? “这是一套用于在公司中实施、管控、管理和执行数据操作的硬件基础架构、软件、工具和资源,功能包括跨所有数据存储平台的数据采集、转换、存储、分发、整合、复制、可用性、安全性、保护、灾难恢复、演示、分析、保存、保留、备份、恢复、归档、召回、删除、监视和容量规划,并可使应用程序的使用满足公司的数据需求”。 (Alan McSweeney) Data Fabric 是一种可利用包括多模型数据库、Analytics、AI、ESB/SOA、微服务和 API 管理在内的所有可用资源和技术创新来获取商业价值的新型数据操作方法。 Data Fabric 原则 Alan McSweeney 列出了以下 Data Fabric 使用原则: 管控、管理和控制 - 无论数据位于何处,均可掌控数据并能够有效管理和管控数据           稳定性、可靠性和一致性 - 使用通用工具和实用工具在所有数据层之间提供稳定可靠的 Data Fabric 安全性 - 符合 Data Fabric、治理自动化、合规性和风险管理方面的各项安全标准   开放、灵活和自由选择 - 能够选择和更改数据存储、访问权限和位置 自动化 - 自动化管理和维护活动、DevOps 和 DevSecOps   性能、恢复、访问和使用 - 应用程序和用户可以在需要时、根据需求以及以适用格式访问数据 一体化 - 所有组件在所有数据层上均可互操作       Data Fabric 架构 McSweeney 设计了一幅在组织内部采用 Data Fabric 的详细概念图,如下所示: 您可以看到,需要采用某些技术才能将数据输入、处理和输出操作融合到一个流程中,进而“编织”数据并为数据使用者提供业务价值。 这些元素可以概括为下图: 数据操作位于数据接收网关 (Data Intake Gateway) 中,使用 ESB 和 API 网关技术捕获、编排、转换、丰富数据,并将数据资产整合到企业数据资产中。 借助 Analytics 和 AI 处理数据操作结果,从而为数据使用者提供数据分析。 由于数据量庞大且种类繁多,以及人们对于“黄金数据”这一“获得真理的唯一渠道”的需求,因此多模型存储库同样是一个重要角色。 InterSystems IRIS 与 Data Fabric InterSystems IRIS 是一款支持在组织内部采用 Data Fabric 架构的 Data Fabric 平台,如下文所示: Data Fabric 组件        InterSystems IRIS 组件 多功能存储库   IRIS 数据库   Java、Python、.NET 和对象脚本中受支持的 SQL Relational 对象 NoSQL 到 JSON – DocDB 可以使用 MDX 多维数据集进行分析 分片支持以支持大数据(与 MongoDB 相同) 企业缓存 – ECP 通过集成总线实现的 MDM RBAC、密码学和标签 Transanalytic 和数据湖 使用 ORM 进行对象脚本的 JDBC、ODBC 或本机 SQL 访问 通过集成总线/服务总线和 API 网关实现数据接收/网关   IRIS 互操作性    REST API 和 API 管理 数据总线 - SOA、EAI、ESB 集成和 EDI 适配器 流程自动化 - BPL 和 DTL、规则 原生集成 Java、.NET 和 C Python 和 JavaScript MFT - 托管文件传输 消息、事件和 JMS 采用 MQTT/API 的物联网 数据抽取/引入、转换和加载     分析和报告实用工具   IRIS Analytics   BI/分析和 ETL (BPL/DTL) 分级面板、分析和数据透视 SQL、MDX 和 Power BI 连接器访问 报告和嵌入式报告 UIMA - 非结构化内容分析 语义和情感分析 实时或计划分析 AutoML – IntegratedML 采用 R 或 Pyhton 的 AI/机器学习 NLP - 自然语言处理 R 、Python 和对象脚本中的统计信息 数据总线和认知流 文本分析 PMML 自适应运营分析 (AtScale) 用户门户 AI 实用工具     ## 结语 InterSystems IRIS 并非简单的数据库或互操作平台,而是帮助您实现 Data Fabric 的核心角色。 如果您使用其他公司的其他解决方案,则需要购买 4 至 7 套解决方案,但使用 InterSystems,您只需要由多模型数据库、ESB/APIM、Analytics 和 AI 组成的一套解决方案即可创建 Data Fabric。 它为您提供了价格低廉、易于使用的优势。 了解详情:
文章
Johnny Wang · 十二月 12, 2021

Ensemble 和 Caché 应该迁移至 InterSystems IRIS 的五个原因

您可能已经听说,我们目前正在为所有正在使用 Caché 和 Ensemble 的客户提供限时免费迁移到我们的下一代数据平台 InterSystems IRIS 的机会。 虽然我们依旧如往常一样全力支持那些正在使用 Caché 数据库和 Ensemble 集成引擎的客户,但我们还是认为 InterSystems IRIS 是未来的关键。它结合了 Caché 和 Ensemble 的所有功能,并添加了大量令人兴奋的强大功能,从机器学习到原生 Python。 这也正是我们为现有客户提供迁移到 InterSystems IRIS 并使用这些新功能的原因。 我们也通过就地迁移支持轻松迁移,这意味着无需数据库转换、分步迁移指南、教程等。 听起来挺有趣对吗? 以下是我针对当前 Caché 和 Ensemble 应迁移到 InterSystems IRIS 的五个主要原因。 1. 根据您的需求量身定制的工具: InterSystems IRIS 本身有标准工具,例如根据 InterSystems IRIS 开发人员量身定制的 Visual Studio Code 编辑器。InterSystems IRIS 允许您在容器中运行应用程序,在 Kubernetes 中工作,并在您选择的云中轻松部署,这对于初学者有非常大的帮助。 2. 面向 SQL 开发人员的机器学习: 我们在 InterSystems IRIS 中嵌入了 IntegratedML 功能,使 SQL 开发人员无需成为数据科学或机器学习工具方面的专家,只需要几个类似 SQL 的命令即可轻松开发机器学习模型。 最重要的是,这些功能使您能够将机器学习模型无缝嵌入到 InterSystems IRIS 应用程序中,从而将它们转换为支持机器学习的智能应用程序。 3. 使用嵌入式 Python 提高生产力: 由于我们实现了 Python 的内置服务器端支持,我们的下一代技术使应用程序开发人员的工作效率更高。所有强大的功能都可以使用 Python 或 ObjectScript 调用,并且您的 Python 代码可以与 ObjectScript 代码无缝交互。 此外,我们为大量开发语言提供广泛的客户端支持,包括 Python、Java、C# 和 Node.js 等等。 4. 为 InterSystems IRIS 准备您的应用程序: 我们已经记录了 Caché 和 Ensemble 以及 InterSystems IRIS 之间的差异。在某些情况下,您可能需要对现有应用程序进行一些调整以满足与 InterSystems IRIS 相关的要求。 或者,您也可以采用与 Caché、Ensemble 和 InterSystems IRIS 兼容的通用代码库。这种方法的好处是您可以立即开始,确保您只有一个代码库需要维护,并在执行迁移时消除任何额外的调整。 这是我们许多大型企业客户经常采用的方法。 5. 易于迁移: 将您现有的 Caché 和 Ensemble 应用程序迁移到 InterSystems IRIS 是快速、简单且经过验证的。 查看我们的“迁移到 InterSystems IRIS”操作指南,您可以从我们的全球响应中心(需要登录 WRC)下载该指南,以确保无缝迁移。 现在是最好的时间 迁移只是旅程的开始,因此为了确保您从强大的 InterSystems IRIS 功能中获得最大收益,我们创建了各种文档、视频和在线学习资源,以帮助您解锁所有这些强大的功能。 现在是迁移到 InterSystems IRIS 的最佳时机。 只需联系您的 InterSystems 销售工程师或销售总监,即可享受此限时优惠。 了解更多信息:InterSystems.com/migrate。 关于作者:Jeff Fried InterSystems 产品管理总监 Jeff Fried 是一位长期从事数据管理的,尤其热衷于帮助人们创建强大的数据驱动应用程序。 在加入 InterSystems 之前,Jeff 曾担任 BA Insight、Empirix 和 Teloquent 的 CTO,并负责 FAST Search and Transfer 和 Microsoft 的产品管理。 他在数据管理、文本分析、企业搜索和互操作性方面拥有丰富的经验。Jeff是该行业的常客和作家;拥有15项专利;并撰写了 50 多篇技术论文并合着了三本技术书籍。 查看原文
文章
Jingwei Wang · 七月 21, 2022

InterSystems SQL 的使用 - 第六部分 - SQL 数据的导入、导出

InterSystems IRIS数据平台管理门户中,有一些工具用于导入和导出数据。这些工具使用动态SQL,这意味着查询是在运行时准备和执行的。可以导入或导出的行的最大尺寸是3,641,144个字符。 你也可以使用%SQL.Import.Mgr类或LOAD DATA SQL命令导入数据,并使用%SQL.Export.Mgr类导出数据。 从文本文件中导入数据(.csv 和.txt) 你可以从一个文本文件中导入数据到一个合适的InterSystems IRIS类。当你这样做时,系统会在该类的表中创建并保存新的行。该类必须已经存在并且必须被编译。 步骤如下: 从管理门户中 选择系统资源管理器,然后选择SQL。用页面顶部的切换选项选择一个命名空间;这会显示可用的命名空间的列表。 在页面顶部,点击向导下拉列表,并选择数据导入。 在向导的第一页,首先指定外部文件的位置。对于导入文件所在的位置,点击要使用的服务器的名称。 然后输入文件的完整路径和文件名,文件可以是.csv 和 .txt格式。 然后选择你想要导入到schema的名称。 选择表名。 然后点击下一步。 在向导的第二页,选择需要导入数据的列。 然后点击下一步。 在向导的第三页,描述外部文件的格式。 在 "您的列所使用的分隔符? "中,点击与导入文件中的分隔符相对应的选项。 如果文件的第一行不包含数据,请点‘第一行是否包含列标题?’复选框。 对于字符串引号,点击表示该文件用于开始和结束字符串数据的引号定界符的选项。 对于日期格式,单击表示此文件中的日期格式的选项。 对于时间格式,点击表示此文件中的时间格式的选项。 对于时间戳格式,点击表示此文件中的时间戳格式的选项。 如果你不希望向导在导入时验证数据,请点击禁用验证复选框。 如果您不希望向导在导入时重建索引,请点击 ‘推迟 %SortBegin/%SortEnd 的索引构建?’ 复选框。如果勾选了 "延迟建立索引",向导会在将导入的数据插入到表中之前调用类的%SortBegin方法。当导入完成后,向导会调用%SortEnd方法。没有进行验证(与带有%NOCHECK的INSERT相同)。这是因为当使用%SortBegin/%SortEnd时,在SQL插入过程中不能检查索引的唯一性。 可以选择点击预览数据,看看向导将如何解析这个文件中的数据。 点击 "下一步"。 审查你的条目并点击完成。该向导显示数据导入结果对话框。 点击关闭。或者点击给定的链接,查看背景任务页面。在这两种情况下,向导会启动一个后台任务来完成导入工作。 导出数据到文本文件 你可以将一个给定类的数据导出到一个文本文件。 步骤如下: 从管理门户中 选择系统资源管理器,然后选择SQL。用页面顶部的切换选项选择一个命名空间;这将显示可用的命名空间的列表。 在页面的顶部,点击向导下拉列表,选择数据导出。 在向导的第一页。 输入你要创建的文件的完整路径和文件名,以保存导出的数据。 从下拉列表中,选择你要导出数据的命名空间、模式名称和表名称。 可以选择从字符集下拉列表中选择一个字符集;默认是设备默认值。 然后点击下一步。 在向导的第二页,选择要导出的列。然后点击下一步。 在向导的第三页,描述外部文件的格式。 在 "用什么分隔符分隔你的列?"中,单击与该文件中的分隔符相对应的选项。 如果你想把列头作为文件的第一行导出,请点击 ‘是否导出列标题?’ 复选框。 对于字符串引号,点击一个选项来表示如何在这个文件中开始和结束字符串数据。 对于日期格式,点击一个选项来表示在这个文件中使用的日期格式。 对于时间格式,点击一个选项来指示在此文件中使用的时间格式。 可以选择点击预览数据,看看结果会是什么样子。 然后点击下一步。 审查你的条目并点击完成。向导会显示 "数据导出结果 "对话框。 点击关闭。或者点击给定的链接,查看背景任务页面,向导会启动一个后台任务来完成导出工作。
公告
Tete Zhang · 二月 16, 2023

InterSystems 产品支持的平台 - 版本更新 (2023 年 2 月)

InterSystems 产品支持的平台 - 版本更新 (2023 年 2 月 我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的当前决策。(预测未来是一项棘手的工作,不应将此视为我们对未来支持平台和框架的承诺。) 我们计划大约每 3 个月发布一次此类更新,然后在一年内重新评估。如果您觉得此更新有用,请告诉我们!我们很感激您的建议。 关于更新…… IRIS 生产操作系统和 CPU 架构 红帽企业版 Linux 近期变动 IRIS 2022.1.2 添加了对RHEL 9.0的支持。 9.0 是一个操作系统主版本,将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0, 将 Python 更新到 3.9 IRIS 2022.2.0 移除了对 RHEL 7.x 的支持。 IRIS 的早期版本仍支持 RHEL 7.9。 即将发生的变化 RHEL 9.1 于 2022 年 11 月发布。Red Hat 仅在 RHEL 9.2 发布之前支持此次版本。 RHEL 9.2 计划于 2023 年第二季度末发布。 Red Hat 计划在未来4年内继续支持 9.2。 InterSystems 计划通过一项我们称为“操作系统次版本认证”的新流程,对 RHEL 9.2 上的 IRIS 进行额外测试。该流程旨在提供额外的安全性,即操作系统次版本更新不会对产品有大的影响。 RHEL 8.4 扩展维护将于 2023 年 5 月 31 日结束,这意味着 IRIS 也将在那时停止支持此次版本。 进一步阅读: RHEL 发布页面 Ubuntu 近期变动 IRIS 2022.1.1 增加了对Ubuntu 22.04的支持。 22.04 是一个操作系统主版本,将 Linux 内核更新到了 5.15,将 OpenSSL 更新到 3.0.2,将 Python 更新到 3.10.6 IRIS 2022.2.0 移除了对 Ubuntu 18.04 的支持。 IRIS 的早期版本仍然支持 Ubuntu 18.04。 IRIS 2022.1.1 及更高版本的容器都是基于 Ubuntu 22.04的。 即将发生的变化 Ubuntu 20.04.05 LTS 和 22.04.01 LTS 最近已经发布。 InterSystems 计划通过一项我们称之为“操作系统次版本认证”的新流程,在 20.04.05 LTS 和 22.04.01 LTS 上对 IRIS 进行额外测试。我们将在未来的通告中详细介绍这个新流程。 Ubuntu 的下一次重大更新定于 2024 年 4 月 进一步阅读: Ubuntu 发布页面 SUSE 操作系统 近期变动 IRIS 2022.3.0 增加了对SUSE Linux Enterprise Server 15 SP4的支持。 15 SP4 是一个操作系统主版本,将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0,将 Python 更新到 3.9 即将发生的变化 根据他们的发布节奏,我们预计 SUSE 将在第二季度末或第三季度初发布 15 SP5。在那之后我们将把此版本加入到IRIS支持的平台列表中。 延伸阅读: SUSE 生命周期 Oracle Linux 近期变动 IRIS 2022.3.0 添加了对Oracle Linux 9的支持。 Oracle Linux 9 是跟随 RHEL 9 的操作系统主版本,因此它也将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0,将 Python 更新到 3.9 即将发生的变化 Oracle Linux 9.1 于 2023 年 1 月发布。 进一步阅读: Oracle Linux 支持政策 微软Windows 近期变动 自 IRIS 2022.1 中添加了 Windows Server 2022 以来,我们未对支持的 Windows 版本列表进行任何更改 即将发生的变化 Windows Server 2012 的扩展支持将于 2023 年 10 月结束。如果您仍在该平台上运行,现在可以开始计划迁移了。 进一步阅读: Microsoft 生命周期 AIX 近期变动 自从在 IRIS 2022.1 中添加了 AIX 7.3 并移除了 7.1 以来,我们没有对支持的 AIX 版本列表进行任何更改 即将发生的变化 InterSystems 正与 IBM 密切合作以增加对 OpenSSL 3.0 的支持。这不会包含在 IRIS 2023.1.0 中,因为 IBM 需要在未来的 TL 版本中包含该功能。好消息是 IBM 正计划在 AIX 7.2 和 7.3中支持OpenSSL 3.0。 IBM 于 12 月发布了 AIX 7.3 TL1,认证正在进行中。 下一个 TL 版本预计在 4 月发布。 进一步阅读: AIX 生命周期 容器 近期变动 我们现在正在发布 IRIS 容器的多架构描述文件(manifest)。这意味着拉取标记为2022.3.0.606.0的 IRIS 容器将为您的 CPU(Intel/AMD 或 ARM)下载正确的容器。 如果您需要为特定 CPU 拉取容器,我们为特定架构的容器制定了标签。例如, 2022.3.0.606.0-linux-amd64将拉取 Intel/AMD 容器, 2022.3.0.606.0-linux-arm64v8将拉取 ARM 容器。 即将发生的变化 我们将在今年下半年逐步淘汰 arm 的镜像(image)名称,例如iris-arm64,以进一步向多架构描述文件转移。 我们还将开始使用“-preview”标记IRIS体验版(Preview)的容器,以便于和最新的正式版本(GA Release)进行区分。 IRIS 开发操作系统和 CPU 架构 MacOS 近期变动 自从我们在 IRIS 2022.1 中迁移到 MacOS 11 以来,我们没有对支持的 MacOS 版本列表进行任何更改 即将发生的变化 我们计划在 2023 年添加对 MacOS 13 的支持,最早可能会在 IRIS 2023.1版本上添加。 CentOS 我们正在考虑取消对 CentOS/CentOS Stream 的支持。以下是我们的考虑。 Red Hat 几年来一直在运行一项开发者计划,该计划使开发人员能够获得非生产环境的免费许可证。这个项目旨在鼓励正在使用CentOS的开发者通过此项目切换到 RHEL。 CentOS Stream 现在是 RHEL 的“上游”,这意味着它具有 RHEL 不包含的缺陷和功能。它还在每天更新,这可能会给平台上的开发人员和测试人员带来不稳定性。 自从我们在 IRIS 2022.1 中添加了对 CentOS 8-Stream 的支持并移除了对 CentOS 7.9 的支持后,我们没有对支持的 CentOS 版本列表进行任何更改 Caché & Ensemble 生产操作系统和 CPU 架构 近期变动 Cache 2018.1.7 增加了对 Windows 11 的支持 InterSystems 支持的平台列表文档 InterSystems 支持的平台列表信息的最终版将发布在InterSystems 支持的平台列表文档中。 IRIS 2020.1 支持的服务器平台 IRIS 2021.1 支持的服务器平台 IRIS 2022.1 支持的服务器平台 IRIS 2022.3 支持的服务器平台 Caché & Ensemble 2018.1.7 支持的服务器平台 以上就是这一次发布的全部信息。如果您想了解更多信息,请联系我们。
公告
Claire Zheng · 九月 2, 2022

InterSystems 2022全球峰会亮点解读:Smart Data Fabric与InterSystems数据平台的超能力

2022年9月9日,我们将举办线上“InterSystems 2022全球峰会亮点解读”,点击此处参会。 亮点一:Smart Data Fabric(智能数据编织) 认识Data Fabric(数据编织):概念与应用场景 Data Fabric如何实现高质量数据驱动业务决策? InterSystems IRIS数据平台提供的Smart Data Fabric解决方案 亮点二:InterSystems IRIS数据平台的三大能力 释放数据价值:通过HL7 FHIR标准支撑CDSS应用和数据探索,使传统数据中心不再受制于特定消息格式,提升医院按需投放数据、释放数据价值的能力。 与Python数据交换:InterSystems IRIS数据平台具有5种与Pyhton数据交互方式,本次研讨会重点介绍DB-API和Embedded Python,并进行实操演示。 列存储:新增的一种数据存储方式,与传统的行存储相比,它将复杂的聚合类分析查询性能提升了一个数量级。 亮点三:HealthShare Health Connect 功能提升 通过HL7 V2 特性提升、数据转换编辑器增强、规则编辑器增强、集成产品扩展架构、接口关系图等,提高实施效率、降低实施成本、提升平台价值。
文章
Lilian Huang · 七月 31, 2023

ChatGPT 与 InterSystems FHIR SQL 数据库构建器

FHIR® SQL Builder或 Builder 是 InterSystems IRIS 医疗版数据平台 的一个组件。它是一种复杂的投射工具,用于将 InterSystems IRIS 医疗版数据平台FHIR 存储库中的数据创建为自定义的 SQL 模式,而无需将数据移动到单独的 SQL 存储库中。 Builder 专门设计用于与 InterSystems IRIS 医疗版数据平台中的 FHIR 存储库和多模型数据库配合使用。 Builder 的目标是使数据分析师和商业智能开发人员能够使用熟悉的SQL分析工具使用 FHIR,而无需学习新的查询语法。 FHIR 数据以复杂的有向图编码,无法使用标准 SQL 语法进行查询。基于图的查询语言 FHIRPath 旨在查询 FHIR 数据,但它是非关系型的。 Builder 使数据管理员能够使用表、列和索引创建其 FHIR 存储库的自定义 SQL 来投射,使数据分析师能够查询 FHIR 数据,而无需学习 FHIRPath 或 FHIR 搜索语法的复杂性。存储库将加载 FHIR 资源,您所需要做的就是配置 FHIR SQL BUILDER。对于配置,导航到http://localhost:55037/csp/fhirsql/index.csp# /有关如何进行配置的更多详细信息,请观看此教程视频 要查看配置,请导航到http://localhost:55037/csp/fhirsql/index.csp#/spec/1 现在让我们使用irisChatGPT应用程序,使用以下命令连接到终端 docker-compose exec iris iris session iris 创建 dc.irisChatGPT 类的新实例并使用 SetApiKey 方法设置 OpenAI API 密钥 set chat = ##class(dc.irisChatGPT).%New() do chat.SetAPIKey("Enter your Open API Key here") 谢谢
文章
Weiwei Gu · 八月 4, 2023

InterSystems IRIS 中创建具有超过 999 个属性的类/表

InterSystems IRIS 目前将类限制为 999 个属性。 但是,如果您需要为每个对象存储更多数据该怎么办? 本文将回答这个问题(附加了社区 Python 网关的客串以及如何将广泛的数据集传输到 Python 中)。 答案其实很简单 - InterSystems IRIS 目前将类限制为 999 个属性,但不限制 999 个基元(primitives)。 InterSystems IRIS 中的属性可以是具有 999 个属性的对象等等 - 该限制很容易被忽略。 方法1 . 每个序列属性存储 100 个属性。首先创建一个存储一百个属性的存储类。 Class Test.Serial Extends %SerialObject { Property col0; ... Property col99; } 并在您的主类中添加您需要的尽可能多的属性: Class Test.Record Extends %Persistent{Property col00 As Test.Serial; Property col01 As Test.Serial;... Property col63 As Test.Serial;} 这会立即将您的限制提高到 99900 个属性。 这种方法通过 SQL 和对象层提供对所有属性的统一访问(我们总是通过其编号来了解属性引用)。 方法2 。 一个 $lb 属性: Class Test.Record Extends %Persistent{Property col As %List;} 这种方法更简单,但不提供显式的列名称。 使用 SQL $LIST* 函数访问列表元素。 方法3 。 使用集合(列表/数组)属性。 Class Test.Record Extends %Persistent{Property col As List Of %Integer;} 此方法也不为各个值提供显式的列名称(但您真的需要它吗?)使用属性参数将属性投影为 SQL 列/表。 集合属性的文档。 方法4 。 根本不要创建属性并通过 SQL 存储过程/ %DispatchGetProperty公开它们。 Class Test.Record Extends %Persistent{ Parameter GLVN = {..GLVN("Test.Record")}; /// SELECT Test_Record.col(ID, 123) /// FROM Test.Record////// w ##class(Test.Record).col(1, )ClassMethod col(id, num) As %Decimal [ SqlProc ]{ #define GLVN(%class) ##Expression(##class(Test.Record).GLVN(%class)) quit $lg($$$GLVN("Test.Record")(id), num + 1)} /// Refer to properties as: obj.col123 Method %DispatchGetProperty(Property As %String) [ CodeMode = expression ]{..col(..%Id(), $e(Property, 4, *))} /// Get data global/// w ##class(Test.Record).GLVN("Test.Record")ClassMethod GLVN(class As %Dictionary.CacheClassname = {$classname()}) As %String{ return:'$$$comClassDefined(class) "" set strategy = $$$comClassKeyGet(class, $$$cCLASSstoragestrategy) return $$$defMemberKeyGet(class, $$$cCLASSstorage, strategy, $$$cSDEFdatalocation)} 这里的技巧是将所有内容存储在主 $lb 中,并使用未分配的Schema存储空间来存储数据。 这是一篇关于Global存储的文章。 通过这种方法,您还可以通过ExecuteGlobal方法轻松地将数据传输到社区 Python 网关的 Python 环境中。 由于结构相似,这也是导入 CSV 文件的最快方法。 结论 999 个属性限制可以在 InterSystems IRIS 中轻松扩展。 您知道存储广泛数据集的其他方法吗?如果有,请分享!
公告
Jeff Liu · 十月 18, 2023

[视频] 如何自定义 InterSystems IRIS for Health FHIR 存储库

嘿开发者, 欣赏Bilibili InterSystems 中国上的新视频: ⏯如何在 2023 年全球峰会上定制 InterSystems IRIS for Health FHIR 存储库 InterSystems IRIS for Health 不仅提供世界一流的 FHIR 存储库,还提供灵活性和可扩展性。了解自定义 FHIR 存储库的选项,并了解如何通过几个具体用例来实现它们,例如强制标识符的唯一性和引用完整性。 🗣 演讲者: @Teunis.Stolker,InterSystems 高级销售工程师 享受这个视频并继续关注更多视频! 👍
文章
Hao Ma · 七月 29, 2024

使用 GitLab 持续交付 InterSystems 解决方案 - 索引目录

转发自Eduard Lebedyu的原文 在本系列文章中,我将介绍并讨论使用 InterSystems 技术和 GitLab 进行软件开发的几种可行方法。我将涉及以下主题: 第 1 部分:Git Git 基础知识,为什么对 Git 概念的高层次理解对现代软件开发很重要、 如何使用 Git 开发软件(Git 流程) 第 2 部分:GitLab 工作流 GitLab 工作流--从创意到用户反馈的完整软件生命周期流程 持续交付(Continuous Delivery)--团队在短周期内生产软件的软件工程方法,确保软件可随时可靠发布。它旨在更快、更频繁地构建、测试和发布软件。 第 3 部分:GitLab 安装和配置 GitLab 的安装和配置 将环境连接到 GitLab 第 4 部分:CD 配置 持续交付配置 第 5 部分:为何使用容器 容器及其使用方法和原因。 第 6 部分:容器基础架构 使用容器的持续交付管道的主要组件 它们如何协同工作。 第 7 部分:使用容器的 使用容器进行持续交付配置 第 8 部分:使用 ICM 的 CD 使用 InterSystems Cloud Manager 云管理器进行持续交付配置 第 9 部分:容器架构 容器架构 第 10 部分:代码之外 配置和数据的 CI/CD 第 11 部分:互操作性 互操作性与 CI/CD I在这一系列文章中,我介绍了持续交付的一般方法。这是一个极为广泛的话题,本系列文章应更多地被视为操作建议而非定论。如果你想实现应用程序的自动化构建、测试和交付,持续交付(尤其是 GitLab)将是你的不二之选。持续交付和容器允许你根据需要定制工作流程。 期待你把这系列的都翻译出来,谢谢!
文章
Claire Zheng · 一月 4, 2023

【动画视频】InterSystems IRIS数据平台支持多少种开发语言?

多种开发技术,令开发人员随心所愿!
文章
Michael Lei · 四月 24, 2021

置顶--InterSystems 中文开发者社区精华文章集锦

欢迎大家将相关的经验在这个讨论区分享。 板块 文章列表 征文大赛作品集锦 2022年首届InterSystems 技术征文大赛集锦 2023年第二届InterSystems 技术征文大赛集锦 官方文档 我司即将推出中文官方文档门户,欢迎大家把需要的官方文档发在评论区,我们会优先发布。谢谢! IRIS 2021 最新技术文档 First Look 1 技术概要 IRIS 2021 中文文档PDF下载 InterSystems IRIS for Health 2023 英文文档PDF下载 基础知识与概念 InterSystems-常用术语 多语言字符集系列文章--第一篇 多语言字符集和相关标准简史 基础系列--第一章 SQL中使用的符号 基础系列--Object Script 基础知识(一) 基础系列--InterSystems SQL 的使用 - 第一部分 - 架构及特性介绍 基础系列--WebGateway系列(1): Web Gateway介绍 基础系列 DeepSee 的开发 - 第一部分 - Cube 基础系列--访问IRIS数据平台的四种方式 InterSystems IRIS 的面向对象数据库特性 InterSystems IRIS - 适用于实时人工智能/机器学习的多功能通用平台 使用支持SSL的ODBC连接IRIS数据库 容器中的InterSystems IRIS Docker简介 在集成产品中压缩解压文件 无代码实现SQL业务服务和业务操作 通用TCP业务服务和业务操作 通用RESTful 业务服务和业务操作 通用SQL 业务服务和业务操作 运维与常见问题 InterSystems 最佳实践系列文章 IRIS/Healthconnect-高可用机制-mirror-的配置 系统运维、管理常见问题FAQ系列 运维好文--InterSystems 数据平台互操作功能运行维护管理基础 运维好文--集成平台实例中有哪些文件在占用磁盘? 安全、等保、审计相关系列 虚拟化大型数据库 - VMware CPU 容量规划 InterSystems 数据平台的容量规划和性能系列文章 已经解决的问题清单 使用Prometheus监控Cache集群 医院信息化建设实战教程:如何在不允许使用Git的情况下自动备份代码/自动执行代码? 关于Caché中查看关键锁的几种方式 镜像备机长时间宕机的处理 如何维护变化频繁表的位图索引 将 pButtons 数据提取到 CSV 文件以便绘制图表 Yape - 另一个pButtons 提取程序(自动创建图表) 数据迁移工具: 从Postgres 到 IRIS 数据迁移工具:从MySQL 到 IRIS 开发与创新 CDC系列:使用Dejournal Filter在InterSystems IRIS/Caché上通过Mirroring实现CDC功能实操--HealthConnect中创建HTTP服务创新--基于Docker的一体化集成AI环境中部署机器学习/深度学习模型 创新--面向 Google Cloud Platform (GCP) 的 InterSystems IRIS 示例参考架构 创新--在 Windows 主机上运行的 Hyper-V Ubuntu 虚拟机中配置 Docker 使用环境 创新-- 新一代医疗数据互操作标准FHIR系列文章 FHIR创新应用示例:使用FHIR Cloud Server和IRIS for Health对妊娠糖尿病进行连续血糖监测 科研--用IRIS IntegratedML(一体化机器学习)来预测肾病的Web应用 IRIS如何进行CRUD操作 如何调用Ensemble/IRIS内置的HL7 V2 webservice - Java,PB9,Delphi7样例 IRIS与Caché的23种设计模式 10分钟快速开发一个连接到InterSystems IRIS数据库的C#应用 在IRIS中联合运用 OCR 与 NLP 技术 物联网 (IOT) 在 InterSystems IRIS 平台上的应用 现有系统通过使用FHIR适配器提供FHIR服务 SqlDbx连接IRIS攻略 使用Visual Studio Code访问 IRIS 终端 Ensemble使用sql+global实现简单分页 通过XSL自动生成消息模型 IRIS自动安装集群--manifest(安装清单) JWT - JSON Web Token Authentication介绍 如何根据ID重建索引 使用 InterSystems IRIS 实现 Data Fabric架构 在 InterSystems IRIS 中创建具有超过999个属性的类/表 FHIR相关 FHIR CDS Hooks FHIR Profile FHIR 生态 FHIR与微服务架构 NHS FHIR实践案例和经验 在InterSystems IRIS 医疗版的FHIR服务器上测试和开发SMART on FHIR应用 InterSystems IRIS 医疗版创建FHIR服务器 使用一个命令创建 InterSystems FHIR 服务器 在本地 K8s上部署一台FHIR服务器 创建FHIR REST 客户端 使用iris-fhir-client应用程序创建患者和患者观察 【视频】FHIR标准和国际上基于FHIR的互联互通实践 现有系统通过使用InterSystems FHIR 适配器提供FHIR服务 使用 Synthea 生成 FHIR测试数据 FHIR客户端使用嵌入式Python连接FHIR服务器 如何发布FHIR文档(医疗信息表、出院小结等) 借助 VS Code中的IntelliSense自动完成功能,通过使用FHIR Schema创建和验证FHIR资源 消息转换服务-轻松实现从HL7 V2 转换为 FHIR 将 ObjectScript 持久化类暴露位 FHIR代码系统和值集 本地化 Caché实现SM3密码杂凑算法 在国产系统上安装Healthconnect2021 HEALTHSHARE2018版如何实现AES(CBC)的HEX输出,并可以实现加密和解密 行业观察与洞见 精华文章--《数据二十条》的号角声 论集成标准的选择对医院信息集成平台建设的影响 医疗行业的生态创新:如何实现数据利用和应用创新 精华文章--从软件架构发展谈业务集成技术演进与展望 精华文章--漫谈应用集成的现在与未来 翻译文章:什么是智慧医院数字孪生? 医疗行业数字化转型 —谈谈微服务架构 医院数字化转型之数智底座建设思路(在陕西省数字医学数字化转型论坛上的分享) 行业前沿系列翻译文章--EPIC 电子病历系统: FHIR, API, 互操作性和资源 行业前沿--利用数据编织应对挑战,创造数据价值 医疗行业的生态创新:如何实现数据利用和应用创新 转载:Epic的Cosmos如何用去识别化的数据支持临床研究 前沿探讨--大模型GPT 对医疗行业互操作性协议的影响? 国际卫生信息互操作性标准发展简史 其他 社区文章汇总--跟着社区学习InterSystems 技术 产品对比——Gartner DBMS 魔力象限中的主要领先数据库产品功能对比 产品对比--企业软件的“大众点评”之最新Gartner 云数据管理系统对比,国内医疗信息行业主流的Hadoop(Cloudera)vs Oracle vs Sql Server vs InterSystems Cache 产品对比--Gartner Peer Insight 华山论剑之应用集成平台--InterSystems vs MS vs IBM 学习系列 IRIS/Healthconnect-高可用机制-mirror-的配置 跟版主学caché——大型史诗级免费技术培训caché百讲 git-github入门学习系列 IRIS 快速入门系列讲座 WebGateWay 学习系列 学技术、练听力,尽在InterSystems系联在线培训广播电台 Intersystems IRIS for Health 数据平台医疗版最新在线培训课程 CDC系列 ISC 中国在B站培训视频 如何在社区学习? 初学者资源库 FHIR标准和国际基于FHIR的互联互通实践 在InterSystems IRIS 中使用Python Python 和 ObjectScript 中消息响应时间的对比测试 使用Python访问 InterSystems IRIS 数据库 将Python JDBC 连接到 IRIS数据库 - 快速笔记 将Python ODBC 连接到 IRIS 数据库 - 快速笔记2 使用 pyodbc将 Python 应用程序连接到 InterSystems IRIS 使用 IRIS Native SDK for Python 遍历 IRIS Global数据结构 使用 IRIS Native SDK for Python 调用类方法 嵌入式Python 概述 使用嵌入式Python系列 使用嵌入式Python进行 Web 抓取 使用嵌入式 Python 实现 InterSystems IRIS 互操作性 使用嵌入式Python动态创建 HL7 消息 使用嵌入式Python生成数据流 使用嵌入式Python创建存储过程 InterSystems IRIS 嵌入式 Python 模板 嵌入式Python重新加载更新后的Python模块 使用嵌入式Python 访问广利门户仪表盘并在网页上显示 Caché 表数据 使用 SQLAlchemy 将表传输到IRIS 或从 IRIS中获取表 SQLAlchemy - 将Python 和 SQL 与 IRIS 数据库一起使用的最简单方法 在Python 上使用IRIS REST API 进行 SQL 迁移 使用 IRIS 和Python gTTS实现文本转化声音的 REST 服务 基于IRIS 的 Python 实践与示例 使用 IRIS 和 Python 创建聊天机器人 InterSystems IRIS 2021.2+Python 代码样例 使用嵌入式 Python 教程 基于IRIS的Python 全球疫情大数据仪表盘样例 未来智慧医院畅想--利用Python进行人脸识别和情绪感知 调研—— InterSystems 客户服务满意度调研(长期有效) 互操作系列 消息统一管理 孤立消息管理 HTTP服务 开发系统接口 IRIS 系列 2021版最新官方系列文档 权限管理 容量和性能规划 超融合规划 Web Gateway 数据同步和容灾系列 SOAP 服务 开发 ObjectScript 系列 Object & SQL 运维 系统运维常见问题 B站视频 其他Ensemble相关
文章
Nicky Zhu · 一月 8, 2021

精华--InterSystems 数据平台的容量规划和性能系列文章

# 索引 下文按顺序列出了数据平台上容量计划和性能系列中的所有帖子。 也列出了我的其他帖子。 我将随着该系列中新帖子的增加进行更新。 #### 容量计划和性能系列 通常,每个帖子的内容都建立在上一个帖子的基础上,但您也可以直接浏览感兴趣的主题。 - [第 1 部分 - 入门:收集指标。](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-–-第-1-篇) - [第 2 部分 - 研究收集的指标。](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-–-第-2篇) - [第 3 部分 - 聚焦 CPU。](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-–-第-3-篇:聚焦-cpu) - [第 4 部分 - 关注内存。](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-第-4-篇-关注内存) - [第 5 部分 - 使用 SNMP 进行监控](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-第-5-篇-使用-snmp-进行监控) - [第 6 部分 - Caché 存储 IO 配置文件。](https://cn.community.intersystems.com/post/数据平台和性能-第-6-部分-caché-存储-io-配置文件) - [第 7 部分 - ECP的性能、可伸缩性和可用性 。](https://cn.community.intersystems.com/post/数据平台和性能-第-7-部分-用于确保性能、可伸缩性和可用性的企业缓存协议) - [第 8 部分 - 超融合基础架构容量和性能计划](https://community.intersystems.com/post/intersystems-data-platforms-and-performance-%E2%80%93-part-8-hyper-converged-infrastructure-capacity) - [第 9 部分 - CachéVMware 最佳实践指南](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-–-第-9-篇-intersystems-iris-vmware-最佳实践指南) - [第 10 部分 - VM 备份和 Caché 冻结/解冻脚本](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-–-虚拟机备份和-caché-冻结解冻脚本) - [第 11 部分 - 虚拟化大型数据库 - VMware cpu 容量计划](https://cn.community.intersystems.com/post/虚拟化大型数据库-vmware-cpu-容量规划) #### 其他帖子 以下是我在社区中发布的与架构相关的帖子 - [使用内置 REST API监控 InterSystems IRIS - 使用 Prometheus 格式。](https://community.intersystems.com/post/monitoring-intersystems-iris-using-built-rest-api) - [示例:使用默认的 REST API 从 InterSystems IRIS 查看监视器指标](https://community.intersystems.com/post/example-review-monitor-metrics-intersystems-iris-using-default-rest-api) - [InterSystems 数据平台及性能 – 如何更新 pButton。](https://cn.community.intersystems.com/post/intersystems-数据平台和性能-–-如何更新-pbuttons) - [将 pButtons 数据提取到 csv 文件中以便于绘制图表。](https://cn.community.intersystems.com/post/将-pbuttons-数据提取到-csv-文件以便绘制图表) - [使用 Ansible 配置 Caché 应用程序 - 第 1 部分。](https://cn.community.intersystems.com/post/使用-ansible-预置-caché-应用程序-第-1) - [Windows、Caché 和病毒扫描程序。](https://community.intersystems.com/post/windows-cach%C3%A9-and-virus-scanners) - [ECP 魔术。](https://cn.community.intersystems.com/post/ecp-魔术) - [创建社区帖子的 Markdown 工作流程。](https://community.intersystems.com/post/markdown-workflow-creating-community-posts) - [Yape - 另一个 pButtons 提取程序(自动创建图表) ](https://cn.community.intersystems.com/post/yape-另一个-pbuttons-提取程序(自动创建图表)) - [加密一个数据库需要多久?](https://cn.community.intersystems.com/post/加密一个数据库需要多久?) - [最低限度的监控和告警解决方案](https://cn.community.intersystems.com/post/最低限度的监视和警报解决方案) - [LVM PE 条带化可最大化超融合存储吞吐量 ](https://cn.community.intersystems.com/post/lvm-pe-条带化使超聚合存储吞吐量最大化) - [使用 Yape 解包 pButton - 更新说明和快速指南](https://cn.community.intersystems.com/post/使用-yape-解包-pbuttons-更新说明和快速指南) Murray Oldfield InterSystems 技术架构师 请在社区关注@murray_oldfield 或我们中文版主
文章
Tete Zhang · 七月 4, 2023

FAQ常见问题系列--InterSystems 产品的基础故障排除

本文讨论了在使用或维护InterSystems产品中遇到问题时,试图确定问题时可能用到的思路和工具。 一般故障排除 确定问题发生的地点和时间 问题是什么时候开始的?多久发生一次? 问题首先出现在哪里? 问题在什么条件下会被触发? 审查日志中的警告、错误和警报 以下日志可能包含有关该问题的有用信息。可以尝试在以下日志中寻找问题开始前后的警告或报错。 检查 messages.log(IRIS)或者 cconsole.log(Caché and Ensemble) 通过文件系统(<install-dir>/mgr/messages.log)访问messages.log文件,或者 通过管理门户(系统操作>系统日志>Messages Log)访问文件内容 检查production事件日志 (详细信息请参见文档) 查看应用程序错误日志 (详细信息请参见文档) 查看Web Gateway/CSP Gateway日志 查看网络服务器(IIS/Apache)日志 检查实例是否可以访问足够的存储空间 检查文件系统剩余空间(推荐设置操作系统层级的存储空间低告警) 检查数据库剩余空间 通过管理门户(系统操作>数据库>Freespace View)查看数据库文件内剩余空间百分比 检查Journal日志空间 检查CPU活动 服务器的负载是否在正常范围内? 监控CPU利用率 CPU使用率是稳定的,还是有尖峰?这些尖峰是活动的增加还是减少? CPU是否经常在I/O上等待? 在安装了sysstat的系统上,可以通过iostat监控此项。 审查开放的事务和锁 是否存在开放事务的问题? 评估锁表大小。 查看messages log中是否有锁表满 LOCK TABLE FULL 的警告 检查所有进程是否按预期运行 监控总进程。 进程数是否有显著增加? 是否有任何进程被卡住,或在循环? 进程使用的内存量是否正常? 进入管理门户 > 系统操作 > 进程 > 进程ID的详细信息,以获得关于具体进程的信息。 检查镜像监视器和镜像状态监视器 监控镜像的状态。同步日志工作是否已经完成? 进入管理门户>系统操作>镜像监视器,查看镜像状态。 记录镜像成员之间的差异。 不是所有在主机上的更改都会通过镜像机制同步到备机。系统管理员需要对主备机上无法自动同步的更改进行手动更改,以及对主备机上不同步的部分做完整的记录。 确保InterSystems IRIS的许可证是有效的 监控许可证使用情况。 进入管理门户>系统操作>软件许可使用情况查看。 监控许可证的过期时间。 联系WRC 你所掌握的关于问题的任何信息都可以帮助WRC确定导致该问题的原因。以下是你可以执行的步骤,以向WRC提供尽可能多的信息。 总结问题 这个问题可以重现吗?它是否持续发生? 最近系统上是否有任何变化,可能导致了这个问题? 记录InterSystems IRIS和其操作系统的版本信息 进入管理门户>关于页面,获取完整的版本信息。 运行监控工具 运行系统诊断报告 IRIS: do ^SystemCheck Caché/Ensemble: do ^Buttons 如果系统处于挂起状态,运行IRISHung IRISHung脚本是一个操作系统工具,用于在InterSystems IRIS实例挂起时收集系统的数据。 该脚本位于install-dir\bin目录下,在Microsoft Windows 系统上名称为IRISHung.cmd,在UNIX®/Linux 系统上名称为 IRISHung.sh。 IRISHung脚本应以管理员权限运行。 如果有性能问题,运行系统性能报告 IRIS: do ^SystemPerformance Caché/Ensemble: do ^pButtons 与WRC取得联系 访问InterSystems全球响应中心(WRC)网站 (wrc.intersystems.com),或 邮件发送问题描述至support@intersystems.com,或 拨打中国区技术支持中心热线电话 400-601-9890
文章
Qiao Peng · 四月 25, 2022

InterSystems互操作进阶 - 第一篇:InterSystems流程自动化与工作流引擎

InterSystems流程自动化与工作流引擎 InterSystems工作流程引擎的主要功能 2 使用InterSystems工作流程引擎 3 场景描述 3 环境配置与测试 5 任务管理 15 任务API和自定义任务用户界面 16 展望 17 15 集成平台除了集成业务系统,打通数据与业务流程外,另一个核心的功能就是流程自动化(BPA)。 流程自动化涉及几个重要的特性: 流程建模 流程协同 决策自动化 低代码工作流程自动化 任务协同与任务管理 其中第4和5点都是和工作流程相关的。 什么是工作流程(Workflow)?它和业务流程(Business Process)有何区别?为何集成平台要涉及对工作流程的管理? 工作流程是对人工工作任务的流程及其各操作步骤之间业务规则的抽象、概括描述。所以它针对的是人工工作任务,而非业务系统的接口。业务流程与工作流不同,业务流程描述的是特定的业务在各个IT系统间和人工任务间的流程过程和业务抽象。也就是说业务流程范围比工作流程大,是包括工作流程的。 为何要在集成平台里提供工作流程建模和管理的能力?其实医院的所有业务系统都是执行人工任务的,例如医生在HIS中给患者录入诊断、下达医嘱。但并非所有的人工任务和流程在现有的业务系统中都有,例如越来越多的辅助决策系统会提供给医护人员决策建议,这些建议需要医护人员确认才能被采纳。这些辅助决策系统需要被集成平台持续集成:拿到辅助决策的上下文数据,并实时反馈决策建议给业务系统。但它的决策建议缺很难集成进业务系统的工作流程中,这涉及对业务系统的改造 – 改造现有业务系统的流程和用户界面,时间和费用成本高昂。随着辅助决策使用的范围与深度的扩大,通过改造业务系统以纳入对不断涌现的辅助决策支持内容变得越发难以为继。 工作流程引擎可以帮助解决这样的需求,快速满足业务流程优化和再造的需要,创造持续集成的价值。 InterSystems工作流程引擎的主要功能 InterSystems IRIS数据平台、Health Connect医疗集成平台和Ensemble集成平台都内建有工作流引擎。工作流程引擎具有以下功能: 任务角色和用户管理 – 对工作任务的角色定义和角色用户的管理 任务抽象与建模 – 对工作任务的上下文数据模型和任务动作的建模 任务列表 – 对任务进行管理的 任务分配 – 对工作任务进行分配与管理,例如按什么顺序分配任务?任务退回后如何重分配? 任务流程建模和自动化 – 通常工作流程是业务流程的一部分,按业务流程图建立工作流程模型,并自动化执行 任务门户 – 提供给用户的任务界面,用以查看、接受、执行或退回任务 任务API – 提供给第三方系统用以集成的任务查询、接受、执行、退回的API InterSystems数据平台提供了一个针对工作任务的标准业务操作类 -EnsLib.Workflow.Operation,将这个业务操作加入到业务流程即可。它有对应的任务请求消息 –EnsLib.Workflow.TaskRequest 任务响应消息 - EnsLib.Workflow.TaskResponse。这些类都无需修改,直接使用。 使用InterSystems工作流程引擎 场景描述 我们以一个简化的示例为例,说明如何使用工作流。这个示例不需要写代码,完全通过图形化工具和配置工具完成。场景如下: 医生通过医生站下达药嘱后,药嘱发送给药房系统。现在医院上了一套基于机器学习的药品知识库,通过患者的年龄信息、诊断和药嘱,判断药嘱是否有风险。但药房系统尚无法与药品知识库做流程集成,因此我们用InterSystems工作流来做对药剂师的药嘱风险进行提示。整体业务流程图如下: 医生站会发出HL7 V2的药嘱消息OMG_O19,药房系统也接受HL7 V2的药嘱消息OMG_O19。而药品知识库提供服务,需要的请求消息,包含患者诊断、药嘱,并返回警告级别和警告内容。 我们的用例中,医生为控制患者血压开了美托洛尔,但患者有糖尿病,美托洛尔是β受体阻滞剂药物,会影响血糖和血脂的代谢。因此药品知识库会给出药品风险提示。 环境配置 演示环境安装和配置 初始的演示环境在这里下载。 将它导入您的IRIS或HealthConnect平台,如果还没有IRIS,可以下载免费的社区版。 导入后,会看到有Demo.BP.Workflow这个非常简单的业务流程: Production中只有一个业务服务,用来通过文件接收HL7 V2消息,默认的接收文件目录是 C:\Temp\hl7v2\,处理过的HL7文件会保存在C:\Temp\hl7v2\Archive。请配置这2个目录到你本地的可用且有权限的目录。 下载包中提供了样例HL7 V2消息文件,测试时,将其拷贝到接收文件目录即可。 现在我们增加“药剂师复核”的工作任务 向Production中增加操作,弹出页面中: 类名称 选择 EnsLib.Workflow.Operation 操作名称 可以填写“药剂师” 自动创建角色 选择 是 。这样系统会自动检查任务角色名称,如果没有“药剂师”任务角色,会自动帮我们创建 修改业务流程,增加对药剂师角色的任务流程调度 将“待实现药剂师任务”的<empty>流程节点删除,并在原节点上增加“调用(<call>)”流程节点。选择目标为“药剂师”业务操作;取消选中“异步”;给它的名称设置为“提示药剂师药品风险”。 配置药剂师任务 4.1配置任务请求消息 – 应选择EnsLib.Workflow.TaskRequest。这个消息中有这些属性: %Actions:字符串类型,用来让用户执行的操作,如果有多个操作,用逗号分隔。这里我们给药剂师二个操作选项:"取消药嘱,忽略提示"。 %Subject: 字符串类型,任务的主题。今后可用于任务的分析、分配。这里我们设置为"药嘱风险处理"。 %Message:字符串类型,任务的描述。这里我们不赋值。 %Priority: 整数型,任务优先级,1为最高,默认值为3。我们将任务优先级设置为药品风险级别: context.DrugAlertLevel。 %UserName:字符串类型,用于指定任务分配到的具体用户。这里我们计划分配给角色,而不是具体的用户(药剂师),因此不用赋值。 %Title:字符串类型,任务的名称。它和主题不同,是任务的具体名称。这里我们不赋值。 %TaskHandler:字符串类型,任务句柄,设置为响应消息的类名。不用设置。 %Command: 字符串类型,用于向任务句柄传递参数。不用设置。 %FormTemplate: 字符串类型,用于设置用户自定义任务界面的CSP网页名。不用设置。 %FormFields: 字符串类型,用于设置任务用户界面的显示项目名称,多个显示项目名称间用逗号分隔。我们需要显示患者姓名、药品名称、患者诊断、药品风险级别和药品风险信息,设置为"患者姓名,药品名称,患者诊断,药品风险级别,药品风险"。 %FormValues:字符串数组类型,对应%FormFields每个显示项目的值。%FormValues的下标(Key)就是对应的%FormFields的每个显示项目的名称。 其中Key为"患者姓名"的数据从请求HL7消息的PID段的PatientName字节获取,因此值设置为request.{PIDgrp.PID:PatientName}; Key为"药品名称"的数据从上下文变量context的Msg4DrugDB属性的Drug属性中获取,因此值拖拽为context.Msg4DrugDB.Drug; Key为"患者诊断"的数据从上下文变量context的Msg4DrugDB属性的Diagnoses属性中获取,因此值拖拽为context.Msg4DrugDB.Diagnoses; Key为"药品风险级别"的数据从上下文变量context的DrugAlertLevel属性中获取,因此值拖拽为context.DrugAlertLevel; Key为"药品风险"的数据从上下文变量context的DrugAlert属性中获取,因此值拖拽为context.DrugAlert。 4.2配置任务响应消息 – 应配置为EnsLib.Workflow.TaskResponse。这个消息中有这些属性: %Action: 记录了药剂师完成任务时选择了哪个操作。我们需要将它保存到上下文中。直接拖拽callresponse的%Action到context的PharmacistDecision: %Priority:任务优先级,是从任务请求消息拷贝来的。我们无需处理它。 %UserName: 记录哪个用户执行了该任务。我们需要将它保存到上下文中。 %UserTitle:记录执行该任务的用户头衔。我们无需处理它。 %UserRanking: 记录执行该任务的用户在该角色组中的排序。我们无需处理它。 %RoleName:记录执行该任务的角色名称。我们无需处理它。 %Subject:任务的主题,是从任务请求消息拷贝来的。我们无需处理它。 %Message:任务的描述,是从任务请求消息拷贝来的。我们无需处理它。 %Actions:用来让用户执行的操作,是从任务请求消息拷贝来的。我们无需处理它。 %FormTemplate: 用户自定义任务界面的CSP网页名,是从任务请求消息拷贝来的。我们无需处理它。 %FormFields: 任务用户界面的显示项目名称,是从任务请求消息拷贝来的。我们无需处理它。 %FormValues:任务用户界面的项目值。我们无需处理它。 %Status:任务状态,用于查询任务状态。我们无需处理它。 %TaskStatus: 任务状态,用于工作流引擎分配和管理任务。我们无需处理它。 添加业务流程分支,以响应药剂师不同的任务执行结果 在“提示药剂师药品风险”流程节点后面增加对任务执行结果判断,这里需要用“分支<branch>”,而不是“if” - “分支<branch>”可以返回到任何的“标签<label>”节点。 对“分支<branch>”节点,需要设置其条件和标签,在满足条件时转到标签继续执行。因此条件设置为药剂师没有选择“取消医嘱”: context.PharmacistDecision'="取消医嘱";标签选择“药房”。 编译并启动Production 祝贺大家看到这里了,主要工作已经完成,我们没有写任何一行代码、完全通过配置,已经有了如下完整的业务流程图,保存并编译它。 启动Production。 配置工作流角色与工作流用户 启动Production后,系统会自动帮助我们创建“药剂师”工作流角色。可以到管理门户>Interoperability>管理>工作流>工作流角色 确认。 现在要增加一个工作流用户。可以使用你正在使用的IRIS账户作为药剂师用户账户。在管理门户>Interoperability>管理>工作流>工作流用户 页面中选择你的IRIS账户,我这里选择的是SuperUser;并给他一个全名,然后保存。 然后将这个工作流用户加入“药剂师”工作流角色:在工作流角色管理界面点击添加,在用户名中选中刚才创建的工作流用户,其它不用选中,点击确定。现在我们有了可用于测试的工作流用户。 测试 现在我们开始测试: 8.1 检查一下Production是否处于启动状态;然后将示例HL7 V2文件拷贝到接收HL7目录,应该看到这个文件很快就消(处)失(理)了。 8.2登录到任务门户:以药剂师用户帐号登录到管理门户>Analytics>用户门户>工作流收件箱。 可以看到有一个新的“药嘱风险处理”任务,“已分配给”字段时空的,也就是说这个给药剂师角色的人物还没有分配给任何用户。 8.3 这时,我们是看不到任务详情的,但有一个“接受”按钮。点击它就会接受该任务。当任务被接受,其他用户就看不到该任务了。 现在,就可以看到任务详情了:我们设置的任务上下文信息,例如患者姓名、药品名称、药品风险提示都可以看到了。同时,页面上面有4个按钮,其中2个“取消药嘱”、“忽略提示”是我们设置给药剂师的操作。 另外2个按钮是什么? 用户接受了、或被分配了任务,但可以点击“放弃”以退回任务,这样任务又称为“未分配”状态,其他用户就可以看到它并点击“接受”以接受任务。 “保存”是用于未完成任务,但中途需要保存信息时使用。例如任务需要用户书写记录,记录书写到一半离开去忙别的事情,可以点击“保存”以保存已经书写的内容。注意,这时任务并没有完成。 8.4 现在我们让药剂师忽略药嘱风险提示,点击“忽略提示”继续发药流程。 8.5 现在让我们回顾一下完整的业务流程: 在可视化追踪中查看刚才的业务,我们可以看到业务流程按照设计,在药品知识库有提示的情况下,启动了药剂师药嘱风险决策支持任务,并在药剂师忽略提示后,将药嘱发送给药房系统。 大家可以更改一下药剂师的决策,看看流程有什么变化。 任务管理 平台管理员可以查看、分配、重分配、修改优先级和取消任务。 以管理员身份登录到管理门户>Interoperability>管理>工作流>工作流任务,可以查看包括完成的任务在内的所有任务,并可按不同的条件排序。 如果要分配任务,在“用户名”中选择要分配给的用户; 如果要调整任务优先级,选择“优先级”; 如果要取消任务,选中“是否取消”选择框,即可取消。 另外,任务管理员可以将已取消或已完成的任务重新激活。 任务API和自定义任务用户界面 前面介绍了工作流建模、使用工作流门户管理工作任务。如何使用自己的应用或界面管理工作流任务? 有几种方法: 管理门户是网页,它可以被嵌入到其它应用中。即其它应用可以直接通过单点登录,登录到管理门户进行操作。 使用InterSystems平台的任务管理API,然后自己开发任务用户界面或直接在自己的应用中调用。 我个人推荐方法2: 社区里有一篇非常棒的文章,介绍任务管理API和如何使用这些API和Angular进行自定义的任务用户界面开发。 其中任务管理API可以在此下载 自定义任务管理界面可以在此下载 展望 现在的IT应用都是“复合应用”:当今所有应用系统建设即不是原来的纯单体应用开发项目、也不是仅与其它系统整合的集成项目,而是一个复合应用项目 – 每个新业务都需要快速开发并和别的应用集成。 InterSystems工作流引擎为人工工作流程建模提供了低代码/免代码开发的支持。同时,它也赋能复合应用开发: 使用InterSystems工作流和业务流程建模、自动化机器学习引擎或第三方机器学习引擎,可以将基于机器学习的辅助决策支持整合到业务流程中,形成决策过程闭环和机器学习优化闭环。 基于InterSystems工作流,可以将传统编码开发实现的人工工作流程开发通过低代码的业务流程建模方式实现,赋能业务团队高度参与到业务流程梳理、建模与优化中;它将业务流程逻辑与用户界面分离,从而提高业务团队参与度、降低开发成本、快速满足业务进化需求、提高架构灵活性。