文章 Michael Lei · 六月 18, 2023 3m read

在数字化时代,数据的重要性无可置疑。数据作为新型生产要素,不仅在宏观政策层面得到党和政府的大力推动,也是医院高质量发展的关键和改变医疗行业的驱动力。随着医疗信息化的迅猛发展,我们正迈向一个数据随处可及、人人可用易用的医疗信息化时代。这一时代将数据与人的需求相结合,致力于让数据能“主动”找到需要他们的医护人员和患者,每一个行业从业者,都应致力于为医护人员和患者提供简单易用的软件解决方案,减少工作量,提高效率,推动医疗行业的进步。

数据与人的融合是实现医疗行业数字化转型的核心。当然,医疗数据的收集、存储和管理对于提供高质量的医疗服务至关重要。然而,仅仅有大量的数据并不足够,我们需要将数据与人的需求紧密结合起来。这意味着我们应该让更多的数据关联起来,并且能服务于更多的人群,让患者能够随时随地访问他们的电子病历,让医生和科研人员也能及时有效地获取病人在医院围墙内外进行治疗和健康管理的数据,并且以直观易懂的方式呈现给医护人员和患者,使他们能够快速、准确地获取所需的信息。数据的融合还包括将不同来源的数据整合起来,为医护人员提供全面、完整的视图,同时基于医疗诊断的规则,不管是通过CDSS的形式,还是通过ChatBot(聊天机器人),帮助他们做出更好的决策。

实现数据和人的融合要按照人的需求投放数据。数字化转型的重要目标是为医护人员和患者提供所需的数据,以支持决策和治疗过程。

0
0 168
文章 姚 鑫 · 六月 17, 2023 4m read

第六十章 镜像中断程序 - 使用主 ISCAgent 的日志数据进行 DR 提升和手动故障转移

使用主 ISCAgent 的日志数据进行 提升和手动故障转移

如果 IRIS A 的主机系统正在运行,但 实例没有且无法重新启动,您可以使用以下过程在通过升级后使用来自 IRIS A 的最新日志数据更新升级的 的 。

  1. 推广 IRIS C,选择 IRIS A 作为故障转移伙伴。 被提升为故障转移成员,从 的代理获取最新的日志数据,并成为主要成员。
  2. 重新启动 上的 实例,它作为备份重新加入镜像。
  3. 在 重新加入镜像并变为活动状态后,可以使用使用升级的 DR 异步临时替换故障转移成员中描述的过程,将所有成员返回到它们以前的角色,首先是正常关闭 ,然后在 IRIS B 的配置参数文件的 部分中设置 (请参阅配置参数文件参考中的 ),将 重新启动为 异步,将 提升为备份,并以 异步方式重新启动 。

注意:如果 的主机系统已关闭,但 的主机系统已启动,尽管其 实例未运行,请按照手动故障转移到活动备份中所述在 上运行 例程以确定 是否 在发生故障时是一个活动备份。如果是这样,使用前面的过程,但在升级期间选择

0
0 161
文章 姚 鑫 · 六月 16, 2023 4m read

第五十九章 镜像中断程序 - 灾难恢复程序

灾难恢复程序

如异步镜像成员中所述,灾难恢复 (DR) 异步成员维护镜像数据库的只读副本,从而可以在需要时将 DR 异步提升为故障转移成员。将 DR 异步成员提升为故障转移成员中描述了提升 异步的过程。本节讨论三种可以使用 异步提升的场景:

  • 在灾难期间手动故障转移到提升的 DR 异步
  • 计划故障转移到提升的 DR 异步
  • 使用提升的 异步临时替换故障转移成员

在本节的过程中, 是原始的主要故障转移成员, 是原始备份,而 IRIS C 是要提升的 异步。

在灾难期间手动故障转移到提升的 异步

当镜像没有正常运行的故障转移成员时,可以手动故障转移到提升的 异步。以下过程涵盖了可以选择此选项的场景:

  • 没有附加日志数据的 提升和手动故障转移
  • 使用主 ISCAgent 的日志数据进行 DR 提升和手动故障转移
  • 使用来自日志文件的日志数据进行 提升和手动故障转移

注意:如果无法确认主要故障转移成员 实例确实已关闭,并且该实例有可能变得可用,请不要手动故障转移到另一个镜像成员。如果手动进行故障转移并且原始主节点变为可用,则两个故障转移成员将同时充当主节点。

0
1 157
文章 姚 鑫 · 六月 15, 2023 3m read

第五十八章 镜像中断程序 - 主要故障转移成员的计划外隔离

主要故障转移成员的计划外隔离

如自动故障转移机制中所述,当主节点同时与备份节点和仲裁节点失去联系时,它会进入无限期的故障状态并且不能再作为主节点运行。通常,发生这种情况时,备份会接管并成为主要的。当主服务器与备份服务器的连接恢复时,备份服务器强制关闭主服务器;或者,可以在恢复连接之前自行强制关闭主服务器。

但是,如果一个网络事件(或一系列网络事件)导致故障转移成员和仲裁器同时(或几乎同时)彼此失去联系,则可能没有主节点,因为备份无法接管并且主节点不再存在作为主要操作。这种情况显示为自动故障转移机制详细部分中仲裁模式下对丢失连接的镜像响应表中的最终方案。当主数据库变得孤立并且备份由于错误而无法接管时,可能会发生类似的情况。

当这些情况发生时,有以下选择:

  • 恢复故障转移成员之间的连接;当前一个备份与前一个主要联系时,成员进行协商,一个成为主要,另一个成为备份。
  • 在不恢复连接的情况下,如果可以在主服务器上打开终端窗口,请这样做并在主服务器上运行 ^MIRROR 例程(请参阅使用 ^MIRROR 例程)。该例程确认主实例处于不确定的故障状态,并为您提供两个选项:
    • 如果确认另一个故障转移成员已关闭(可能是因为您将其关闭),它从未成为主成员,并且它没有创建比主成员上的最新镜像日志文件晚的镜像日志文件,可以强制该成员恢复操作为主。
0
1 145
文章 Michael Lei · 六月 14, 2023 3m read

本文是 SqlDatabaseChain 的简单快速入门(我所做的)。

希望大家会感兴趣。

非常感谢:

sqlalchemy-iris 作者@Dmitry Konnov Maslennikov

您的项目使我的试验变得可能。

文章脚本使用 openai API,因此请注意不要在外部共享您不打算共享的表信息和记录。

如果需要,可以插入本地模型。

创建一个新的虚拟环境

mkdir chainsql

cd chainsql

python -m venv .

scripts\activate

pip install langchain

pip install wget

# Need to connect to IRIS so installing a fresh python driver
python -c "import wget;url='https://raw.githubusercontent.com/intersystems-community/iris-driver-distribution/main/DB-API/intersystems_irispython-3.2.0-py3-none-any.whl';wget.download(url)"

# And for more magic
pip install sqlalchemy-iris

pip install openai

set OPENAI_API_KEY=[ Your OpenAI Key ]

python
0
1 578
文章 姚 鑫 · 六月 14, 2023 4m read

第五十七章 镜像中断程序 - 在手动故障转移之前确定备份是否处于活动状态

在手动故障转移之前确定备份是否处于活动状态

假设有两个名为 IRIS AIRIS B 的故障转移成员。如果 ^MIRROR 例程确认备份 () 在与主 () 丢失联系时处于活动状态,因此具有最新的来自 的日志数据,可以使用单个过程手动进行故障转移。当连接因主要故障而丢失时,不会造成数据丢失的风险。但是,当发生多个故障时,活动备份可能没有来自主服务器的所有最新日志数据,因为主服务器在连接丢失后继续运行了一段时间。

使用以下过程确定备份是否处于活动状态:

  1. 确认 IRIS 实例 IRIS A 上的 实际上已关闭(并确保它们在整个手动故障转移过程中保持关闭状态)。
  2. 在 上,在终端的 命名空间中运行 例程(请参阅使用 例程)。
  3. 在主菜单中选择镜像管理,显示如下子菜单:
 1) Add mirrored database(s)
 2) Remove mirrored database(s)
 3) Activate or Catchup mirrored database(s)
 4) Change No Failover State
 5) Try to make this the primary
 6) Connect to Mirror
 7) Stop mirroring on this member
 8) Modify Database Size Field(s)
 9) Force this node to become the primary
10) Promote Async DR member to Failover member
11) Demote Backup member to Async DR member
12) Mark an inactive database as caught up
13) Manage mirror dejournaling on async member (disabled)
14) Pause dejournaling for database(s)
0
1 137
InterSystems 官方 Claire Zheng · 六月 14, 2023

InterSystems 已纠正导致进程内存使用量增加的缺陷。

具体来说,在对局部变量执行$Order$Query  或Merge时,会出现本地进程分区内存消耗增加的问题。虽然这对大多数运行环境没有不利影响,但支持大量进程或严格限制每个进程最大内存使用的环境可能会受到影响。某些进程可能会遇到<STORE> 错误

该缺陷存在于2023.1.0.229.0中,但它被重新发布为2023.1.0.235.1,并包含了修复程序,以加快修正,而无需客户等待维护版本。

此缺陷的更正标识为 DP-423127 和 DP-423237。这些将包含在所有未来版本中。

该缺陷出现在 InterSystems IRIS ® 、InterSystems IRIS for Health ™ 和HealthShare ® Health Connect 的版本 2022.2、2022.3 和 2023.1(内部版本 229)中。如果您运行的是这些版本之一,我们建议升级到 2023.1(内部版本 235)。

此修复也可通过 Ad hoc 分发获得。

如果您对此警报有任何疑问,请联系全球响应中心

0
1 183
文章 姚 鑫 · 六月 13, 2023 4m read

第五十六章 镜像中断程序 - 计划外停机程序

计划外停机程序

当一个故障转移成员意外失败时,适当的程序取决于哪个 实例失败,镜像所处的故障转移模式(参见自动故障转移机制详述),另一个故障转移成员实例的状态,两个故障转移成员的 ISCAgent 的可用性, 和镜像的设置。

  • 备份故障转移成员的计划外中断
  • 具有自动故障转移的主要故障转移成员的计划外中断
  • 未发生自动故障转移时主要故障转移成员的计划外中断
  • 主要故障转移成员的计划外隔离
  • 两个故障转移成员的计划外中断

在阅读和使用本节时,您能需要查看对各种中断情况的镜像响应,其中讨论了主服务器变得不可用时备份行为的详细信息。

备份故障转移成员的计划外中断

当备份故障转移成员的 实例或其主机系统发生故障时,主要继续正常运行,尽管某些应用程序可能会出现短暂的暂停(有关详细信息,请参阅备份中断的影响)。

当备份发生意外中断时,纠正导致故障的条件,然后重新启动备份实例或主机系统。当备份的 实例重新启动时,它会自动加入镜像作为备份。

注意:如果备份在代理控制模式下失败(请参阅自动故障转移规则)并且无法联系到备份的 ISCAgent,则主的 实例在重新启动后无法成为主实例,因为它无法确定它是否是最近的主实例.因此,如果出于任何原因需要在备份主机系统关闭时重新启动实例,则必须使用维护备份故障转移成员中描述的过程来执行此操作。

0
1 161
文章 Hao Ma · 六月 13, 2023 13m read

在维护IRIS的镜像前,管理员需要清楚的了解以下一些概念:

Mirror的切换模式(failover mode)

切换模式在镜像监视器里被翻译成”故障转移模式“。 有两种模式:

  • Agent Controlled模式:
  • Arbiter Controlled模式:(页面上翻译为“仲裁程序受控制”)

通常情况,生产环境的镜像是安装了arbiter(仲裁者)的。Mirror启动时,在还没有连接上arbiter的时候,自动进入Agent-Controlled模式。而后当两台机器,主机,备机都连通了Arbiter,会保持在这个模式。

  • 主备之间有连接;
  • 又都连到arbiter;
  • backup is active,

满足上面的条件,就进入arbiter controlled mode。而如果主备的任一方,失去了和arbiter的连接,或者备用侧丢了active, 开始尝试连接另一方,退回到agent-controlled模式。

Mirror同步成员的状态

Mirror Member Journal Transfer and Dejournaling Status. 请注意,这里面有两个概念:一个是Mirror成员的状态,一个是Journal传输和Dejournaling的状态。下面的图中是3个字段: STATUS, Journal传输,Dejournaling.

image-20230522112042308

STATUS

镜像成员的状态。

0
1 754
文章 Michael Lei · 六月 12, 2023 1m read

将 FHIR 文档(例如患者信息表、出院摘要)发布到 FHIR 存储库时:

EndPoint端点/Bundle捆绑

您可以使用上述 URL 进行 POST。 (以下示例使用 IRIS for Health 提供的 FHIR 存储库。)

我将检查 GET 请求。

我能够确认我能够注册。

对于在FHIR repository注册的FHIR文档,如果能通过指定文档编号来GET会很方便,由于支持,无法对指定Composition.identifier的Bundle资源进行GET请求。

作为解决方法,将注册 Bundle 时设置为 Composition.identifier.value 的文档编号设置为 Bundle.identifier.value 然后 POST。通过这样做,您可以在 Bundle 的 Search Parameter: identifier 中指定文档编号并 GET 目标 Bundle 资源。

文档示例:(这是部分摘录,因为它很长)

 { "resourceType""Bundle"

当返回 201 created 时,尝试 GET。


​​​​
这样能够确认添加到Bundle.

0
1 254
文章 Louis Lu · 六月 12, 2023 2m read

文章相关视频参见Synthea生成FHIR测试数据,以及FHIR服务器加载FHIR资源文件

1. 什么是Synthea

Synthea是一个开源软件包,可以模拟生成患者就诊数据。他的github地址在这里

生成的就诊模版从最初的模拟美国前十种常见病、前十种慢性病到现今超过90种不同的模型。详细模型参见这里

基于当前版本,Synthea的特性包括:

  • 从出生到死亡的全生命周期
  • 可配置的人口统计学信息(默认为美国马萨诸塞州人口普查数据)
  • 模块化规则系统
    • 插入通用模块
    • 用于附加功能的自定义 Java 规则模块
  • 主要医疗事件就诊、急诊室就诊和症状驱动的就诊
  • 症状、 过敏、药品、 疫苗接种、观察/生命体征、实验室、处置、 护理计划
  • 支持格式
    • HL7 FHIR(R4、STU3 v3.0.1 和 DSTU2 v1.0.2)
    • ndjson 格式的批量 FHIR(设置 exporter.fhir.bulk_data = true 以激活)
    • C-CDA (设置 exporter.ccda.export = true 以激活)
    • CSV (设置 exporter.csv.export = true 以激活)
    • CPCDS (设置 exporter.cpcds.
0
1 507
讨论 王喆 👀 · 六月 11, 2023

最近在换吃饭的家伙(笔记本),整理了一下当前开发使用的环境和工具,如下以目录展示,想问问社区的各位老师和同学,你们开发的各个环节使用的是什么工具,同时希望展示一下你们的硬件设备😁😁😁

1 Java环境

1.1 JDK-1.8

1.2 开发工具-IDEA

1.3 MySQL数据库

1.4 版本管理工具-git/svn

1.5 nacos

1.6 spring cloud alibaba

2 前端vue环境

2.1 node

2.2 vue

2.3 浏览器

2.3.1 谷歌

2.3.2 Firefox

2.3.3 Edge

3 esb环境--IRS

3.1 IRS for Heath 2023

3.2 Postman/ApiPost

3.3 SOAPUI

3.4 7Edit.2.x

3.5 Json&XML可视化工具

MissionKitEnt2014/Altova XMLSpy 2014

3.6 开发工具 VSCode

4 虚拟机环境

4.1 VMware Workstation Pro

4.2 镜像

4.2.1 Ubuntu20.04镜像

4.2.2 Windows 2012 R2镜像

4.2.3 Windows 10 镜像

4.3 Docker

4.4 FinalShell

5 远程链接

5.1 向日葵

5.2 ToDesk

6 数据环境

6.1 dbeaver

6.2 navicat

7 办公环境

7.1 腾讯会议

7.2 钉钉

7.

0
1 481
文章 姚 鑫 · 六月 11, 2023 4m read

第三十二章 开发Productions - ObjectScript Productions - 定义警报处理器 - 使用路由警报处理器

使用路由警报处理器

如果需要通过多种输出机制联系用户,警报处理器应该是一个业务流程,用于确定如何在消息中路由 Ens.AlertReques。在这种情况下,Productions必须为每个输出机制包含一个额外的业务操作,并且警报处理器将消息转发到这些业务操作。

将警报处理器定义为路由进程

要将警报处理器定义为路由流程,请创建一个可以在消息中接收 Ens.AlertRequest 的业务流程类。

业务流程将检查消息并将它们转发给不同的业务操作,具体取决于警报内容和包含的任何逻辑。

逻辑可能需要考虑以下因素:

  • 不同用户的不同要求
  • 根据一天中的时间不同的要求
  • 组织的问题解决政策和程序

可以在使用 类作为 Ens.Alert 路由进程。此类提供设置业务规则名称。如果将此设置指定为路由规则集的名称,则此业务主机会使用该规则集中的逻辑来转发它收到的所有消息。

定义业务操作

可以定义每个所需的业务操作,如使用简单电子邮件警报处理器或使用简单出站适配器警报处理器中所述。

将自定义代码添加到警报管理

警报管理允许将警报分配给用户、跟踪警报的状态以及管理解决警报的进度。

0
1 197
文章 Qiao Peng · 六月 11, 2023 7m read

数据平台一直在进化:从数据中心到数据中台,离散的数据资产得到进一步梳理和整合、按业务封装数据和操作数据的方法,并逐步提供了企业统一的访问、更新、检索、查询等数据服务。

然而市场上不乏听到数据平台的成功案例,却鲜见这些案例得到大规模推广。原因是什么呢?

一. 传统数据平台建设的挑战

传统数据平台的数据模型基于各自厂商的理解,缺乏统一行业数据模型和行业语义。可供参考的国内卫生信息数据元、数据集标准并非完整的行业语义,例如没有业务实体模型和数据元关系定义。传统的数据平台建设通常根据业务域,围绕数据应用需求组织数据。经常看到按业务域划分为CDR(临床数据中心)、ODR(运营数据中心)、RDR(科研数据中心)......

这造成了几个挑战:

1. 按业务域、而非业务实体来划分数据,虽然方便相应的业务域数据分析,但跨业务域重叠的业务实体数据,例如患者,需要跨数据中心同步。这些同步由于数据模型上的差异,往往非全息拷贝。随着同步次数越多,跨数据中心的数据越失真,造成数据资产多源不统一、数据资产一致性问题和时效性问题。

2. 数据平台产品语义表达上参差不齐,业务用户依赖数据工程师对数据理解和操作,无论是统计分析还是机器学习,海量的实施工作无法满足业务敏捷性要求;

3. 数据平台及数据应用建设依赖单一厂商的能力,而建设成果,包括数据工具、分析指标和应用都无法跨数据平台复用。

0
3 1165
文章 姚 鑫 · 六月 9, 2023 2m read

第三十章 开发Productions - ObjectScript Productions - 定义业务操作 - 调用适配器方法

调用适配器方法

最常见的是,业务操作不包含用于与外部系统通信的逻辑。相反,业务操作使用处理此逻辑的出站适配器。一旦业务操作与出站适配器相关联,它就会调用适配器的方法来发送和接收数据。有关调用适配器方法的详细信息,请参阅从业务主机访问属性和方法。

向生产中的目标发送请求

尽管业务操作主要负责向特定的外部应用程序传递请求,但它也可以根据需要向其他业务操作或业务流程发送消息。要将消息发送到生产中的目标,请调用 SendRequestSync()SendRequestAsync()SendDeferredResponse()

定义了一个可以使用的附加方法:。

DeferResponse() 方法

此方法中返回一个 %Status,指示成功或失败。它提供了一个引用参数 token,它返回稍后调用 SendDeferredResponse() 所需的延迟响应传递令牌。例如:

   Set sc=..DeferResponse(.token)
   // Send the token out somewhere...
   Quit $$$O

挂起消息

0
0 129
文章 Michael Lei · 六月 9, 2023 2m read

我们想介绍一些在 FHIR 相关培训期间我们从几个人那里收到的问题。


IRIS for Health FHIR 存储库会自动在存储库中分配一个唯一的逻辑 ID (id) 作为资源 POST 期间的默认行为。

例如,如果您发布一个 Patient 资源,例如

{ "resourceType""Patient"

如下面的“id”:“1”所示,资源 id 自动设置为存储库中的唯一值。 (摘自患者资源)

 "meta"

以Patient资源为例,我想使用patient ID,本来就是一个唯一值,作为FHIR repository的资源id!我将介绍在这种情况下如何注册。

POST 请求用于新注册,但 PUT 请求可用于执行指定资源 ID 的注册。

例如,如果患者 ID 为 P101001,则指定的 URL

http://localhost:52773/csp/healthshare/r4fhirnamespace/fhir/r4/Patient /P101001

指定喜欢

示例端点 URL = http://localhost:52773/csp/healthshare/r4fhirnamespace/fhir/r4

此外,在 Body 中指定的 Patient 资源的 JSON 中,

“编号”:“ P101001

指定

执行示例如下。

0
0 258
文章 Lele Yang · 六月 8, 2023 7m read

++ 更新:2018 年 8 月 1 日

使用内置于 Caché 数据库镜像的 InterSystems 虚拟 IP (VIP) 地址有一定的局限性。特别是,它只能在镜像成员驻留在同一网络子网时使用。当使用多个数据中心时,由于增加了网络复杂性( 此处有更详细的讨论),网络子网通常不会“延伸”到物理数据中心之外。出于类似的原因,当数据库托管在云端时,虚拟 IP 通常无法使用。

负载均衡器(物理或虚拟)等网络流量管理设备可用于实现相同级别的透明度,为客户端应用程序或设备提供单一地址。网络流量管理器自动将客户端重定向到当前镜像主服务器的真实 IP 地址。自动化旨在满足灾难后 HA 故障转移和 DR 升级的需求。

0
0 237
文章 Jingwei Wang · 六月 8, 2023 2m read

数据分集 (测试数据可以在网上下载 https://catalog.data.gov/dataset/

1. 创建训练集,80%用于训练集。

CREATE TABLE DataMining.DiabetesTraining AS SELECT top 641 Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin,BMI, Age, Outcome from DataMining.DSTable order by ID

2. 创建测试集,20%用于测试集。

CREATE TABLE DataMining.DiabetesTest AS SELECT top 127 Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI,Age, Outcome from DataMining.DSTable order by ID DESC

Integrated ML

1. 创建ML配置

此步骤用来配置Provider 及不同Provider所使用的配置参数。

InterSystems IRIS提供三种Provider,AutoMLH2ODataRobot,本实验使用默认Provider - AutoML ,所以可以忽略创建ML配置步骤。

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

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

0
0 212
文章 Jingwei Wang · 六月 8, 2023 1m read

在InterSystems IRIS中重新加载更新后的Python模块的方式和直接使用Python 重新加载模块的方式是一样的。

Python3.4 之后到版本中,直接使用Python 重新加载模块的方式如下:

import importlib
​
importlib.reload(module)

同样,在在InterSystems IRIS中重新加载Python模块的方式与其没有区别,示例如下:

ClassMethod Hello() As %Status
{
 Set sc = $$$OK
 Set sm = ##class(%SYS.Python).Import("sample")
 Set importlib = ##class(%SYS.Python).Import("importlib")
 do importlib.reload(sm)
 write sm.hello()
 Return sc
}
​
0
0 166
文章 姚 鑫 · 六月 8, 2023 2m read

第二十九章 开发Productions - ObjectScript Productions - 定义业务操作 - 定义消息处理程序方法

定义消息处理程序方法

当创建业务操作类时,通常最大的任务是编写用于此适配器的消息处理程序,即接收生产消息的方法,然后调用适配器的方法以便与生产之外的目标进行通信。

每个消息处理程序方法都应具有以下签名:

Method Sample(pReq As RequestClass, Output pResp As ResponseClass) As %Status

这里Sample是方法名,RequestClass是请求消息类名,ResponseClass是响应消息类名。

通常,该方法应执行以下部分或全部操作:

  1. 可选地设置业务操作类的属性(在任何适当的时间)。请参阅业务运营属性。
  2. 检查输入对象。
  3. 创建响应类的实例。
  4. 调用适配器的适用方法。这些方法可通过业务操作的 Adapter 属性使用。例如:
    Set tSc=..Adapter.SendMail(email,.pf)

在这些步骤之后讨论此方法。

或者,要将消息发送到Productions中的目标,请参阅将消息发送到中的目标。

  1. 检查响应。
  2. 使用响应中的信息创建响应消息(Ens.Response 在的实例),该方法将其作为输出返回。
  3. 确保设置输出参数 (pOutput)。
0
0 92
文章 Michael Lei · 六月 8, 2023 2m read

嗨社区!

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

这个应用需要用到 Open Exchange 上的两个组件:@Nikolay SolovyevTelegram Adapter@Kurro LopezIRIS Open-AI

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

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

0
0 252
公告 Michael Lei · 六月 8, 2023

如果您已经使用%UnitTest 框架构建了单元测试,或者正在考虑这样做,请查看InterSystems 测试管理器Test Manager

无需离开 VS Code,您现在可以浏览单元测试、运行或调试它们,并查看之前的运行结果。

InterSystems 测试管理器适用于 ObjectScript 扩展支持的两种源代码位置范例。您的单元测试类可以在 VS Code 的本地文件系统(“客户端编辑”范例)或服务器命名空间(“服务器端编辑”)中掌握。在这两种情况下,实际测试运行都发生在服务器命名空间中。

欢迎反馈。

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

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

0
0 157
文章 姚 鑫 · 六月 6, 2023 5m read

第二十七章 开发Productions - ObjectScript Productions - 定义业务流程 - 关键原则

关键原则

在开发业务流程时,请考虑以下关键原则:

  • 有时希望使响应对象成为传入请求对象的修改版本,分阶段进行修改可能很有用。但是,不要修改传入的请求对象。而是将其复制到上下文变量(或者,对于自定义业务流程,将数据复制到局部变量)。然后修改副本。
  • 同步发送消息时要小心(只能在自定义业务流程中或 BPL 中的 中执行)。

当业务流程A同步调用业务流程B时,流程A不会继续,直到收到响应。如果进程 A 需要完成对其他进程 (B) 的调用才能完成自身,并且如果这些进程共享参与者作业池,则如果没有空闲的参与者作业来处理被调用的业务流程,则参与者池可能会陷入死锁( ).

发生这种情况是因为在被调用业务流程返回之前,调用业务流程无法完成并释放参与者作业,但被调用业务流程无法执行,因为没有空闲的参与者作业来执行它。

另请注意, 无法在真正的同步调用期间关闭。

最好使用 并在 OnResponse() 方法中处理响应消息。如果需要同步调用,可以通过配置被调用的业务流程(B)使用自己的作业池来避免这个问题。

  • 如果单一作业业务流程发出请求并等待响应,则该流程将失去 FIFO 功能。

因为来自

0
0 113