文章 Michael Lei · 四月 3, 2023 2m read

如果您使用过 Caché Objects,你已经知道所有关于关系(一对多,父子孙继承等)......
但是您不会在文档中找到关于多对多关系的地方。

但我经常遇到 Caché 对象的新用户提出的问题:
“是否可以实现多对多关系?”答案是——当然!

如何实现取决于相关的任务:有一个比较重的和一个轻量级的解决方案。
两者的共同点是它们不能开箱即用需要添加一些代码来管理它。

让我们举一个基于 SAMPLES 命名空间的例子:

我们有 N:1 关系的情况

但是,您如何处理超过 1 个公司的员工?

重的解决方案:
您添加一个额外的持久类,与双方都有一个:多的关系。

优点:您可以添加管理信息作为有效性、各种时间戳……
以及与此“链接”相关的其他内容。
但它是一个额外的持久类,具有所有优点和缺点。所以我觉得这个很重。
该类可能如下所示:

0
0 152
文章 Michael Lei · 三月 27, 2023 11m read

好不好玩,能当真吗?


最近几个月,大型语言模型GPT正在激起一些现象。因此,上周末我不可避免地也在玩 ChatGPT,以探究它是否会成为我正在敲打的一些基于 BERT 的“传统”AI 聊天机器人的补充,或者更确切地说,它是否会淘汰它们。
玩的时候脑子里冒出一个念头。通过略微理论化或哲学化,最终互操作性标准(如 HL7 和 FHIR 等)是一种“语言”,对吗? HL7 有自己的语法、规则、词汇甚至方言——每个系统都有自己的语调。这就是为什么当一台机器与另一台机器对话时,它们需要翻译器(例如 DTL 转换)来实现相互理解。
所以环顾四周,似乎一切都是语言:编码是语言:python,javascript和COS也是语言。 HL7、FHIR 甚至 XML 或 JSON 都是语言,只是它们比自然语言更结构化,那么 GPT 应该更容易上手吗?
那么,我们可以从简单地重用 GPT 的预训练编码语言模型来模拟 DTL 开始吗?我们还没有进行调整,以下是初步结果:


测试


模式:完整
型号:code-davinci-002
温度:0
最大长度:1989
其他:默认
停止序列:###
1、将HL7 ADT A01转A05?

输入:  

0
0 199
公告 Michael Lei · 三月 22, 2023

大家好!

第二次数字健康互操作与FHIR创业孵化器——Caelestinus,今日启动!

今天,21 支选定的队伍将在 Caelestinus 开始为期八个月的旅程。在孵化期间,团队将数字健康互操作性引入到他们的互联医疗服务或医疗设备创新中,并添加对 FHIR、HL7、DICOM、CDA、X12 和其他数字健康标准的支持,并使用InterSystems IRIS for HealthFHIR Server进行转型在经验丰富的 InterSystems 团队的帮助下。

我很高兴邀请大家观看 Caelestinus 2023 启动活动直播,您可以在其中了解哪些团队被选中以及他们的创新想法。

请从欧洲中部时间下午 3 点开始通过www.caelestinus.tech观看流媒体

很高兴在在线上与您相见。

祝 Caelestini 初创公司好运!

0
0 113
文章 Michael Lei · 三月 21, 2023 3m read

InterSystems IRIS 是一个高性能、可靠且可扩展的数据平台,用于为医疗保健、金融服务和其他行业构建和部署关键任务应用程序。它提供了广泛的功能,包括数据管理、集成、分析等。

IRIS 提供的功能之一是能够将 Python 代码嵌入到 ObjectScript 代码中。这意味着您可以在 IRIS 应用程序中使用 Python 库和函数,让您可以访问大量的工具和资源。在本文中,我们将了解如何在 InterSystems IRIS 中使用嵌入式 Python。

设置嵌入式 Python

在 IRIS 中开始使用嵌入式 Python 之前,您需要设置环境。这涉及安装 Python 解释器和配置 IRIS 以识别它。

第一步是安装 Python。您可以从官方网站 ( https://www.python.org/downloads/ ) 下载最新版本的 Python。安装 Python 后,需要将其添加到系统的 PATH 环境变量中。这允许 IRIS 找到 Python 解释器。

接下来,您需要配置 IRIS 以识别 Python。为此,您需要创建一个 Python 网关。网关是一个在 IRIS 之外运行的进程,充当 IRIS 和 Python 之间的桥梁。

要创建网关,请打开一个终端窗口并导航到 Python 安装目录。然后运行以下命令:

python -m irisnative

0
1 189
文章 Michael Lei · 三月 10, 2023 3m read

InterSystems IRIS 2022.2 具有适用于 Python 的原生 SDK (https://docs.intersystems.com/iris20222/csp/docbook/Doc.View.cls?KEY=PA…)。

我们知道如何使用 IRIS Object Script $Order 函数遍历Global数据结构。

SET key= ""FOR { SET key= $ORDER ( ^myglobal (key)) QUIT :key= ""WRITE !, ^myglobal (key) }

如何使用 IRIS Native SDK 从 Python 执行相同的操作?这里有一个代码示例:

0
0 183
公告 Michael Lei · 三月 8, 2023

你好社区,

在上次激烈的编程比赛之后,我们很高兴宣布下一场 InterSystems 技术文章写作比赛!

✍️技术文章竞赛:InterSystems IRIS 教程✍️

写一篇可以被视为 InterSystems IRIS 教程的文章 任何级别的程序员:3月1日至3月31日初级/中级/高级。

🎁 人人有奖:参加比赛的每位作者都可获得一份特别奖品包!

🏆 主要奖品:共有6个奖品可供选择。

1
0 302
文章 Michael Lei · 三月 2, 2023 4m read

正式名称为Class Query 的意思可以追溯到 Caché 的早期。
使用CLASS是因为它嵌入在 COS 类中。
尽管官方文档中有精确的描述,但它仍然相当抽象。
我的教程应该通过 COS 中的一个简单示例逐步指导您,使您有直观的体会

0
0 112
文章 Michael Lei · 三月 2, 2023 4m read

在这里,您将找到一个在 IRIS 环境中使用 Python 的简单程序,以及另一个在 Python 环境中使用 ObjectScript 的简单程序。另外,我想分享一些我在学习实践时遇到的麻烦。

IRIS 环境中的 Python

比方说,您在 IRIS 环境中想要解决一个您认为使用 Python 更容易或更有效的问题。

您可以简单地更改环境:像创建任何其他方法一样创建您的方法,并在其名称和规范的末尾添加 [Language = python]:

您可以在该方法中使用任何类型的参数,并且要访问它们,您可以执行与在 COS 中完全相同的操作:

假设您有这个 %String 参数 Arg 和一个来自自定义类的参数 OtherArg。这个其他类可能具有标题和作者等属性。您希望像这样访问:

此方法提供如下输出:

而且,对于访问类方法,它几乎是一样的。假设我们在 Demo.Books.PD.Books 中有一个名为“CreateString”的方法,它将标题和作者连接成类似于“Title: <Title>; Author: <Author>”的内容。

将其添加到我们的 python 方法的末尾:

将提供以下输出:

(要访问该方法,您可以使用 OtherArg.CreateString(),但我选择将 OtherArg 中的相同值传递给 CreateString 方法,以便输出看起来相似并且代码看起来更简单)

0
0 194
文章 Michael Lei · 三月 1, 2023 3m read

尽管作为一个没有资金支持的医科专业学生,Case Western Reserve大学的Jane Hinkle最近在不到一周的时间里利用EHR供应商Epic的去识别化病人数据库Cosmos进行了临床研究,还得了奖。

Cosmos是一个HIPAA限定的数据集,整合了超过1.22亿名患者的Epic EHR数据。

"我们围绕Cosmos建立的概念就是我们所说的自助分析,这意味着Cosmos中的大数据被设置为Cosmos的任何用户都可以访问,"Epic的临床信息学家Dave Little博士在采访中告诉EHRIntelligence。"在简的案例中,我们看到一个医科学生能够带着一个有针对性的问题,从1.22亿的患者数据中找到她所需要的数据来回答这个问题。这在研究界历来是闻所未闻的。"

Hinkle的研究发现,儿科病人从COVID-19引发心肌炎的可能性是COVID-19疫苗的三到五倍。她告诉EHRIntelligence,她最初关注的是一项使用大数据工具来分析阻塞性睡眠呼吸暂停的研究。然而,当关于心肌炎是否是COVID-19疫苗接种的不良反应的问题出现时,Hinkle和她的研究导师、公共卫生硕士、医学博士、MetroHealth 公司的首席医疗信息官David Kaelber转移了他们的重点。

0
0 312
公告 Michael Lei · 二月 28, 2023

我们很高兴地宣布我们的抢先体验计划的最新成员 - Health Data De-ID工具。

该工具将根据 *HIPAA 安全港* 对结构化临床数据进行去标识化处理,并允许在需要时进行重新标识。它使用 InterSystems 的 *SDA* 规范格式,该格式用于我们从一种格式到另一种格式的所有标准转换,例如 *HL7* 到 *CDA*、*HL7* 到 *FHIR* 等。虽然该工具使用 XSLT 转换来提高性能原因,它提供了辅助方法,您不需要成为 XSLT 专家的情况下更轻松地调整开箱即用的去标识化规则。

Health Data De-ID 适用于任何 InterSystems 产品,从 InterSystems IRIS for Health 到 Health Connect 再到 Unified Care Record。

您可以在此处加入抢先体验计划 - [如何注册抢先体验计划 (EAP)]?我们需要您的反馈,因此请在您完成整个过程或遇到任何问题时与我们联系。

0
0 118
文章 Michael Lei · 二月 19, 2023 1m read

各位开发者,大家好!

对我来说,关于 ObjectScript 的最痛苦的一件事是输入 ##class(Class).Method() 以在代码或终端中调用类方法。 为解决这个问题, 我甚至提出了一个在 ObjectScript 中简化它的想法

但是 VSCode ObjectScript中有一个刚刚引入到插件中的新功能 – 复制调用Copy Invocation!

只需将 **Copy Invocation**(复制调用)链接悬停在代码中的每个类方法上方,点击它,该调用就会被复制到缓冲区:

将其粘贴到想要执行的任何位置!!

USER>w ##class(dc.sample.ObjectScript).Test()

就到这儿!

这里是显示其运作方式的[视频]。

非常感谢 VSCode 贡献者

祝您编程愉快!

0
0 292
公告 Michael Lei · 二月 13, 2023

Hi 开发者们,

我们非常高兴地向大家宣布此次InterSystems 开发者竞赛(Tool)的获奖者!

首先,我们要感谢提交了21 份申请的 优秀参与者们 🔥

我们很高兴知道您认为这个主题很重要!

事不宜迟,我们在此公布此次竞赛的获胜者是……

1
0 138
文章 Michael Lei · 二月 13, 2023 3m read

在 InterSystems IRIS 2022.2 中,我们引入了列存储作为持久化 IRIS SQL 表的新选项,可以将您的分析查询性能提高一个数量级。该功能在 2022.2 和 2022.3 中标记为实验性,但将在即将发布的 2023.1 版本中“升级”为完全支持的生产能力。

产品文档和这个介绍性视频已经描述了行存储(仍然是 IRIS 上的默认设置并在我们的整个客户群中使用)与列表存储之间的区别,并提供了有关为您的用例选择合适的存储布局的高级指导。在本文中,我们将详细阐述这个主题,并根据行业实践建模原则、内部测试和抢先体验计划参与者的反馈分享一些建议。

0
0 118
公告 Michael Lei · 二月 8, 2023

InterSystems 宣布其首个开发人员预览版,作为2023.1 版开发人员预览计划的一部分。 2023.1 中添加了许多更新和增强功能,还有全新的功能,例如对列存储Columnar Storage 的生产就绪支持、使用Bulk FHIR 的能力以及对MacOS 13 Ventura的支持。当前的开发人员预览版可能不提供其中一些功能或改进。

未来的预览版本预计每两周更新一次,我们将在功能准备就绪时添加它们。请通过开发者社区分享您的反馈,以便我们共同打造更好的产品。

可以在下面的这些链接中找到初始文档。它们将在接下来的几周内更新,直到正式宣布发布(一般可用性 - GA):

此外,查看此链接以获取与此版本相关的升级信息。

与往常一样,扩展维护 (EM) 版本附带适用于所有受支持平台的经典安装包,以及 Docker 容器格式的容器映像。有关完整列表,请参阅支持的平台文档

安装包和预览密钥可从 WRC 的预览下载站点或通过评估服务网站获得(使用标记“显示预览软件”以访问 2023.1)。

0
0 175
文章 Michael Lei · 二月 5, 2023 1m read

通常,如果你想部署一个解决方案,你需要手动添加项目、配置你的查找表和默认配置。
如果您拥有执行这些操作的所有权限,那也没关系。如果您想部署到客户的生产服务器,但您没有权限,则需要在文档中指明系统部署必须执行的所有步骤。

0
0 180
公告 Michael Lei · 一月 27, 2023

大家好,

我在 OEX 上加载了一个新软件包,我也计划在本月参加比赛。

简而言之,它为您提供以下内容。

  • 用于 InterSystems IRIS 的持久(表)类以保存记录历史的基类
  • 这些类允许在touch时将持久类记录历史化到另一个持久类中。
  • 这提供了任何记录的完整历史记录。
  • 它允许记录回滚到特定版本。
  • 它可以自动清除旧的历史记录。

请检查一下。

谢谢你们。

0
0 121
公告 Michael Lei · 一月 23, 2023

嘿开发者,

我们想邀请您参加我们的下一场比赛,该比赛致力于创造有用的工具,让您的开发伙伴们的生活更轻松

🏆 InterSystems 开发者竞赛:Tool(工具)🏆

提交有助于加快开发速度、贡献更多定性代码并有助于使用 InterSystems IRIS 测试、部署、支持或监控您的解决方案的应用程序。

时间: 2023 年 1 月 23 日至 2 月 12 日(美国东部时间)

奖金池: 13,500 美元

 

0
1 273
公告 Michael Lei · 一月 23, 2023

InterSystems 很高兴地宣布,InterSystems IRIS、InterSystems IRIS for Health 和 HealthShare Health Connect 2022.1.2 的扩展维护版本现已推出。这些版本为 2022.1.0 和 2022.1.1 版本提供了一些选定的功能和错误修复。

您可以在这些页面上找到有关更改内容的更多信息:

请通过开发者社区分享您的反馈,以便我们共同打造更好的产品。

 

如何获得软件

该软件以经典安装包和容器镜像的形式提供。有关可用安装程序和容器映像的完整列表,请参阅支持的平台网页

每个产品的完整安装包都可以从 WRC 的软件分发页面获得。

安装包和预览密钥可从 WRC 的预览下载站点或通过评估服务网站获得。

InterSystems IRIS 和 IRIS for Health 的企业版和社区版的容器镜像以及所有相应的组件都可以从InterSystems Container Registry获得。

此版本中所有套件和容器的数量为2022.1.2.574.0

0
0 100
问题 Michael Lei · 一月 23, 2023

我想从生产环境同步刷新测试库。

在 TESTTC02 上,我收到错误:
“Missing Mirrored Databases Report”

我的问题:
1. 这个问题是什么原因造成的?
2.该如何解决?

谢谢你的帮助
=========================
这是刷新的基本计划:
DR 复制 IRIS.DAT 文件 -> TESTTC01
TESTTC01 IRIS.DAT 文件 -> TESTTC02

详细信息:
SMP=System Management Portal – IRIS admin 的 GUI Web 界面
DRTC01=LIVE的DR节点(异步镜像)
TESTTC01=主要成员
TESTTC01=备份成员

1
0 148
文章 Michael Lei · 一月 17, 2023 3m read

ZPM 设计用于与 InterSystems IRIS 数据平台的应用程序和模块一起使用。 它由两个组件组成:ZPN 客户端(用于管理模块的 CLI)和注册表(模块和元信息的数据库)。 我们可以使用 ZPM 来搜索、安装、升级、移除和发布模块。 使用 ZPM,可以安装 ObjectScript 类、前端应用程序、互操作性生产环境、IRIS BI 解决方案、IRIS 数据集或任何文件,例如嵌入式 Python wheel。 

今天的这份实战宝典将分为 3 个部分:

  1. 安装 ZPM
  2. 生成模块
  3. 在注册表中查找、安装、发布模块
  1. 安装 ZPM
  • 下载最新版本的 ZPM(它应该是一个 XML 文件)下载链接
  • 将下载的 XML 导入到 IRIS(它只能部署到已打开 IRIS 的 IRIS 终端)并按 Enter 键

write $SYSTEM.OBJ.Load("C:\zpm.xml", "c")

请注意,“C:\zpm.xml”是下载的 XML 文件的路径,这一步可能需要一些时间。

  • 安装完成后,只需输入 zpm,按 Enter 键,您会看到您在 zpm shell 中
  1. 生成模块

在开始生成模块之前,我们需要准备一个文件夹,里面有一个或多个可以加载的文件,因此我在 C 盘下创建了一个名为 zpm 的文件夹。

执行命令 generate C:/zpm

在指定所有必要的内容后,您的第一个模块已成功生成,您还会看到 

注意: 

0
0 183
文章 Michael Lei · 一月 17, 2023 3m read

每秒插入大量记录,同时同步进行实时查询的能力称为混合事务分析处理 (HTAP)。 它也被称为 Transactional analytics 或 Transanalytics 或 Translytics,当存在来自工业物联网传感器的持续实时数据流或股票市场的波动数据时,它是非常有用的技术,并且允许实时或接近实时地查询这些数据集。

在本文中我将分享我在不同平台上运行带有测试流数据的演示,同时进行持续插入和持续查询,看看每个平台上有何不同反应,如在每个平台上输入和输出数据的速度以及它们的性能。 我在本演示中试验的平台包括:InterSystems IRIS、MariaDB 和 MySQL。

试验结果

20秒的测试时间里:

插入数据条数查询次数插入数据大小查询数据大小
IRIS708,00059,000184M15.217M
MariaDB98,00023,67925M6.69M
MySQL38,00011,9479.869M2.45M

本演示的视频https://www.loom.com/share/8e30930232db4b18ac455e310226575d

需要环境

Docker 和 Docker Compose

本地运行

0
0 118
文章 Michael Lei · 十二月 27, 2022 2m read

一个简单的生产配置,使 FHIR 交易捆绑包能够通过 Box 和 Dropbox 加载到 InterSystems® FHIR® 服务器中。使用包含的 MFT 连接组件和 14 行自定义业务流程,此生产配置会将您的交易捆绑包处理到 FHIR 资源,以便立即使用,就像哈利·波特的魔法一样。

我首先会展示该生产配置的短视频导览、MFT 连接以及 IRIS 上 Box 和 Dropbox 的 Oauth2 应用配置,接下来循序渐进地展示一些步骤,让您使用您喜欢的任何 MFT 供应商以及您选择的任何工作流程、桌面、API 或 Web 控制台拖放操作。

一些陷阱:

  • OAUTH2 回调需要使用 IRIS 的 SSL 端点来提供重定向… 最好在 Health Connect Cloud 上尝试一下!
  • Dropbox for Business 在基于团队的令牌方面面临挑战,个人 Dropbox 则运行良好。 这不是无法忍受的情形,但需要一些耐心。
  • 配置 MFT 连接时,注意 Dropbox 的 baseurl 上的“/”(确保它存在)。
  • 对于 Box 和 DropBox 的路径,MFT 出站适配器都需要具有结尾“/”。

现在,鉴于以上获奖的 OBS 支持的内容可能有不足之处,如果 InterSytems 文档还不够,下面是需要遵循的步骤。

步骤概览:

0
0 155
文章 Michael Lei · 十二月 13, 2022 7m read

嵌入式 Python 模板

今天你们分享一个简单的嵌入式 Python 模板,我建议将其作为任何使用 InterSystems IRIS 并将使用嵌入式 Python 的通用项目的起点。

功能:

  • 随时可用的嵌入式 Python;
  • 3 种嵌入式 Python 开发方式示例;
  • 随时可用的 VSCode 开发;
  • 支持 Docker;
  • 支持在线演示;
  • 随时可用的 ZPM 优先开发。

下面讨论一下这些功能!

0
0 202
文章 Michael Lei · 十二月 9, 2022 7m read

在数量众多、形形色色的 SQL 数据库市场中,InterSystems IRIS 作为一个超越 SQL 的平台脱颖而出,它提供无缝的多模型体验,支持丰富的开发范式。 特别是,先进的对象-关系引擎已经帮助组织为其数据密集型工作负载的每个方面使用了最适合的开发方式,例如在通过对象获取数据并同时通过 SQL 查询数据。 持久类与 SQL 表相对应,其属性与表中的各列相对应,可以使用用户定义的函数或存储过程轻松访问业务逻辑。 在这篇文章中,我们将深入了解表面之下的一点底层技术,讨论它可能如何影响您的开发和部署方式。 这是我们计划发展和改进的产品领域,因此请不要犹豫,在下面的评论区分享您的观点和体验。

保存存储定义 {Saving the Storage Definition}

编写全新的业务逻辑很容易,而且假如您有定义明确的 API 和规范,那么调整或扩展通常也很容易。 但是,当它不仅仅是业务逻辑,还涉及持久化数据时,从初始版本更改的任何内容都将需要能够妥善处理通过早期版本获取的数据。

0
0 152
文章 Michael Lei · 十二月 7, 2022 11m read

大家好!

这是关于使用 Docker 初始化 IRIS 实例的系列文章中的第三篇。 这次,我们将关注企业缓存协议(Enterprise Cache Protocol,ECP)。

ECP 允许以一种非常简单的方式将某些 IRIS 实例配置为应用程序服务器,将其他实例配置为数据服务器。 有关详细的技术信息,请参阅官方文档。

本文旨在介绍:

  • 如何编写数据服务器的初始化脚本,以及如何编写一个或多个应用程序服务器的初始化脚本。
  • 如何使用 Docker 在这些节点之间建立加密连接。

为此,我们通常使用我们在以前的 Web 网关中已经看到的一些工具,以及描述 OpenSSL、envsubst 和 Config-API 等工具的镜像文章。

要求

ECP 不适用于 IRIS 社区版。 因此,需要访问全球响应中心才能下载容器许可证并连接到 containers.intersystems.com 注册表。

准备系统

系统必须与容器共享一些本地文件。 需要创建特定用户和组来避免出现“访问被拒绝”错误。

0
0 171