#互操作性

0 关注者 · 85 帖子

在医疗保健领域,互操作性是指在不同信息技术系统和软件应用程序之间进行通信、数据交换以及使用交换信息的能力。

文章 Michael Lei · 八月 6, 2024 2m read

开发新的互操作性Production时,最初在Production中添加设置是很自然的做法。

不过,一旦要将Production从开发环境移动到测试或其他环境,你就会发现 HTTP 服务器、IP 地址和/或端口之类的设置都需要更改。 为了避免这些设置在后续重新部署时被覆盖,必须将这些设置从Production得设置中移动到系统默认设置(System Default Settings)。

虽然系统默认设置可以手动创建,但是当生产中有大量业务组件时会难以处理。 因此,@Wietze Drost 让我开发一个工具自动执行此流程,通过筛选表达式指定哪些设置必须创建为系统默认设置。

  • 这个表达式可以定义为“*:HTTPServer,SSLConfig*”,其中“\*”表示“为任何主机类名”。 冒号后面是需要移动的设置列表。 所以,这个表达式的意思是“为所有名为 HTTPServer 和 SSLConfig 的设置创建或更新系统默认设置”。
1
0 130
文章 Jingwei Wang · 六月 23, 2024 8m read

低代码挑战

想象一下那个场景。您正在 Widgets Direct 愉快地工作,这是互联网上首屈一指的小部件和小部件配件零售商。您的老板有一些毁灭性的消息,一些客户可能对他们的小部件不太满意,我们需要一个帮助台应用程序来跟踪这些投诉。为了让事情变得有趣,他希望代码占用非常小,并挑战您使用 InterSystems IRIS 以少于 150 行代码交付应用程序。这可能吗?

免责声明:本文记录了一个非常基本的应用程序的构建,为了简洁起见,省略了安全性和错误处理等细节。该应用程序仅供参考,不得用于任何生产应用。本文使用IRIS 2023.1作为数据平台,并非所描述的所有功能在早期版本中都可用

第 1 步 - 定义数据模型

我们首先定义一个新的干净的命名空间 - 带有代码和数据数据库。虽然所有内容都可以位于 1 个数据库中,但将它们拆分以便于数据刷新。

我们的帮助台系统需要 3 个基本类:一个 Ticket 对象,它可以包含用于记录员工顾问 UserAccount 和客户联系人 UserAccount 之间交互的操作。让我们用一些基本属性来定义它们:

19 行代码,我们就有了完整的数据模型!我们将 2 个类设置为 Persistent,以便将它们保存到数据库中,并且还继承自 %JSON.Adapter,这使我们能够非常轻松地以 JSON 格式导入和导出对象。

0
0 218
文章 Michael Lei · 二月 18, 2024 11m read

1. IRIS RAG Demo

IRIS RAG Demo

这是 IRIS 与 RAG(检索增强生成)示例的一个简单演示。 后端是使用 IRIS 和 IoP用 Python 编写的,LLM 模型是 orca-mini 并由 ollama 服务器提供。 前端是用 Streamlit 编写的聊天机器人。

    1. IRIS RAG 演示](#1-iris-rag-demo)
    • 1.1. 什么是 RAG](#11-what-is-rag)
    • 1.2. 如何工作?
    • 1.3. 安装演示](#13-installation-the-demo)
    • 1.4. 使用方法
    • 1.5. 演示如何运行](#15-演示如何运行)
      • [1.5.1. 前端](#151-前端)
      • 1.5.2. 后台
        • [1.5.2.1. 业务服务](#1521-业务服务)
        • [1.5.2.2. 业务流程](#1522-业务流程)
        • [1.5.2.3. LLM 操作](#1523-the-llm-operation)
        • 1.5.2.4. 矢量操作](#1524-the-vector-operation)
    • 1.6. 一般性说明](#16-一般性说明)

1.1. 什么是 RAG?

RAG 是 Retrieval Augmented Generation(检索增强生成)的缩写,它带来了使用带有知识库的 LLM 模型(GPT-3.

1
0 662
文章 Qiao Peng · 一月 31, 2024 21m read

InterSystems IRIS、Health Connect和上一代的Ensemble提供了优秀的互操作架构,但即便有低代码开发能力,很多开发者还是希望能用自己的技术栈语言在InterSystems的产品上开发互操作产品。

考虑到互操作产品本身的开放性要求和各个技术栈背后庞大的生态价值,InterSystems IRIS和Health Connect提供了Production EXtension (PEX)架构,让开发者使用自己的技术栈语言来开发互操作解决方案。目前PEX支持Java、.net、Python。

这里我们介绍使用Java利用PEX进行互操作产品的开发。

一 InterSystems IRIS上使用Java开发的基础

在进入PEX主题前,需要简单介绍一下Java在InterSystems IRIS上开发的各种技术选项,因为PEX也是以这些技术选项为基础的。

  • 如果仅把InterSystems IRIS作为一个数据库看待,可以使用JDBC对它进行SQL访问,这是最传统的开发方式;
  • Java是一个面向对象的开发语言,而InterSystems IRIS也是支持面向对象的数据平台。
0
1 344
文章 Qiao Peng · 十二月 7, 2023 5m read

TCP作为OSI 7层的传输层的通信协议,其使用上不像更上层的通信协议那么方便,因为TCP操作的不是数据包,它操作的是数据流。因此有多种将TCP数据流“解释”为数据包(消息)的方法。

InterSystems IRIS提供了多种TCP适配器,用于不同的“解释”,例如EnsLib.TCP.FramedInboundAdapter使用特定的首尾字符做为分隔、EnsLib.TCP.CountedInboundAdapter使用固定的长度进行分隔...

同时,InterSystems IRIS提供了多种开箱即用的TCP业务服务和业务操作,方便接入和发送TCP数据。这里我们介绍常见的使用特定的首尾字符做为分隔的TCP业务服务和业务操作。

1. 通用TCP业务服务和业务操作

EnsLib.TCP.Framed.PassthroughService和EnsLib.TCP.Framed.PassthroughOperation是一组使用特定的首尾字符做为分隔TCP数据流的通用业务服务和业务操作。EnsLib.TCP.Framed.PassthroughService业务服务会将TCP数据封装在Ens.StreamContainer发送给业务流程或业务操作;而EnsLib.TCP.Framed.PassthroughOperation业务操作发送并接收Ens.

0
0 274
文章 Nicky Zhu · 四月 27, 2021 6m read

根据IDC的报道,超过80%的信息是基于NoSQL的,尤其是文本文件。当数字服务或应用程序不能处理所有这些信息时,企业就会遭受损失。为了面对这一挑战,可以使用OCR技术。OCR使用机器学习和/或训练的图像模式将图像像素转化为文本。这一点很重要,因为许多文件被扫描成PDF格式的图像,或者许多文件中包含有文本的图像。因此,OCR是一个重要的步骤,可以从文件中获得所有可能的数据。

为了实现OCR,可以使用开源解决方案Google Tesseract,这是Python和Java社区中最流行的解决方案。Tesseract支持100多个习语,并且可以用新的模型进行训练以识别车牌、验证码等等。Tesseract是在C++中创建的,可以通过Java套用Tess4J构成一个中介层来使用它。下面的代码展示了调用过程。

privateStringextractTextFromImage(FiletempFilethrowsTesseractException {


 

ITesseracttesseract = newTesseract();

tesseract.setDatapath("/usr/share/tessdata/"); //directory to trained models

tesseract.
2
0 514
文章 Kelly Huang · 七月 12, 2023 4m read

在本文中,我将分享我们在 2023 年全球峰会技术交流室中提出的主题。我和@Rochael Ribeiro

借此机会,我们就以下话题进行探讨:

  • 用于快速 API 的开放交换工具
  • 开放API规范
  • 传统与快速 Api 开发
  • 复合 API(互操作性)
  • 规范优先或 API 优先方法
  • API 治理和监控
  • 演示(视频)

用于快速 API 的开放交换工具

当我们谈论快速现代 API 开发(Rest / json)时,我们将使用两个 Intersystems Open Exchange 工具:

第一个是用于快速开发 API 的框架,我们将在本文中详细介绍。

https://openexchange.intersystems.com/package/IRIS-apiPub

第二种是使用 Swagger 作为用户界面,用于 IRIS 平台上开发的 Rest API 的规范和文档,以及它们的使用/执行。其运行的基础是开放 API 规范 (OAS) 标准,如下所述:

https://openexchange.intersystems.com/package/iris-web-swagger-ui

什么是开放 API 规范 (OAS)?

它是全球范围内用于定义、记录和使用 API 的标准。在大多数情况下,API 甚至在实现之前就已经设计好了。我将在下一个主题中详细讨论它。

0
0 200
文章 Jingwei Wang · 七月 7, 2023 2m read
  1. 主机和备机为什么总是切换,会不会是与仲裁机连接的心跳检测出问题了
    • 查看镜像状态 打开管理门户 - ‘系统操作’ - ‘镜像监视器’
    • 如遇到主备切换,可以通过消息日志查看切换原因 打开管理门户 - ‘系统操作’ - ‘系统日志’ - ‘消息日志’      
  2. 基础问题怎么查询
    • 通过管理门户查看日志 打开管理门户 - ‘系统操作’ - ‘系统日志’ - ‘消息日志’
    • 通过监控告警日志 告警日志文件:<intall-dir>/mgr/alerts.log文件      
  3. Production所有组件设置重试间隔、故障超时是什么意思
    • 重试间隔:与回复代码操作配合使用,当发生回复代码操作中设置的回复发生时,按照重试间隔设置的时间对外部业务系统再次访问。
    • 故障超时:发生故障时继续传递消息的总秒数,可以与回复代码操作配合使用。      
  4. 有队列出现怎么办
    • 查看队列的方式 打开管理门户 - ‘Interoperability’ - ‘监视器’ - ‘队列’ 首先,查看队列计数是否是在降低,及时有队列,但是队列在正常下降,此状态为正常情况。 但是,如果队列持续升高,没有任何下降趋势,查看产生队列的相应组件的日志,查看是否是平台内部有异常出现。如果平台内部没有异常,查看第三方下游业务系统是否能正常通信。
0
0 308
文章 Zhang Fatong · 七月 5, 2023 2m read

预测平台入场服务器配置

平台服务器入场配置预测应用,以java连接iris并使用其IntegratedML技术完成对医院门诊量,服务数,消息数,消息保存时间等数据分析,可以在医院集成平台入场前,对医院入场平台所需的服务器配置进行预测,为客户提供便利。

模拟数据

平台服务器入场配置预测应用 使用IntegratedML技术,通过JDBC连接IRIS,并可使用业务流程流转消息。先导入数据,然后初始化模型,对模型进行训练,然后输入相应的条件对服务器配置进行预测。 ImageImageImageImage

操作步骤

    1. 在IRIS中导入代码并进行编译

Image

    1. 启动 Production

Image

  • 3.运行jar包(修改配置文件)
  1. 输入正确的IP端口和命名空间名称 ImageImage

Image

6
0 384
文章 Weiwei Gu · 六月 28, 2023 5m read

1. 区块链

当我写这篇文章时,比特币的价格还不到其成功顶峰时期的五分之一。因此,当我开始向某人讲述我的区块链经历时,我听到的第一句话是毫不掩饰的怀疑:“现在谁需要这个区块链东西?”

没错,区块链炒作已经减弱。然而,它所基于的技术将继续存在并将继续在特定领域使用。互联网通常提供大量描述这些技术的一般用法的材料

0
0 181
文章 Claire Zheng · 六月 8, 2023 1m read

医院管理者、信息中心、业务骨干,每个角色都有独特的业务诉求,InterSystems IRIS医疗版互联互通套件专为国内用户设计,可助力医院用户释放数据价值,推动应用创新!截至目前,InterSystems技术已助力150余家医院通过四级及以上医院信息互联互通标准化成熟度评测,其中,五级乙等用户近30家。

0
0 207
文章 Michael Lei · 六月 8, 2023 2m read

嗨社区!

想与您分享我在Telegram中使用GPT创建“我自己的”聊天的练习

这个应用需要用到 Open Exchange 上的两个组件:@Nikolay SolovyevTelegram Adapter@Francisco.López1549IRIS Open-AI

因此,通过此示例,您可以在 Telegram 中使用 ChatGPT 设置自己的聊天。

让我们看看如何让它发挥作用!

0
0 243
文章 Claire Zheng · 六月 6, 2023 1m read

当数据资产已经成为医院的核心资产,如何有效利用数据核心资产,持续挖掘互联互通平台和各种数据中心的价值,成为医疗信息化工作的重中之重。欢迎扫码注册(或点击链接注册)观看多位大咖针对这一话题的解读。

0
0 155
文章 Claire Zheng · 五月 23, 2023 1m read

实现医疗系统之间的互操作性是一项艰巨的挑战。随着FHIR日渐普及,对FHIR标准的兼容如今已成为许多国家医疗信息系统的全国性强制性要求。FHIR标准最有价值的一方面就是所有内容可被机器读取,使得FHIR应用跨机构使用成为可能,帮助您距离“语义互操作性”更近一步。

0
0 255
文章 Claire Zheng · 五月 23, 2023 1m read

不同系统在“对话”时候,如何让它们明白“带黑色条纹的白马”和“带白色条纹的黑马”是同一种动物(斑马)呢?FHIR是HL7国际(HL7 International)为满足当前医疗数据环境中的互操作性需求而创建的医疗数据标准,如今已成为许多国家医疗信息系统的全国性强制性要求。本视频介绍了FHIR的设计理念和关键构成,包括FHIR资源、FHIR Profile、FHIR扩展等。

0
0 204
文章 Kate Lau · 三月 17, 2023 1m read


添加凭据以登录 FHIR REST 接口 - 在这例子仅考虑基本身份验证

添加服务注册表 - 在这例子仅考虑基本身份验证

- 设置 HTTP 服务

- 输入 FHIR 服务器的路径

- 输入 FHIR 服务的 URL

- 使用配置的凭证


添加 "HS.FHIRServer.Interop.HTTPOperation"

选择服务名称

测试 FHIR 客户端

跟踪测试结果

1
0 180
文章 Jingwei Wang · 三月 7, 2023 2m read

自定义更多的Production组件的设置

本示例会在Production的组件BO(业务操作)中增加自定义的配置信息,例如添加目标系统信息,当然此类信息也可以放在已有的配置”注释“中。

为production组件新增设置信息

  1. 为组件创建”目标服务器“设置信息。 现在想要为一个组件SoapDemo.BO.Operation.MyWebServiceSoap新增一个名为”目标服务器“的设置信息。
  2. 在SoapDemo.BO.Operation.MyWebServiceSoap类中增加以下代码,然后编译此类。其中Info为,您想将此设置放在哪一种设置中,Info代表”信息设置“,Basic代表”基本设置“,详细信息请参考设置类型
    Property 目标服务器 As %String(MAXLEN = 2000, XMLPROJECTION = "ATTRIBUTE");
    Parameter SETTINGS = "目标服务器:Info";
  3. 进入Production页面,刷新改页面,如下图所示,此时已经成功为组件增加 ”目标服务器“ 设置。 

获取组件设置信息

  1. 使用代码从终端获取组件设置信息 使用如下代码其中”SoapDemo.BO.Operation.MyWebServiceSoap“为组件名称,”目标服务器“为设置名称。
    write ##class(Ens.
0
0 200
文章 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 241
文章 Michael Lei · 十二月 5, 2022 2m read

血糖控制不佳与流产、入住 NICU、手术分娩和妊娠期较短的风险增加有关。尤其危险的是那些先前患有糖尿病的人,他们将受益于在受孕前维持接近正常的血糖。所有 DIP 患者都将从早期转诊到糖尿病服务中受益。如果要降低相关并发症、围产期死亡率和孕产妇发病率,重点将放在 DIP 的早期发现和有效治疗上,以实现血糖正常。糖尿病的早期诊断、生活方式管理和治疗将降低高血糖并发症的发生率和严重程度。

妊娠期糖尿病患者的血糖控制和妊娠结局:一项回顾性研究

连续血糖监测(CGM) 是一种全天候自我监测血糖水平的方法,这意味着用户可以在高血糖和低血糖发生时捕捉(并采取行动)。

与标准护理相比,CGM 改善了产妇糖化血红蛋白水平,降低了剖宫产率和新生儿出生体重。然而,不仅要监测血糖水平,还要跟踪异常症状并及时预约医生,这样才能提高生下健康婴儿的机会。

我们希望引入全新的医疗保健解决方案,让糖尿病诊断变得更简单、更复杂。我们相信,我们在实施 FHIR 和 IRIS 系统以处理和存储医疗数据方面的创新方法可以防止患者患上与妊娠糖尿病相关的许多进一步病症。 DiaBro将使医生能够更加关注追踪妊娠糖尿病的危险因素,并在患者病情发生致命变化时迅速采取行动。

我们已经连接了来自 FHIR 和 IRIS 的数据。主要数据(医生、预约)来自 FHIR,其他数据(应医生的要求)来自 IRIS。

0
0 198
文章 Qiao Peng · 十月 22, 2022 4m read

1. 新的系统SQL业务服务/业务操作

接连SQL数据源和操作SQL数据目标是常见的集成业务场景。使用SQL适配器监控SQL数据源和操作SQL目标库时,我们需要开发自定义BS或BO,写不少代码。例如开发自定义SQL服务需要:

1. 开发响应消息类,用于承接SQL快照数据;

2. 开发自定义业务服务BS类,用于将SQL快照按字段赋值给对应的消息,并将消息发送给目标(业务流程或业务操作)。

而要开发自定义SQL操作,更麻烦些:

1. 开发请求和响应消息类,用于向BO传输数据和接收返回数据;

2. 开发自定义业务服务BO类,设置消息响应表,根据不同请求消息类型编写方法;

3. 在方法中根据请求消息数据拼写SQL语句;

4. 在方法中将SQL执行结果存入响应消息。

虽然很简单,但编程过程枯燥乏味。而且当修改SQL语句时,还要修改对应的消息类和BS/BO类。

从2021.2开始,InterSystems IRIS增加了2套系统通用SQL业务服务和SQL业务操作:




BS EnsLib.SQL.Service.GenericService 使用SQL语句
BS EnsLib.SQL.Service.ProcService 使用存储过程
BO EnsLib.SQL.Operation.GenericOperation 使用SQL语句
BO EnsLib.SQL.
0
1 684
文章 Michael Lei · 十月 10, 2022 3m read

Hi 大家好,

我最近开始学习InterSystems IRIS 的互操作性,我发现官方文档对理解它的工作原理很有帮助,尽管我自己在实现它时仍有一些困难。在我的同事的帮助下,我成功地创建了一个系统的Demo,并从实践中学习。因此,我决定写一下文章,分享我得到的帮助,来帮助更多的其他人。

介绍

首先,让我们掌握一些基本概念:

  • 互操作性 - 这个词的含义并不像它的发音那样复杂--它基本上是把各种信息从一个系统带到另一个系统的“魔术”
  • 业务主机 - 如果把互操作性比作是魔术,那么业务主机Business Host就是魔术师的魔法帽--业务主机里有能够识别和接收信息的业务服务Business Service/BS,并将其作为消息发送给业务流程BP或业务操作BO。业务操作执行所需的操作(顾名思义)并传递信息。业务流程控制着消息的流动:它们定义了消息的去向(基于你所选择的任何东西)以及它是如何被传递的。
  • 适配器 - 适配器是一些我们可以用来识别和操作我们可能要处理的各种信息的类。在实践中,我们把它们作为参数和(可选)属性来访问其方法和属性

准备搭建Production

从简单的开始比较容易--让我们先想想服务和操作--比如说你有一个接收一种信息的服务,它很容易被我们唯一的操作所识别。

当生产的目的和它的部分非常清楚时,开发就比较容易。如果你愿意,画一张图或写下你希望它完成的步骤可能会有帮助。

0
0 167
文章 Michael Lei · 九月 15, 2022 3m read

InterSystems IRIS是一个伟大的数据平台,它满足了当前市场所需的功能。在这篇文章中,你可以看到我心目中的前10大功能:




排名  特性 原因 了解更多
1 互操作性, FHIR 和物联网 商业机构之间需要持续互联和交换数据。各个业务部门之间也需要加强协作来将本增效。实现协作的最佳技术是IRIS的互操作工具包,尤其是 服务总线ESB, 集成适配器,业务流程自动化引擎,数据转化工具以及例如FHIR和MQTT等。

Link 1

Link 2

Link 3

2 API 管理器 大家通过API来消费数字资产。API需要在一个中心点管理其重用、安全、消费、资产目录、开发者生态系统和其他方面。API管理器是实现这一目标的正确工具。因此,所有的公司都有或希望有一个API管理器。 Link
3 数据分片 据预测,全球创造、捕获、复制和消费的数据总量将迅速增加,在2020年达到64.2 zettabytes。在接下来的五年里,直到2025年,全球数据创建量预计将增长到180兆字节以上。在2020年,创造和复制的数据量达到了新高(来源:https://www.statista.com/ statistics/871513/worldwide-data-created/)。
0
0 382
文章 Jingwei Wang · 九月 2, 2022 1m read

当使用集成平台传递异步消息时,在消息查看器查看消息状态的时候会出现 ‘已放弃’(Discarded) 的消息状态。

‘已放弃’ 的消息状态出现主要有以下原因:

  • 当响应的消息在响应请求超时后才到达你要发送的目的地,这条消息就成为了 ’已放弃‘ 的消息。
  • 因某种原因,消息无法交付,手动将消息标记为 ‘已放弃’。
  • 异步传递的消息,无需等待返回消息,这时如果配置了返回消息,这条消息也会成为 ’已放弃‘ 的消息。

注意:被标记为 ‘已放弃’的消息任然会被永久储存,只有但你明确删除它们时,消息才会被删除

如图所示,业务流程 HCC.SVR.Prod.BPMainControl 向 业务流程 HCC.SVR.Prod.BP.SubscribeAndPublish发送异步消息,如果在HCC.SVR.Prod.BPMainControl调用HCC.SVR.Prod.BP.SubscribeAndPublish,而HCC.SVR.Prod.BP.SubscribeAndPublish设置了响应消息,那么从HCC.SVR.Prod.BP.SubscribeAndPublish设置的响应消息就会成为 ’已放弃‘ 的消息

如图所示,如果在HCC.SVR.Prod.BP.SubscribeAndPublish不设置响应消息,那么就不会从HCC.SVR.Prod.BP.

0
0 192
公告 Claire Zheng · 八月 22, 2022

亲爱的开发者们!

到了展示互操作性技术的时候了!来参加我们最新的竞赛吧!

🏆 InterSystems开发者大赛:以互操作性技术为可持续发展构建解决方案 🏆

时间: 8月29日-9月19日(北京时间)

奖金更高: $13,500 – 请留意,奖金分配跟以往有所不同!

0
0 293
公告 Claire Zheng · 八月 22, 2022

2022年8月22日,中国 北京 —— 致力于帮助客户解决最关键的可扩展性、互操作性和速度问题的创新数据技术提供商InterSystems今日宣布在中国推出InterSystems IRIS医疗版互联互通套件2.0版,更好地满足用户对数据利用的需求。

0
0 360