文章
· 三月 23, 2021 阅读大约需 12 分钟
第十三章 使用动态SQL(一)

第十三章 使用动态SQL(一)

动态SQL简介

动态SQL是指在运行时准备并执行的SQL语句。在动态SQL中,准备和执行SQL命令是单独的操作。通过动态SQL,可以以类似于ODBC或JDBC应用程序的方式在InterSystems IRIS中进行编程(除了要在与数据库引擎相同的进程上下文中执行SQL语句)。动态SQL是从ObjectScript程序调用的。

动态SQL查询是在程序执行时准备的,而不是在编译时准备的。这意味着编译器无法在编译时检查错误,并且不能在Dynamic SQL中使用预处理器宏。这也意味着执行程序可以响应用户或其他输入而创建专门的Dynamic SQL查询。

动态SQL可用于执行SQL查询。它也可以用于发出其他SQL语句。本章中的示例执行SELECT查询。

动态SQL用于执行InterSystems IRIS SQL Shell,InterSystems IRIS管理门户网站“执行查询”界面,SQL代码导入方法以及“数据导入和导出实用程序”。

在Dynamic SQL(和使用它的应用程序)中,行的最大大小为3,641,144个字符。

0 0
0 528
文章
· 四月 14, 2021 阅读大约需 8 分钟
第二章 定义和构建索引(二)

第二章 定义和构建索引(一)

定义索引

使用带有索引的Unique、PrimaryKey和IdKey关键字

与典型的SQL一样,InterSystems IRIS支持惟一键和主键的概念。
InterSystems IRIS还能够定义IdKey,它是类实例(表中的行)的唯一记录ID。
这些特性是通过UniquePrimaryKeyIdKey关键字实现的:
- Unique -在索引的属性列表中列出的属性上定义一个唯一的约束。
也就是说,只有这个属性(字段)的唯一数据值可以被索引。
唯一性是根据属性的排序来确定的。
例如,如果属性排序是精确的,则字母大小写不同的值是唯一的;
如果属性排序是SQLUPPER,则字母大小写不同的值不是唯一的。

但是,请注意,对于未定义的属性,不会检查索引的惟一性。
根据SQL标准,未定义的属性总是被视为唯一的。

0 0
0 140
文章
· 五月 12, 2021 阅读大约需 11 分钟
InterSystems 数据平台和性能 - 第 5 篇 使用 SNMP 进行监控

InterSystems 数据平台和性能 - 第 5 部分 使用 SNMP 进行监控

在之前的帖子中,我展示了如何使用 pButtons 收集历史性能指标。 我首选 pButtons 是因为我知道它随每个数据平台实例(Ensemble、Caché、...)一起安装。 不过,还有其他方法可以实时收集、处理和显示 Caché 性能指标,以进行简单的监视,或进行更重要的并且复杂得多的运营分析和容量计划。 最常见的数据收集方法之一是使用 SNMP(简单网络管理协议)。

SNMP 是 Caché 向各种管理工具提供管理和监控信息的标准方式。 Caché 在线文档包含了 Caché 和 SNMP 之间接口的详细信息。 虽然 SNMP 应该可以直接与 Caché 配合工作,但仍有一些配置技巧和陷阱。 我经历了很多次错误的开始,并且在 InterSystems 其他同事的帮助下,才让 Caché 与操作系统 SNMP 主代理建立对话,所以我写了这篇帖子,希望您可以避免同样的痛苦。

在本帖中,我将介绍如何为 Red Hat Linux 上的 Caché 设置和配置 SNMP,您应该能够对其他 *nix 版本使用相同步骤。 我使用 Red Hat 写这篇文章是因为在 Linux 上进行设置更棘手一些;在 Windows 上,Caché 会自动安装一个 DLL 来与标准 Windows SNMP 服务连接,所以应该更容易配置。

0 2
1 331
文章
· 五月 15, 2021 阅读大约需 4 分钟
第一章 单元测试概述

第一章 单元测试概述

本教程的第一部分概述了单元测试。完成本教程的这一部分后,将能够:
- 定义单元测试并区分单元测试和集成测试
- 列出单元测试的几个好处
- 描述InterSystems IRIS %UnitTest包和xUnit测试框架之间的相似性。
- 列出软件开发中测试优先方法经常声称的几个好处。

什么是单元测试?

单元测试是对单个代码模块的正确性的测试,例如,方法或类的测试。通常,开发人员在开发代码时为其代码创建单元测试。典型的单元测试是一种执行方法的方法,该方法测试并验证该方法是否为给定的一组输入生成了正确的输出。

单元测试不同于集成测试。集成测试验证了一组代码模块交互的正确性。单元测试仅单独验证代码模块的正确性。一组代码模块的集成测试可能会失败,即使每个模块都通过了单元测试。

为什么要进行单元测试?

单元测试提供了许多好处,包括:

0 0
0 77
文章
· 五月 24, 2021 阅读大约需 7 分钟
第五章 向邮件添加附件

第五章 向邮件添加附件

向邮件添加附件

可以将附件添加到电子邮件或消息部分(具体地说,是添加到%Net.MailMessagePart%Net.MailMessage的实例)。要执行此操作,请使用以下方法:

这些方法中的每一种都会将附件添加到原始邮件(或邮件部分)的Parts数组中,并自动将IsMultiPart属性设置为1。

0 0
0 89
文章
· 七月 6, 2021 阅读大约需 16 分钟
精华文章--虚拟化大型数据库 - VMware CPU 容量规划

供应商或内部团队要求说明如何为 VMware vSphere 上运行的大型生产数据库进行 CPU 容量规划。

总的来说,在调整大型生产数据库的 CPU 规模时,有几个简单的最佳做法可以遵循:

  • 为每个物理 CPU 核心规划一个 vCPU。
  • 考虑 NUMA 并按理想情况调整虚拟机规模,以使 CPU 和内存对于 NUMA 节点是本地的。
  • 合理调整虚拟机规模。 仅在需要时才添加 vCPU。

通常,这会引出几个常见问题:

  • 由于使用超线程技术,VMware 创建的虚拟机的 CPU 数量可以是物理 CPU 数量的两倍。 那不就是双倍容量吗? 创建的虚拟机不应该有尽可能多的 CPU 吗?
  • 什么是 NUMA 节点? 我应该在意 NUMA 吗?
  • 虚拟机应该合理调整规模,但我如何知道什么时候合理?

我以下面的示例回答这些问题。 但也要记住,最佳做法并不是一成不变的。 有时需要做出妥协。 例如,大型生产数据库虚拟机很可能不适合 NUMA 节点,但我们会看到,其实是没问题的。 最佳做法是指必须针对应用程序和环境进行评估和验证的准则。

0 0
0 862

2021年9月13日,中国 北京—— 致力于帮助客户解决最关键的可扩展性、互操作性和速度问题的创新数据技术提供商InterSystems今日宣布在中国推出InterSystems IRIS医疗版互联互通套件,以满足医院信息化建设的标准化要求,促进业务协同,助力公立医院高效建设互联互通平台。

0 1
0 216
文章
· 十一月 9, 2021 阅读大约需 1 分钟
翻译文章--通过ODBC用Appeon PowerBuilder连接IRIS

https://www.appeon.com/products/powerbuilder

Appeon PowerBuilder 是一个企业级开发工具,可以用来建立数据驱动的商业应用程序和组件。它是Appeon产品套件之一,同时提供了开发C/S、Web、移动和分布式应用程序的工具。

在这篇文章中,我将展示通过使用ODBC用Appeon PowerBuilder连接Caché的步骤。

步骤1 :
确保在安装IRIS时选择ODBC驱动程序选项。

0 0
0 147
文章
· 一月 14, 2022 阅读大约需 5 分钟
翻译文章--医疗行业的下一代数字孪生

我们为什么要关注医疗领域的数字孪生?


环顾四周,你会看到无数的设备监测和收集我们身体状态数据的例子。可穿戴智能手表和健身追踪器、医疗成像设备、数字健康应用程序、温度计等。同样,这些设备本身也在产生关于其当前运行环境和状况的大量数据。但是,我们如何才能理解所有这些数据,并从中获得有意义的洞察?一种可能性是对这些数据进行动态展示,即所谓的数字孪生。

数字孪生是一个物理对象或系统在其生命周期内的虚拟表达。这意味着,数字孪生包含了关于其现实世界对应物状态的最新和历史数据。将这些动态数据纳入不同医疗应用的虚拟表示中,可以实现主动决策、流程优化和医疗领域的完整生命周期管理。

0 0
0 404

4月12日,新一期“极客俱乐部”在线分享即将推出,InterSystems中国技术总监乔鹏将分享“InterSystems数据平台与三级等保”这一主题,聊聊数据平台如何保护信息安全,以及如何配置、管理数据平台,以满足三级等保要求。点击链接报名参会,或扫描下方二维码参会。

0 0
0 102

Alt Text

大家好!

在这里跟大家分享一下我在大奖赛上的项目 :)

FHIR病人查看器是一个建立在Vue.js上的单页、反应式渲染工具,它以对人友好的方式显示从对InterSystems FHIR服务器的/Patient/{id}/$everything调用返回的数据。在自述文件中,包括3个主要内容:
1. 一个视频演示,将FHIR患者浏览器连接到一个沙盒IRIS FHIR服务器上(这是测试它的最快方法);
2.第二个视频显示我如何在生产环境中使用FHIR患者浏览器(使用一个定制的后端来处理API调用,在我的例子中用PHP/Laravel编写,但可以转移到其他语言/框架);
3.修改组件的说明,创建你自己版本的工具,并建立你自己的dist文件。

谢谢大家! 本次大赛的参赛作品质量很好!

Dan

0 0
0 72


InterSystems SQL为存储在IRIS数据库中的数据提供不折不扣的、标准的关系型访问。

InterSystems SQL具有以下优点。

高性能和可扩展性 - InterSystems SQL的性能和可扩展性优于其他关系型数据库产品。

与IRIS对象技术的集成 - InterSystems SQL与IRIS对象技术紧密集成。你可以混合使用关系型和对象型的数据访问,而不牺牲任何一种方法的性能。

低维护 - 与其他关系型数据库不同,IRIS应用程序不需要在部署的应用程序中重建索引和压缩表。

支持标准SQL查询 - InterSystems SQL支持SQL-92标准语法和命令。

0 0
0 242
文章
· 九月 24, 2022 阅读大约需 2 分钟
2022亚太地区数字医疗五大趋势(摘要)

亚太地区的医疗数字化环境正在快速发展。在不断增长的消费者需求、快速发展的技术和更复杂的护理需求的驱动下,医疗机构正面临着提供数字优先、无缝、可持续的医疗服务的压力。

网络攻击不断增加、人们对安全问题的关注也越来越多、不断上升的医疗成本,以及数据的爆炸性增长,医疗机构正在转向数字医疗技术,以希望把复杂的事情变得简单。

在2022年,哪些趋势正在塑造亚太地区医疗服务的未来?哪些机会是成熟的创新?医疗行业领导者如何确保他们的组织能够做好准备来利用新出现的机会?

趋势一 不断增长的数据量带来了复杂性

在我们寻找新的方法来利用数据的同时,数据量继续上升,越来越多的数据被综合起来,以建立有意义的联系并提供可指导行动的洞察。

趋势二 人工智能在医疗领域的应用加速

随着医疗行业在人工智能成熟度方面赶上其他行业。数据既是一个关键的成功因素,也是人工智能成功应用的一个障碍。

趋势三 互操作性解决方案释放数据的真正力量

随着部署互操作性解决方案的成本降低,在组织内部和外部,实现真正的互操作性的梦想也在逐步实现。

0 0
0 113
文章
· 十一月 1, 2022 阅读大约需 1 分钟
【动画视频】医院需要什么样的互联互通平台?

医院管理者、信息中心、业务骨干,每个角色都有独特的业务诉求,InterSystems IRIS医疗版互联互通套件专为国内用户设计,截至2021年,InterSystems技术已助力一百余家医院通过四级及以上医院信息互联互通标准化成熟度评级,其中,五乙用户占全国30%以上。

0 0
0 78
文章
· 五月 23, 2023 阅读大约需 1 分钟
【视频】医疗信息系统如何获得真正的互操作性?

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

0 0
0 138

第五十三章 开发Productions - ObjectScript Productions - 不常见的任务 - 使用 Ens.Director 访问设置

使用 Ens.Director 访问设置

即使production未运行,类中的以下 Ens.Director 方法也允许检索生产设置:

GetAdapterSettings()

返回一个数组,其中包含所标识的配置项(业务服务或业务操作)的所有适配器设置的值。该数组由设置名称下标。可以使用 IRIS $ORDER 函数来访问数组的元素。此方法的第一个参数是一个字符串,其中包含由两个竖线 (||) 分隔的产品名称和配置项名称。返回值是状态值。如果状态值不是 $$$OK,则无法找到指定的生产名称 (myProd) 和配置项名称 (myOp) 组合。

0 0
0 72

第六十七章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期 - BO和适配器的生命周期

BO和适配器的生命周期

IRIS 自动管理每个业务操作的生命周期。

Production Startup

Production生产(或更改特定业务操作的配置)时, IRIS 自动为每个配置的业务操作类(即,为Production定义中列出的每个业务操作)执行以下任务:

  1. 它调用类的 OnProductionStart() 回调方法(如果已定义)。

OnProductionStart() 方法是一种类方法,它为Production配置中列出的每个业务操作类调用一次。业务操作类可以使用此回调来执行它可能需要的任何类范围的初始化。

0 0
0 87
文章
· 八月 8, 2023 阅读大约需 3 分钟
第十六章 定义 HL7 的 DTL 数据转换 - 转换长段字段

第十六章 定义 HL7 的 DTL 数据转换 - 转换长段字段

转换长段字段

DTL 转换使用的 ObjectScript 方法 GetValueAtHL7 段字段截断为 3.6MB。因此,当转换长度超过 3.6MB 的字段时,无法在 DTL 编辑器中使用从左到右的拖动操作。例如,如果 OBX:5 字段超过 3.6MB,则无法使用 DTL 编辑器将源字段拖动到目标,因为它将被截断。同样,如果要转换的字段长度超过 3.6MB,则自定义代码不应调用 GetValueAt

0 0
0 82
文章
· 八月 27, 2023 阅读大约需 1 分钟
第十一章 ObjectScript - 操作符

第十一章 ObjectScript - 操作符

操作符

ObjectScript 中的运算符优先级严格是从左到右;在表达式中,运算按照它们出现的顺序执行。可以在表达式中使用显式括号来强制某些操作先于其他操作执行。

通常,即使并不严格需要括号,也会使用括号。很有用,因为它使代码的意图更加清晰。

Familiar Operators

ObjectScript 为常见活动提供以下运算符:

0 0
0 54
文章
· 九月 13, 2023 阅读大约需 1 分钟
去掉了 InstallFoundation 的方法 (IRIS 2023.2+ )

我们最近发布了 IRIS 2023.2版本。
此版本从此类“HS.HC.Util.Installer”中删除了“InstallFoundation”
这是一个没有记录在官方文档中的私有的方法,但它被社区广泛用来安装 FHIR 服务器。
所以如果你遇到这个错误:<METHOD DOES NOT EXIST> *InstallFoundation,HS.HC.Util.Installer
在构建我们自己的 FHIR 服务器的演示时,您可以通过替换此行来修复它:
do ##class(HS.HC.Util.Installer).InstallFoundation (namespace) 替换成 Do ##class(HS.Util.Installer.Foundation).Install(namespace) `

0 0
0 61
文章
· 十二月 16, 2023 阅读大约需 4 分钟
第三十七章 XML 模式的高级选项 - 超类如何表示为类型

第三十七章 XML 模式的高级选项 - 超类如何表示为类型

超类如何表示为类型

如果需要 XML 架构来显示特定的类型层次结构,则需要了解映射如何解释 IRIS 类层次结构。

类层次结构代表了有意义的数据组织等。该层次结构尽可能地反映在相应的 XML 类型定义中。

例如,假设有以下类:
- 名为 Base 的类,定义了三个公共属性(Property1Property2Property3)。
- 名为 Addition1 的类,它扩展 Baseand 并定义一个附加公共属性 (Addition1)。
- 名为 Addition2 的类,它扩展 Addition1 并定义一个附加公共属性 (Addition2)。

0 0
0 42

Gartner魔力象限是业内知名的分析报告,针对特定市场进行严谨、基于事实的研究后发布的魔力象限报告,可为用户提供全面视图,以便其了解在高速增长、差异化明显的市场中供应商的相对位置。在魔力象限中,供应商被定位在四个象限中:领导者(Leader)、挑战者(Challenger)、远见者(Visionary)和利基玩家(Niche Player)。

2023年年底,在 Gartner 2023年最新发布的“云数据库管理系统(Cloud DBMS)魔力象限”中,InterSystems再次荣膺“挑战者”(Challenger)称号,这是InterSystems第三次入围这一报告并得到认可(2022年“远见者”2021年“挑战者”)。

0 0
0 46
文章
· 十一月 12 阅读大约需 3 分钟
第十九章 TCP 客户端 服务器通信 - 数据包模式

第十九章 TCP 客户端 服务器通信 - 数据包模式

数据包模式

如果未指定模式,则默认为数据包模式。如果流模式被禁用,则该模式默认为分组模式。

在分组模式中,只要有一些数据要返回,读取命令就会完成。数据包模式允许在输出缓冲区中构建整个TCP数据段,然后通过发出WRITE*-3WRITE!命令。

如果在没有要发送的字符的情况下发出WRITE*-1来启动一个TCP发送操作,则会收到一个<WRITE>错误。如果发出WRITE OF空字符串,则会收到<COMMAND>错误。

在分组模式下可以发送的字符串的最大长度为1024个字符。如果在未刷新缓冲区的情况下超过此限制,则会收到<WRITE>错误。

0 0
0 9
文章
· 十一月 30 阅读大约需 3 分钟
第三十七章 终端输入 输出 - $ZB 显示结束读取的内容

第三十七章 终端输入 输出 - $ZB 显示结束读取的内容

$ZB 显示结束读取的内容

$ZB显示当前设备上最后一次READ操作结束的字符序列或事件。不能设置$ZB ;每次执行READ时,IRIS 都会设置$ZB的值。可以使用此值来作用于不可打印的字符,例如向上箭头键或功能键。

$ZB可以包含以下任意内容:
- 终止符,例如回车符
- 转义序列
- 固定长度READ x#y的字符数y
- READ *x的单个字符
- 定时读取过期后出现空字符串

$ZB永远不会包含超过 64 个字符。较长的转义序列无效。

0 0
0 7

去年,AWS推出了基于ARM架构的AWS Graviton处理器第一代Amazon EC2 A1实例。在2019年AWS re:Invent 大会上,亚马逊宣布了第二代AWS Graviton2处理器和相关的Amazon EC2 M6g实例。相比前一代基于Intel Xeon的M5实例,Amazon EC2 M6g实例的性价比提升幅度高达40%。

0 1
0 354