文章
· 二月 18, 2022 阅读大约需 6 分钟
SQL语句与数据模式(Select Mode)

在InterSystems IRIS和InterSystems Caché 里,是否您遇到过执行一个SQL Insert/Update语句,明明给的是正确的日期值,但被告知“值‘2022-01-01’ 校验失败”的类似情况,并感到困惑?

如果有,那么您需要了解一下InterSystems IRIS和InterSystems Caché保存和显示数据的模式。



一 数据模式

InterSystems IRIS和InterSystems Caché里,数据有3种模式,称之为SELECT MODE:
逻辑模式:这是数据被保存到InterSystems IRIS和InterSystems Cache'时的格式。例如,%Date类型的数据,在数据库里被保存为一个整数,即从1840年12月31号到这个日期的天数,而不是YYYY-MM-DD的格式。

ODBC模式:这是ODBC对数据定义的格式。在这个模式下,%Date类型的数据就会显示为YYYY-MM-DD的格式。

0 0
0 160

你好,我很高兴地宣布向OpenExchange和目前的比赛提交的一个作品,即FHIR匿名化代理。FHIR匿名化代理为任何现有的FHIR服务器增加了一个透明的匿名化层,使客户能够在FHIR服务器上进行查询--其中可能包含个人识别信息--并收到一个即时的匿名化数据版本。

代理机制是通过互操作性Production、BPLs和DTLs以及FHIR互操作性适配器在IRIS for Health平台上实现的。匿名化包括所有身份ID和个人数据,并可通过DTLs进行配置。

OpenExchange的演示应用程序带有一个内置的FHIR endpoint,并以会填充一些示例数据。试一下,或者将你自己的FHIR服务器配置为代理目标亲自测试一下 smiley

0 0
0 63

医疗行业的互操作性在改善病人护理、降低医疗服务提供者的成本以及为提供者提供更准确的情况方面发挥着重要作用。然而,由于有这么多不同的系统,数据的格式也有很多不同的方式。有许多标准被创造出来以试图解决这个问题,包括HL7v2、HL7v3和CDA,但每一种都有其缺点。

FHIR,即快速医疗互操作性资源,是一种新的医疗数据格式,旨在解决这些问题。它是由国际卫生级七组织(HL7)开发的,该组织还开发了HL7v2、HL7v3和CDA。

今天我们将探讨如何在VS代码中借助IntelliSense和自动完成功能,通过使用FHIR Schema 创建和验证FHIR资源。

第 1 步 :从FHIR 官方网站 https://www.hl7.org/fhir/下载 JSON schema file 文件用来做资源校验

0 0
0 307
文章
· 九月 6, 2022 阅读大约需 4 分钟
Embedded Python - 安装及初步使用

在Windows中,InterSystems IRIS 会将Python引擎一起安装在安装目录中,可以将Python的代码在InterSystems IRIS内核中运行,允许Python代码与ObjectScript代码混合运行,以获得最佳开发性能。一般基于UNIX的操作系统会自带一个Python,所以不会随InterSystems IRIS安装包自动安装Python引擎。

InterSystems IRIS 2021.2 以上的版本中才支持Embedded Python,其余版本不支持使用Embedded Python

0 0
0 497

众说周知,EPIC 是电子病历厂商中当之无愧的领导者,本文让我们看看EPIC是如何玩转FHIR的,并进一步了解其互操作性方法、资源和API工具。

几十年来,EPIC和其他主要的EHR供应商一直在围绕着互操作性作斗争,有时候互相容忍,有时也得接受(开放接口)。

今天,大多数电子病历厂商已经针对市场和监管的压力采取了行动,采用FHIR API标准,扩大病人对医疗记录的访问。

但在早期,EPIC和其他竞争对手争先恐后地抢占市场份额,为了成为院内系统的主导者,与其他厂商分享数据、给别人提供数据访问似乎是自我毁灭。

那么今天,EPIC在FHIR API、SMART on FHIR 应用市场、患者访问和互操作性战略方面的立场如何? 以下是关于EPIC在FHIR API和互操作性上提供的简单介绍和链接。


EPIC 在FHIR API和互操作性上的战略和资源

EPIC互操作性的方法和选择

大多数EPIC集成的重点是通过EPIC系统提供扩展访问,但不一定与其他厂商共享。

0 0
0 247

这是InterSystems 2022年全球峰会上InterSystems 医疗行业负责人 Don Wooklock 的分享,他认为,在数字医疗发展如火如荼的当下,经济、消费主义和技术三股力量正在推动医疗行业快速变革。我们面临着压力,但更多的是机遇,利用好市场能量,在具备变革精神的医疗卫生行业中,全力以赴!

//player.bilibili.com/player.html?aid=264045334&bvid=BV1Ee411c7PB&cid=931490600&page=1
[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

0 0
0 79
文章
· 三月 20, 2023 阅读大约需 4 分钟
第三章 高可用性的故障转移策略

第三章 高可用性的故障转移策略

随着组织越来越依赖基于网络的应用程序,使数据库尽可能可用和可靠变得至关重要。本指南解释了 IRIS 数据平台如何提供高度可用和可靠的数据存储,并描述了从中断和故障中快速恢复并同时保持数据完整性的策略。

IRIS® 数据平台提供多种高可用性 (HA) 解决方案,并可轻松与操作系统供应商提供的所有常见 HA 配置集成。

维持系统高可用性的主要机制称为故障转移。在这种方法下,一个失败的主系统被一个备份系统取代;也就是说,处理故障转移到备份系统。许多 HA 配置还提供灾难恢复机制,即在故障转移机制无法保持系统可用时恢复系统可用性。

IRIS 实例故障转移有五种通用方法以实现 HA(包括不实施 HA 策略)。本章概述了这些方法,而本指南的其余部分提供了实施这些方法的过程。

0 0
0 98

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

//player.bilibili.com/player.html?aid=355449009&bvid=BV1MX4y1z79w&cid=1108550416&page=1
[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

0 0
0 78

第五十一章 开发Productions - ObjectScript Productions - 不常见的任务

定义自定义实用函数

IRIS提供了一组可以从业务规则和DTL中调用的实用函数;这些在开发业务规则的Productions中使用的效用函数中有所描述。可以添加自己的功能,业务规则引擎和业务规则编辑器会自动适应您的扩展。

要添加新的效用函数:

0 0
0 44

第六十六章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期 - 业务流程的生命周期

业务流程的生命周期

每次Production启动时, IRIS都会为Production创建公共参与者池。ActorPoolSize设置的值确定池中的作业数。

在执行元池中的每个作业中,都有一个Ens.ActorEns.在一个对象中,该对象负责管理业务流程对其作业的使用。在一个Ens.Actor时称为执行元。

0 0
0 52
文章
· 八月 26, 2023 阅读大约需 3 分钟
第十章 ObjectScript - 按值或按引用传递变量

第十章 ObjectScript - 按值或按引用传递变量

按值或按引用传递变量

调用方法时,可以通过值或引用将变量值传递给该方法。在大多数情况下,这些变量是没有下标的局部变量,因此本节首先讨论这些变量。

与其他编程语言一样, IRIS 具有一个存储位置,其中包含每个局部变量的值。变量的名称充当内存位置的地址。

当将没有下标的局部变量传递给方法时,可以按值传递该变量。这意味着系统会复制该值,从而使原始值不受影响。要传递内存地址,请在参数列表中紧邻变量名称之前放置一个句点。

为了演示这一点,请考虑名为 Test.Parameters 的类中的以下方法:

ClassMethod Square(input As %Integer) As %Integer
{
    set answer=input*input
    set input=input + 10
    return answer
}

假设定义一个变量并将其按值传递给此方法:

0 0
0 29
文章
· 九月 12, 2023 阅读大约需 1 分钟
第二十六章 Classes - Methods

第二十六章 Classes - Methods

Methods

方法有两种:实例方法和类方法(在其他语言中称为静态方法)。

指定方法关键字

在方法定义中,可以包含影响方法行为的可选编译器关键字。以下列表显示了一些最常见的方法关键字:

Language

IRIS 中,可以用 ObjectScriptPython 编写方法。要指定编写方法所用的语言,请使用以下语法:

0 0
0 14

我们最近发布了一份关于在镜像环境中使用报告节点(完整的“异步报告镜像成员”)的新白皮书。越来越多的客户正在研究这种机制,将其作为一种快速、简单的方法来设置保持最新的生产数据副本,但可以用于分析查询或重型报告工作负载,而不影响源系统。 请在此处阅读白皮书

与往常一样,我们很想听听您对如何在组织中使用此镜像选项的反馈,以及您是否对我们如何提高其效率有想法。

0 0
0 16
文章
· 一月 20, 2021 阅读大约需 5 分钟
使用内置的REST API监控InterSystems IRIS

我们不必等待SAM发布才开始规划和试用该API来监控IRIS实例。在以后的文章中,我将更深入地探讨可用的指标及其意义,并提供一些交互式仪表板的示例。首先,我将介绍一下相关背景和一些问题及答案。

IRIS(和Caché)一直在收集自身及其运行平台的数十个指标。收集这些指标来监控Caché和IRIS的方法向来有很多。我发现,很少有安装软件使用IRIS和Caché的内置解决方案。譬如,History Monitor作为性能和系统使用指标的历史数据库,已经推出很长时间了,但它没有简便方法可实时显示这些指标和仪表系统。

IRIS平台解决方案(以及整个业界)正在从仅在一些本地实例上运行的单体式应用程序过渡到“随处”部署的分布式解决方案。在许多用例中,原有的IRIS监控方案并不适用于这些新的模式。InterSystems没有做重复工作,而是将目光投向当前流行的、经过验证的监控和告警开源解决方案。

0 0
0 159
文章
· 二月 11, 2021 阅读大约需 1 分钟
第三十一章 Caché 变量大全 $ZIO 变量

第三十一章 Caché 变量大全 $ZIO 变量

包含有关当前终端I / O设备的信息。

$ZIO
$ZI

描述

$ZIO包含有关当前I / O设备的信息。

对于作为终端的终端设备,$ZIO包含字符串TRM:。如果当前终端设备是远程连接的,则$ZIO包含有关远程连接的信息。

对于通过TELNET连接的终端设备,$ZIO包含以下内容:host | port

0 0
0 79
文章
· 三月 12, 2021 阅读大约需 5 分钟
第九章 SQL查询数据库(一)

第九章 SQL查询数据库

查询类型

查询是执行数据检索并生成结果集的语句。查询可以包含以下任意项:
- 一个简单的SELECT语句,用于访问指定表或视图中的数据。
- 具有JOIN语法的SELECT语句,用于访问多个表或视图中的数据。
- 合并多个SELECT语句的结果的UNION语句。
- 使用SELECT语句为封闭的SELECT查询提供单个数据项的子查询。
- 在嵌入式SQL中,这是一个使用SQL游标通过FETCH语句访问多行数据的SELECT语句。

使用SELECT语句

SELECT语句从一个或多个表或视图中选择一行或多行数据。下面的示例显示了一个简单的SELECT

0 0
0 194
文章
· 三月 27, 2021 阅读大约需 11 分钟
第十三章 使用动态SQL(五)

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

从结果集中返回特定的值

要从查询结果集中返回特定的值,必须一次一行遍历结果集。
要遍历结果集,请使用%Next()实例方法。
(对于单一值,结果对象中没有行,因此%Next()返回0,而不是错误。)
然后,可以使用%Print()方法显示整个当前行的结果,或者检索当前行的指定列的值。

%Next()方法获取查询结果中下一行的数据,并将该数据放入结果集对象的data属性中。
%Next()返回1,表示它位于查询结果中的某一行上。
%Next()返回0,表示它位于最后一行(结果集的末尾)之后。
每次调用%Next()返回1个增量%ROWCOUNT;
如果游标定位在最后一行之后(%Next()返回0),%ROWCOUNT表示结果集中的行数。

0 1
0 187
文章
· 四月 4, 2021 阅读大约需 3 分钟
第十六章 导入SQL Code

第十六章 导入SQL Code

本章介绍如何将SQL代码从文本文件导入Intersystems SQL。导入SQL代码时,IntersystemsIris®数据平台使用动态SQL准备并执行每行SQL。如果遇到无法解析的代码行,则SQL导入跳过该行代码并继续准备和执行后续行,直到它到达文件的末尾。所有SQL代码导入操作导入到当前名称空间。

SQL导入主要用于导入数据定义语言(DDL)命令(例如Create Table),并使用InsertUpdateDelete命令填充表。 SQL导入确实准备并执行SELECT查询,但不创建结果集。

0 0
0 149
文章
· 四月 17, 2021 阅读大约需 6 分钟
第二章 定义和构建索引(五)

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

验证索引

可以使用以下任一方法验证索引
- $SYSTEM.OBJ.ValidateIndices()验证表的索引,还验证该表的集合子表中的任何索引。
- %Library.Storage.%ValidateIndices()验证表的索引。集合子表索引必须使用单独的%ValidateIndices()调用进行验证。

这两种方法都会检查指定表的一个或多个索引的数据完整性,并可以选择更正发现的任何索引完整性问题。他们分两步执行索引验证:
1. 确认为表(类)中的每一行(对象)正确定义了索引实体。
2. 遍历每个索引,对于索引的每个条目,确保表(类)中有一个值和匹配的条目。

如果这两种方法中的任何一种发现不一致,它都可以有选择地更正索引结构和/或内容。它可以验证标准索引、位图索引、位图范围索引和位片索引,并可选择对其进行校正。默认情况下,这两种方法都会验证索引,但不会更正索引。

0 0
0 86
文章
· 四月 26, 2021 阅读大约需 9 分钟
第六章 SQL性能分析工具包

第六章 SQL性能分析工具包

本章介绍可用于主动分析特定SQL语句的分析工具。这些工具收集有关这些SQL语句执行的详细信息。使用这些信息,开发人员可以采取措施提高低效SQL语句的性能。

根据请求的详细程度,此活动分析可能会显著增加服务器上的负载。因此,SQL性能分析工具包旨在进行协调一致的代码分析工作。它不是用来连续监视执行代码的。

分析工具界面

SQL性能分析工具包为开发人员和支持专家提供了分析特定SQL语句或语句组的能力。通过在执行特定SQL语句期间使用这些工具,它们可以收集详细信息,这些信息可用于单独或跨活动工作负载分析有问题的语句。

要记录的细节级别是可配置的,最细粒度的设置在模块级别收集信息,为语句的查询计划中的不同“步骤”提供信息。

0 0
0 62
文章
· 五月 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 245
文章
· 五月 15, 2021 阅读大约需 4 分钟
第一章 单元测试概述

第一章 单元测试概述

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

什么是单元测试?

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

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

为什么要进行单元测试?

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

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

第五章 向邮件添加附件

向邮件添加附件

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

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

0 0
0 69
文章
· 七月 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 767