文章 姚 鑫 · 五月 31, 2023 阅读大约需 4 分钟 第二十一章 开发Productions - ObjectScript Productions - 延迟发送 第二十一章 开发Productions - ObjectScript Productions - 延迟发送 延迟发送 除了同步(等待)和异步(不等待)的直接选择之外,还可以使用称为延迟响应的机制在 IRIS 之外发送消息。 假设一个业务流程希望在 IRIS 之外调用一个动作。它向业务操作发送请求,业务操作执行调用并返回响应。业务流程是任何响应的预期接收者;业务操作只是请求发出和响应进来的方式。如果业务流程同步发出请求,或者如果它发出请求并请求异步响应,业务操作将中继回响应。下图总结了这种机制。 现在假设从业务流程接收请求的业务操作已被编写为使用延迟响应功能。原始发件人不知道响应将被业务操作延迟这一事实。延迟响应是业务运营开发人员做出的设计决策。如果业务操作确实延迟了响应,那么当原始发送者在延迟期结束时收到响应时,它不知道响应曾经被延迟过。 #InterSystems IRIS 0 0 0 95
公告 Claire Zheng · 五月 18, 2023 创意社区新闻摘要#6 | InterSystems Ideas News#6 Hi 开发者社区的成员们,大家好! 欢迎关注我们第6期 InterSystems Ideas News! 本期分享如下: ✓ 社区成员上个月实施的创意 ✓ 如何在 InterSystems Ideas 上创建新创意 ✓ 最近产生的新创意 #InterSystems 想法门户 1 0 0 95
文章 姚 鑫 · 四月 21, 2023 阅读大约需 5 分钟 第三十五章 配置镜像 - 配置与镜像的应用程序服务器连接 第三十五章 配置镜像 - 配置与镜像的应用程序服务器连接 当使用镜像的自动部署方法中描述的方法之一部署具有镜像数据服务器的分布式缓存集群时,所有需要的配置都是自动的。当使用Management Portal 部署集群时,必须在将数据服务器添加到每个应用程序服务器时指明该数据服务器是一个镜像。当数据服务器通过任何方法配置为镜像连接时,每个应用程序服务器定期从主服务器收集有关镜像的更新信息,自动检测故障转移并根据需要将连接重定向到新的主服务器。 有关使用自动部署方法配置镜像数据服务器的信息,请参阅镜像的自动部署方法中列出的文档。要手动将镜像配置为分布式缓存集群中的数据服务器,请使用以下过程: #InterSystems IRIS 0 0 0 95
文章 姚 鑫 · 三月 27, 2023 阅读大约需 4 分钟 第十章 镜像架构和规划 - 仲裁器中断的影响 第十章 镜像架构和规划 - 仲裁器中断的影响 仲裁器中断的影响 仲裁器的中断对镜像的可用性没有直接影响。但是,如果在恢复仲裁器之前发生了自动故障转移以响应主中断场景中的主中断场景5或6,则备份无法自动接管。 备份中断的影响 在主应用程序可以恢复处理之前,某些应用程序可能会经历短暂的暂停(大约是 QoS 超时)。如果没有配置仲裁器,或者如果仲裁器在备份中断之前变得不可用,则经历的暂停可能会稍微长一些(大约是QoS 超时的三倍)。如果在恢复备份之前发生主要中断,则结果是整个镜像中断。 主要和仲裁联合中断的影响 这种情况的后果在响应主要中断情况的自动故障转移中进行了介绍。简而言之,如果备份可以联系主的 ISCAgent,它就会接管;如果不是,结果是整个镜像中断,手动干预强制备份成为主要可能是一个合适的选择。 #Caché 0 0 0 95
公告 Claire Zheng · 八月 2, 2022 探索之夏——来开发者社区提问,获取400积分! Hi 社区成员们, 我们希望你正在经历一个激情而又鼓舞人心的夏天(你所在的地方也有可能是冬天:D)! 今天我们在开发者社区启动“探索之夏”活动,详情如下: #Global Masters 0 0 0 95
文章 姚 鑫 · 七月 19, 2022 阅读大约需 8 分钟 第一章 创建 REST 服务简介 第一章 创建 REST 服务简介 本文介绍 IRIS® 中的 REST 和 REST 服务。 #REST API #Caché 0 0 0 95
文章 姚 鑫 · 七月 6, 2022 阅读大约需 4 分钟 第二十章 使用工作队列管理器(三) 第二十章 使用工作队列管理器(三) 管理类别 一个类别是一个独立的worker jobs池。当初始化一组worker jobs时,可以指定提供worker的类别。如果集合中的任何worker jobs在执行work项时请求额外的worker jobs,则新的worker jobs来自同一类别。 例如,假设系统提供的 SQL 类别分配了最多 8 个worker。然后,假设与BusinessIntelligence相关的流程创建了一个类别,并将最多四个worker分配给该类别。如果 SQL 池中的所有worker在给定时间都参与了工作,则 BusinessIntelligence 类别中的worker可能仍然可以立即处理工作项。 系统包括两个不能删除的类别:SQL 和 Default。 SQL 类别适用于系统执行的任何 SQL 处理,包括查询的并行处理。当在未指定类别的情况下初始化一组worker jobs时,默认类别提worker jobs。 每个类别都具有影响该类别中每个工作队列的行为的属性。这些属性是: #SQL #Caché 0 0 0 95
文章 姚 鑫 · 五月 24, 2022 阅读大约需 1 分钟 第152章 SQL函数 $TSQL_NEWID 第152章 SQL函数 $TSQL_NEWID 大纲 $TSQL_NEWID() 描述 $TSQL_NEWID 返回一个全局唯一 ID (GUID)。 GUID 用于在偶尔连接的系统上同步数据库。 GUID 是一个 36 个字符的字符串,由 32 个十六进制数字组成,由连字符分成五组。它的数据类型是 %Library.UniqueIdentifier。 在 SQL 中提供了 $TSQL_NEWID 以支持Transact-SQL (TSQL)。对应的 TSQL 函数是 NEWID。 $TSQL_NEWID 函数不接受任何参数。请注意,参数括号是必需的。 #SQL #Caché 0 0 0 95
文章 Michael Lei · 五月 17, 2022 阅读大约需 3 分钟 InterSystems 最佳实践系列之使用Doker和配置文件模版来部署Sharded 集群 在这篇文章中,我们将使用docker和 参数配置文件模版 这一新特性来运行IRIS集群且轻松配置好。 在 UNIX® 和 Linux 上,您可以使用声明式参数配置合并文件来修改默认的 iris.cpf。合并文件是一个部分 CPF,在实例启动时为任何数量的参数设置所需的值。CPF 合并操作对每个实例只起一次作用。 我们的集群架构非常简单,它将由一个主节点(Node1)和两个数据节点(检查所有可用角色)组成。不幸的是,docker-compose不能部署到几个服务器上(尽管它可以部署到远程主机上),所以这对本地开发分片的数据模型、测试等很有用。如果是生产的InterSystems IRIS集群部署,你应该使用ICM云管理器或IKO K8S调度器。 #Docker #分片 #新手 #InterSystems IRIS Open Exchange app 0 0 0 95
文章 姚 鑫 · 一月 8, 2022 阅读大约需 1 分钟 第十八章 SQL函数 ASCII 第十八章 SQL函数 ASCII 一个字符串函数,返回字符串表达式的第一个(最左边)字符的整型ASCII码值。 大纲 ASCII(string-expression) {fn ASCII(string-expression)} 参数 string-expression - 字符串表达式,它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHAR或VARCHAR)。 CHAR或VARCHAR类型的字符串表达式。 描述 如果传入一个NULL或空字符串值,ASCII将返回NULL。 空字符串返回NULL与SQL Server一致。 #SQL #Caché 0 0 0 95
文章 姚 鑫 · 八月 27, 2021 阅读大约需 2 分钟 Storage关键字SqlRowIdProperty,SqlTableNumber,State,StreamLocation,Type 第153章 Storage关键字 - SqlRowIdProperty 指定SQL RowId属性。 大纲 <SqlRowIdProperty>prop</SqlRowIdProperty> 值 该元素的值是一个SQL标识符。 描述 此元素仅由从早期InterSystems产品迁移的类使用。 默认值 <SqlRowIdProperty>元素的默认值为空字符串。 第154章 Storage关键字 - SqlTableNumber 指定内部SQL表号。 大纲 <SqlTableNumber>123</SqlTableNumber> 值 该元素的值是一个表号。 #Caché 0 0 0 95
文章 姚 鑫 · 八月 3, 2021 阅读大约需 3 分钟 索引关键字Unique,Abstract,ClientName,CodeMode 第五十七章 索引关键字 - Unique 指定索引是否应强制唯一性。 用法 要指定IRIS应强制此索引所基于的属性具有唯一性,请使用以下语法: Index name On property_expression_list [ Unique ]; 否则,请省略此关键字或将该词放在该关键字之前。 详情 如果存在UNIQUE关键字,则表示这是唯一索引。 由唯一索引索引的属性(或多个属性)被约束为在定义索引的类(表)的范围(所有对象的集合)内具有唯一值(即,没有两个实例可以具有相同的排序值)。 唯一索引不能也是位图索引。 示例 Index SSNIdx On SSN [ Unique ] ; 默认 如果省略此关键字,IRIS不会强制此索引所基于的属性具有唯一性。 第五十八章 方法关键字 - Abstract 指定这是否是抽象方法。 #Caché 0 0 0 95
公告 Claire Zheng · 一月 7, 2021 Global Masters_ Open Exchange 上每个 ZPM 应用程序的奖励积分 亲爱的社区用户,您好! 您可能知道,您在 Open Exchange 上每发布一个应用程序都会获得 Global Masters 积分奖励。 最近,我们针对 ZPM 应用程序推出了附加积分。 现在,您的每个 ZPM 应用程序都会为您赢得额外的 400 积分!积分将自动调整。 立即查看 Global Masters 上的积分和可用奖励! #InterSystems Package Manager (IPM) #Global Masters #Open Exchange 0 0 0 95
公告 Claire Zheng · 七月 4, 2024 积极参与社区互动,赢取中文社区最佳贡献奖! 👉即日起积极参与社区互动,就有机会获得赠书《AI医疗革命》(中文版)! #活动 #其他 0 0 0 94
文章 Hao Ma · 三月 19, 2024 阅读大约需 3 分钟 IRIS/Caché SQL优化经验分享 - 检查索引的完整性 Caché/IRIS的特点是运行Global的修改,而这个修改和SQL是无关的,因此非常容易出现数据库表数据完整性的问题,也就是表中的数据是不是符合定义的表约束。 这样的情况非常常见。有些是人为的对Global的错误修改, 有些是应用系统的事务性管理写的不对,造成事务回滚的时候破坏了索引的完整性。无论什么原因,只要使用Global操作,破坏SQL的完整性非常难以避免。结果就是SQL查询给出错误结果。 最简单的解决方法就是执行“索引检查(Validate Indices)" 我们来做个实验 - 先修改一个global: 如下图, 将Patient表的一个记录的SEX字段,从'M'改到‘F'. 运行索引检查, 结果会提示您问题在什么地方。 #SQL #新手 #InterSystems IRIS 1 0 0 94
公告 jieliang liu · 十月 18, 2023 [视频] FHIR 上的临床警报和通知:将医疗保健行动引擎纳入工作流程 你好社区, 观看此视频,了解如何将 FHIR、CDS Hooks 和低代码医疗保健规则编辑器组合成一个易于使用、功能强大的平台,以帮助确保以最佳方式传递信息: ⏯ FHIR 临床警报和通知:将医疗保健行动引擎纳入 2023 年全球峰会工作流程 //player.bilibili.com/player.html?aid=704852301&bvid=BV12Q4y1s71g&cid=1303145533&p=1[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。] #FHIR #视频 #InterSystems IRIS for Health 0 0 0 94
文章 姚 鑫 · 十月 12, 2022 阅读大约需 3 分钟 第十四章 CSP 中的 HTTP 请求 - CSP.Page 类 第十四章 CSP 中的 HTTP 请求 - CSP.Page 类 在 CSP 服务器上,所有 HTTP 请求都通过调用由类中的 %CSP.Page 定义的方法来处理。类中的 %CSP.Page 从不直接处理请求本身;它只是定义了处理 HTTP 请求所需的接口。实际的事件处理的 %CSP.Page 的子类完成(手动创建或作为处理 CSP 源文件的结果)。 %CSP.Page 的子类永远不会被实例化;也就是说,不会在对象中创建 %CSP.Page。 %CSP.Page 定义的方法都是类方法,不需要对象即可调用。正如我们将看到的,这些方法所需的任何状态信息都由 CSP 服务器管理的其他对象(例如%CSP.Request 和对象中的 %CSP.Session)提供。 #CSP #Caché 2 0 0 94
文章 姚 鑫 · 十月 9, 2022 阅读大约需 3 分钟 第十一章 CSP 架构 - Web Application Settings 第十一章 CSP 架构 - Web Application Settings Special Case: DeepSee 对于使用 DeepSee 的 Web 应用程序,它需要访问 %DeepSee 包中的所有类。要使特定应用程序能够使用 DeepSee,请在 %SYS 命名空间中使用以下命令: Do EnableDeepSee^%SYS.cspServer("/csp/webapp/") 其中 web-app-name 是带有斜杠的 Web 应用程序名称。前面的命令等价于以下命令: #CSS #Caché 0 0 0 94
文章 姚 鑫 · 八月 23, 2022 阅读大约需 3 分钟 第十章 配置数据库(二) 第十章 配置数据库(二) 本地数据库 “本地数据库”页面显示关于系统上的数据库的以下信息: Name—数据库名称。 Mirror——如果数据库是镜像的,则镜像的名称; Directory - IRIS.DAT 文件的位置。 Size 大小 (MB) — 以 MB 为单位的数据库大小。 Status 状态 — 指定数据库是挂载、卸载还是卸载;如果已挂载,则指定它是否具有只读或读写权限。 Resource Name资源名称 — 控制对数据库的访问的数据库资源的名称; Encrypted — 指定数据库是否加密; Journal 指定数据库是否被记录; 创建本地数据库 要创建本地数据库,请导航到本地数据库页面(系统管理 > 配置 > 系统配置 > 本地数据库)。 #Caché 0 0 0 94
文章 姚 鑫 · 七月 20, 2022 阅读大约需 4 分钟 第二章 使用 api mgmnt 服务 第二章 使用 /api/mgmnt/ 服务 本章介绍如何使用 /api/mgmnt 服务来创建、更新和删除 REST 服务。 /api/mgmnt 服务还提供了可用于发现和记录 Web 服务的选项,如本书后面所述。 使用 /api/mgmnt 服务创建 REST 服务 创建 REST 服务的推荐方法是为 REST 服务创建 OpenAPI 2.0(也称为 Swagger)描述,并使用它来生成 REST 服务类。如果您正在实现由第三方定义的 REST 服务,他们可能会提供此 OpenAPI 2.0 描述。有关 OpenAPI 2.0 描述格式的详细信息,请参阅 OpenAPI 2.0 规范。以下主题描述了如何使用 /api/mgmnt 服务来执行此操作。 #Caché 0 0 0 94
文章 姚 鑫 · 七月 8, 2022 阅读大约需 2 分钟 第二十二章 安全自定义 Web 应用程序登录 第二十二章 安全自定义 Web 应用程序登录 除了推荐的 REST 应用程序支持之外,产品还支持两种类型的传统 Web 应用程序:CSP 和 Zen。在配置使用 CSP 和 Zen 的自定义登录页面时,遵循推荐的协议很重要。这些协议提供了更高的安全性,并最大限度地减少了升级到新产品或版本时的不兼容性。 关于创建自定义 CSP 登录页面 创建自定义 CSP 登录页面: #SQL #Caché 0 0 0 94
问题 sun yao · 七月 1, 2022 %XML.XPATH.Document的CreateFromFile方法 解析https的webService服务报错 unsupported protocol %XML.XPATH.Document中CreateFromFile方法,pSource入参传https开头的webService地址,解析报错“错误 #6901: XSLT XML转换器错误: unsupported protocol in URL in at line 0 offset 0” #Ensemble 1 1 0 93
公告 Claire Zheng · 十一月 14, 2021 大突破:全球开发者社区已有1万名成员! 中国开发者社区不到一年时间突破270人!增速全球第一! 亲爱的开发者们,我们很高兴地跟大家分享一个好消息! 我们的社区全球注册会员突破10000名!中国开发者社区不到一年时间突破270人!增速全球第一!这是一个了不起的成就!感谢大家的支持🎊 在InterSystems,我们相信社区的力量。所以我们非常感谢你们在过去六年里所做的贡献,并期待未来的道路! #开发者社区官方 1 0 0 94
文章 Claire Zheng · 九月 2, 2021 Caché从零基础到精通-第22讲 Do命令 //player.bilibili.com/player.html?aid=975150747&bvid=BV1x44y1C7qP&cid=400717734&page=1[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。] #视频 #Caché 0 0 0 94
文章 Claire Zheng · 七月 20, 2021 阅读大约需 1 分钟 扫码看回放 | InterSystems极客俱乐部线上直播课:Health Connect 系统运维培训 InterSystems极客俱乐部线上直播课“Health Connect系统运维培训”回放已准备好,欢迎您点击报名,扫码看回放! #活动 #其他 0 0 0 94
文章 Qiao Peng · 三月 5, 2021 阅读大约需 3 分钟 [InterSystems IRIS 初探] 让我们使用互操作性 大家好! InterSystems IRIS 有一个名为 Interoperability(互操作性)的菜单。 它提供了轻松创建系统集成(适配器、记录映射、BPM、数据转换等)的机制,因此可以轻松连接不同的系统。 数据中继过程中可以包括各种操作,例如:为了连接没有正常连接的系统,可以根据目标系统的规范来接收(或发送)数据。 此外,在发送数据之前,可以从其他系统获取和添加信息。 还可以从数据库(IRIS 等)获取和更新信息。 在本系列文章中,我们将讨论以下主题,同时查看 示例代码 以帮助您了解工作原理以及在系统中集成互操作性时需要进行哪种开发。 #REST API #互操作性 #新手 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 94
文章 姚 鑫 · 二月 2, 2021 阅读大约需 3 分钟 第二十二章 Caché 变量大全 $X 变量 第二十二章 Caché 变量大全 $X 变量 包含光标的当前水平位置。 大纲 $X 描述 $X包含光标的当前水平位置。将字符写入设备时,Caché会更新$X以反映水平光标位置。 输出的每个可打印字符将$X加1。回车符(ASCII 13)或换页符(ASCII 12)将$X重置为0(零)。 $X是16位无符号整数。 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 94
文章 Jingwei Wang · 二月 15, 2024 阅读大约需 4 分钟 使用嵌入式 Python 和 OpenAI API 在 IRIS 中进行数据标签 大型语言模型(例如 OpenAI 的 GPT-4)的发明和普及掀起了一波创新解决方案浪潮,这些解决方案可以利用大量非结构化数据,在此之前,人工处理这些数据是不切实际的,甚至是不可能的。此类应用程序可能包括数据检索(请参阅 Don Woodlock 的 ML301 课程,了解检索增强生成的精彩介绍)、情感分析,甚至完全自主的 AI 代理等! 在本文中,我想演示如何使用 IRIS 的嵌入式 Python 功能直接与 Python OpenAI 库交互,方法是构建一个简单的数据标记应用程序,该应用程序将自动为我们插入IRIS 表中的记录分配关键字。然后,这些关键字可用于搜索和分类数据,以及用于数据分析目的。我将使用客户对产品的评论作为示例用例。 ##嵌入式 Python #Artificial Intelligence (AI) #API #ObjectScript #Python #分析 #非结构化数据 #InterSystems IRIS 0 0 0 93
文章 姚 鑫 · 八月 8, 2023 阅读大约需 3 分钟 第十六章 定义 HL7 的 DTL 数据转换 - 转换长段字段 第十六章 定义 HL7 的 DTL 数据转换 - 转换长段字段 转换长段字段 DTL 转换使用的 ObjectScript 方法 GetValueAt 将 HL7 段字段截断为 3.6MB。因此,当转换长度超过 3.6MB 的字段时,无法在 DTL 编辑器中使用从左到右的拖动操作。例如,如果 OBX:5 字段超过 3.6MB,则无法使用 DTL 编辑器将源字段拖动到目标,因为它将被截断。同样,如果要转换的字段长度超过 3.6MB,则自定义代码不应调用 GetValueAt。 #InterSystems IRIS for Health 0 0 0 93
文章 姚 鑫 · 六月 14, 2023 阅读大约需 4 分钟 第五十七章 镜像中断程序 - 在手动故障转移之前确定备份是否处于活动状态 第五十七章 镜像中断程序 - 在手动故障转移之前确定备份是否处于活动状态 在手动故障转移之前确定备份是否处于活动状态 假设有两个名为 IRIS A 和IRIS B 的故障转移成员。如果 ^MIRROR 例程确认备份 (IRIS B) 在与主 (IRIS A) 丢失联系时处于活动状态,因此具有最新的来自 IRIS A 的日志数据,可以使用单个过程手动进行故障转移。当连接因主要故障而丢失时,不会造成数据丢失的风险。但是,当发生多个故障时,活动备份可能没有来自主服务器的所有最新日志数据,因为主服务器在连接丢失后继续运行了一段时间。 使用以下过程确定备份是否处于活动状态: #InterSystems IRIS for Health 1 0 1 93