公告 Jeff Liu · 三月 30, 2022

大家好,欢迎来到2022年3月开发者社区更新!

我们最近在InterSystems社区对开发者们的体验做了一些改进:

  • 全新的社区内容搜索功能
  • 综合社区数据
  • 链接你的脸书账号 
  • 帖子页面更新:标签、作者块、草稿突出显示

下面让我们仔细看看。 

0
0 123
文章 姚 鑫 · 三月 30, 2022 2m read

第九十七章 SQL函数 MONTH

日期函数,它将月份作为日期表达式的整数返回。

大纲

MONTH(date-expression)

{fn MONTH(date-expression)}

描述

  • date-expression - 表达式,它是列的名称、另一个标量函数的结果,或者是日期或时间戳文字。

描述

MONTH 返回一个指定月份的整数。月份整数是针对 日期整数、$HOROLOG$ZTIMESTAMP 值、ODBC 格式日期字符串或时间戳计算的。

日期表达式时间戳可以是数据类型 %Library.PosixTime(编码的 64 位有符号整数),也可以是数据类型 %Library.TimeStamp (yyyy-mm-dd hh:mm:ss.fff)。

日期字符串的月份 (mm) 部分必须是 112 范围内的整数。前导零在输入时是可选的。输出时抑制前导零和尾随零。

date-expression 的日期部分经过验证,并且必须包含 112 范围内的月份以及指定月份和年份的有效日期值。否则,将生成 SQLCODE -400 错误 <ILLEGAL VALUE>

date-expression 的时间部分未经验证,可以省略。

请注意,MONTH 可以作为 ODBC 标量函数(使用大括号语法)或作为 SQL 通用函数调用。

0
0 88
问题 liu yangyang · 三月 29, 2022

主要问题: 默认安装后,有没有默认用户名,密码?远程jdbc连接报错,麻烦解答一下,谢谢 [InterSystems IRIS JDBC] Communication link failure: Access Denied [08S01][461] Access Denied

创建用户: addgroup iris useradd -g iris -d "/home/iris" -m -s "/bin/bash" iris passwd iris

安装过程: root@baec-ThinkPad-E480:/data/IRIS_Community-2021.2.0.651.0-lnxubuntu1804x64# ./irisinstall

Your system type is 'Ubuntu LTS (x64)'.

Enter instance name <IRIS>: IRIS

Enter a destination directory for the new instance. Directory: /data

1
0 787
公告 Michael Lei · 五月 8, 2021

在这个一小时的互动课程中,用户可以参与了涉及多个Docker容器的复合应用程序的开发。此外,学员们还学习如何创建数据转换和业务规则,使用业务流程设计器来建立病人护理的逻辑,并使用Spark和PMML将业务操作与机器学习模型连接起来。

赶快来参加我们的线上课程吧:

https://learning.intersystems.com/course/view.php?id=1662&ssoPass=1

2
0 269
文章 姚 鑫 · 三月 29, 2022 2m read

第九十六章 SQL函数 MOD

注:IRIS可用,非IRIS版本不可用。

标量数值函数,返回一个数除以另一个数的模数(余数)。

大纲

MOD(dividend,divisor)

{fn MOD(dividend,divisor)}

参数

  • dividend - 数字,它是除法的分子(除数)。
  • divisor - 数字,它是除法的分母(除数)。

MOD 返回 NUMERIC 数据类型,除非被除数是数据类型 DOUBLE。如果dividendDOUBLE,则 MOD 返回 DOUBLE

描述

MOD 返回除数除数的数学余数(模数)。

MOD 可以指定为标准标量函数或带有大括号语法的 ODBC 标量函数。

  • 如果被除数和除数为正数,则返回正数模数或零。
  • 如果被除数和除数都是负数,则返回负模数或零。
  • 如果被除数或除数为 NULL,则返回 NULL
  • 如果除数为 0,它将生成带有 %msg<DIVIDE>错误的 SQLCODE -400
  • 如果除数大于被除数,则返回被除数。

MOD(任一语法形式)报告的精度与算术表达式除数/除数的精度报告相同。

ANSI 运算符优先级

具有单个负操作数的 MOD 函数的行为取决于 Apply ANSI Operator Precedence 配置设置:

0
0 143
问题 Michael Lei · 三月 29, 2022

当我们在一个命名空间中运行数据清除时,数据库的大小和空间并没有改变。  我想,像Oracle一样,它留下的空白空间是可以被缓存使用的,但有没有办法看到这些空间有多少是可用的?  今天我增加了系统可用的磁盘大小,因为我们已经达到了关键的低磁盘空间,然而,随着清理的进行,我们应该有几百GB的可用空间在数据库内使用。  那么,只要数据库中有足够的可用空间用于写入数据,允许系统耗尽可用的磁盘空间是否安全?When we run data purges in a namespace, the size and space of the DB does not change.  I assume like Oracle it leaves white space that is usable by cache, but is there a way to see how much of this space is available?  Today I increased the size of the disk available to the system as we were reaching critical low disk space,  however, with the purges, we should have several hundred GB of available

1
0 234
文章 姚 鑫 · 三月 28, 2022 3m read

第九十五章 SQL函数 MINUTE

返回日期时间表达式的分钟的时间函数。

大纲

{fn MINUTE(time-expression)}

参数

  • time-expression - 作为列名、另一个标量函数的结果或字符串或数字文字的表达式。它必须解析为日期时间字符串或时间整数,其中基础数据类型可以表示为 %Time%TimeStamp%PosixTime

描述

MINUTE 返回一个整数,指定给定时间或日期时间值的分钟数。为 $HOROLOG$ZTIMESTAMP 值、ODBC 格式日期字符串或时间戳计算分钟。

时间表达式时间戳可以是数据类型 %Library.PosixTime(编码的 64 位有符号整数),也可以是数据类型 %Library.TimeStamp (yyyy-mm-dd hh:mm:ss.fff)。

要更改默认时间格式,请使用 SET OPTION 命令。

请注意,可以提供时间整数(经过的秒数),但不能提供时间字符串 (hh:mm:ss)。必须提供日期时间字符串 (yyyy-mm-dd hh:mm:ss)。

0
0 109
文章 姚 鑫 · 三月 27, 2022 2m read

第九十四章 SQL函数 %MINUS

将数字转换为规范整理格式,然后反转符号的整理函数。

大纲

%MINUS(expression)

%MINUS expression

参数

  • expression - 表达式,可以是列名、数字或字符串文字、算术表达式或另一个函数的结果,其中基础数据类型可以表示为任何字符类型。

描述

%MINUS 将数字或数字字符串转换为规范形式,反转符号,然后以数字排序规则返回这些表达式值。

%MINUS%PLUS 在功能上是相同的,只是 %MINUS 反转了符号。它为解析为正数的任何数字添加减号前缀,并从解析为负数的任何数字中删除减号。零从不签名。

一个数字可以包含前导零和尾随零、多个前导加号和减号、一个小数点指示符 (.) 和 E 指数指示符。在规范形式中,执行所有算术运算,扩展指数,将符号解析为单个前导减号或无符号,并去除前导零和尾随零。

可以使用或不使用封闭字符串分隔符来指定数字文字。如果字符串包含非数字字符,%MINUS 会在第一个非数字字符处截断数字,并以规范形式返回数字部分。非数字字符串(任何以非数字字符开头的字符串)返回为 0%MINUS 也将 NULL 作为 0 返回。

%MINUS 是一个 SQL 扩展,用于 SQL 查找查询。

可以使用 %SYSTEM.Util 类的 Collation() 方法在 ObjectScript 中执行相同的排序规则转换:

0
0 100
文章 姚 鑫 · 三月 26, 2022 2m read

第九十三章 SQL函数 LTRIM

字符串函数,它返回一个删除了前导空格的字符串。

大纲

LTRIM(string-expression)

{fn LTRIM(string-expression)}

参数

  • string-expression - 字符串表达式,可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHARVARCHAR)。

描述

LTRIM 从字符串表达式中删除前导空格,并将字符串作为 VARCHAR 类型返回。如果 string-expressionNULL,则 LTRIM 返回 NULL。如果 string-expression 是一个完全由空格组成的字符串,则 LTRIM 返回空字符串 ('')

LTRIM 留下尾随空格;要删除尾随空格,请使用 RTRIM。要删除任何类型的前导和/或尾随字符,请使用 TRIM。要使用前导空格或其他字符填充字符串,请使用 LPAD。要创建一串空白,请使用 SPACE

请注意,LTRIM 可用作 ODBC 标量函数(使用大括号语法)或 SQL 通用函数。

示例

以下嵌入式 SQL 示例从字符串中删除了五个前导空格。它留下五个尾随空白:

0
0 84
文章 姚 鑫 · 三月 25, 2022 2m read

[toc]

第九十二章 SQL函数 LPAD

字符串函数,它返回一个左填充到指定长度的字符串。

大纲

LPAD(string-expression,length[,padstring])

参数

  • string-expression - 字符串表达式,可以是列名、字符串文字、主机变量或另一个标量函数的结果。可以是可转换为 VARCHAR 数据类型的任何数据类型。字符串表达式不能是流。
  • length - 一个整数,指定返回的字符串中的字符数。
  • padstring - 可选 — 由一个字符或一串字符组成的字符串,用于填充输入字符串表达式。 padstring 字符或字符附加到 string-expression 的左侧,以提供创建长度字符的输出字符串所需的尽可能多的字符。 padstring 可以是字符串文字、列、主机变量或另一个标量函数的结果。如果省略,则默认为空格字符。

描述

LPAD 用前导填充字符填充字符串表达式。它返回填充到长度字符数的字符串的副本。如果字符串表达式的长度超过 length 个字符,则返回字符串被截断为 length 个字符。

如果 string-expressionNULL,则 LPAD 返回 NULL。如果 string-expression 是空字符串('') LPAD 返回一个完全由填充字符组成的字符串。返回的字符串是 VARCHAR 类型。

0
0 129
公告 Michael Lei · 三月 25, 2022

大家好! 对于那些参加了2021年虚拟峰会的体验实验室的人来说,你可能还记得其中一个实验室会议是围绕Kubernetes进行的。我们现在已经将该实验室转换为完全线上按需使用。你可以启动一个小型的虚拟机集群,并按照练习来管理你的Kubernetes集群,将InterSystems IRIS容器部署到其中,并观察它在摧毁一个吊舱时的自我修复性质。

如果你有兴趣,这是一个很好的Kubernetes介绍。请看这里: 用InterSystems IRIS 和 Kubernetes实现高可用

0
0 436
文章 姚 鑫 · 三月 24, 2022 2m read

第九十一章 SQL函数 LOWER

将字符串表达式中的所有大写字母转换为小写字母的大小写转换函数。

大纲

LOWER(string-expression)

参数

  • string-expression - 要将其字符转换为小写的字符串表达式。表达式可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHARVARCHAR)。

描述

LOWER 函数将大写字母转换为小写字母以供显示。这是 UPPER 函数的逆函数。 LOWER 对非字母字符没有影响。它保留不变的标点符号、数字以及前导和尾随空格。

LOWER 不强制将数字解释为字符串。 SQL 将数字转换为规范形式,删除前导零和尾随零。指定为字符串的数字不会转换为规范形式,并保留前导零和尾随零。

LCASE 函数也可用于将大写字母转换为小写字母。

LOWER 对排序没有影响。 %SQLUPPER 函数是 SQL 中为不区分大小写的排序规则转换数据值的首选方法。

示例

以下示例以小写字母返回每个人的姓名:

SELECT Name,LOWER(Name) AS LowName
     FROM Sample.Person

LOWER 也适用于 Unicode(非 ASCII)字母字符,如以下嵌入式 SQL 示例所示,它将希腊字母从大写转换为小写:

0
0 115
文章 Jingwei Wang · 三月 24, 2022 3m read

 

REST是一种架构风格,而不是一种格式。尽管REST经常使用HTTP来传输消息,使用JSON来传递数据,但你也可以用XML或纯文本来传递数据。REST利用了现有的网络标准,如HTTP、URL、XML和JSON。

虽然它可以使用XML来描述数据,但它更常使用JSON,这是一个轻量级的数据封装器。

InterSystems REST服务

InterSystems REST服务由以下组件组成:

规范类(%REST.Spec的一个子类):这个类包含了REST服务的OpenAPI 2.0规范(Swagger)。InterSystems支持几个扩展属性,你可以在规范中使用。

调度类(%CSP.REST的一个子类):这个类负责接收HTTP请求并在实现类中调用合适的方法。

实现类(%REST.Impl的子类):这个类定义了实现REST调用的方法。

Web应用程序:它通过InterSystems Web Gateway提供对REST服务的访问。

使用API 管理工具创建REST服务 - 基于 OpenAPI 2.0规范

/api/mgmnt/

可以使用/api/mgmnt服务来创建、更新和删除REST服务。

  1. 使用/api/mgmnt创建 .disp .impl 和 .spec 类

使用http://localhost:52773/api/mgmnt/v2/namespace/myapp

0
0 168
文章 Claire Zheng · 三月 24, 2022 1m read

众所周知,InterSystems IRIS的产品设计理念源于互操作性(Interoperable)、稳定性(Reliable)、直观(Intuitive)、可扩展性(Scalable),在云时代,InterSystems IRIS的云上操作与本地一样便捷,令用户体验有了明显提升。为了更高效地对InterSystems IRIS进行配置,我们还提供了哪些新特性?为了便捷地进行数据迁移,InterSystems IRIS最新版本提供了哪些解决方案?本期视频中,InterSystems中国销售工程师吕正之、马浩和WRC产品支持专家杨乐乐对此进行了解答。

0
0 162
问题 jingwei lu · 三月 11, 2022

假如在自动故障转移模式下,镜像集群中两个镜像都是实时同步的Failover角色,当备库因为主机故障或者网络隔离等因素导致不可用,那么主库就收不到备库的ACKs,这个时候我看官方文档的解释是,主库会在Qos时间超时后,撤销备库日志传输的Active状态,那么在这个Qos时间段里(默认是8秒),主库是不会提交任何新的日志,那么遇到那些需要写或者更新的应用,应用会不会卡住8秒不动? 这对一个医院系统来说也是致命的。

希望哪位大神能为我解答一下,谢谢

translate

8
0 373
文章 姚 鑫 · 三月 23, 2022 1m read

第九十章 SQL函数 LOG10

标量数值函数,它返回给定数值表达式的以 10 为底的对数。

大纲

{fn LOG10(expression)}

参数

  • expression - 数值表达式。

LOG10 返回 NUMERICDOUBLE 数据类型。如果表达式为 DOUBLE 数据类型,则 LOG10 返回 DOUBLE;否则,它返回 NUMERIC

描述

LOG10 返回表达式的以 10 为底的对数值。LOG10 返回一个精度为 21、小数位数为 18 的值。

LOG10 只能用作 ODBC 标量函数(使用大括号语法)。

示例

以下示例返回整数的以 10 为底的对数:

SELECT {fn LOG10(5)} AS Log10

0.698970004336018805

以下嵌入式 SQL 示例返回整数 110 的以 10 为底的对数值:

0
0 83
文章 Weiwei Gu · 三月 14, 2022 3m read

大家好!

InterSystems IRIS有一个叫做互操作性Interoperability的菜单。

它提供了轻松创建系统集成的机制(适配器、记录图、BPM、数据转换等),因此不同的系统可以轻松地连接起来。

在数据中继过程中可以包括各种操作,比如:为了连接那些通常不连接的系统,可以根据目的系统的规格要求来接收(或发送)数据。另外,在发送数据之前,可以从另一个系统获取和添加信息。以及,信息可以从数据库(IRIS或其他)获取和更新。

为此,我们会撰写一系列的文章,将讨论以下主题,同时看一下示例代码,以帮助你了解它是如何工作的,以及在用互操作性整合系统时需要什么样的开发。

* How it works 它是如何工作的
* What a Production is 什么是Production ?
* Message 消息
* Component Creation 组件的创建

* 1)Business Operations  业务操作

*2)Business Processes 业务流程
*3) Business Services 业务服务


  首先,介绍一下我们在这个系列中要使用的案例。

1
0 382
文章 姚 鑫 · 三月 22, 2022 2m read

第八十九章 SQL函数 LOG

返回给定数值表达式的自然对数的标量数值函数。

大纲

{fn LOG(expression)}

参数

  • expression - 数值表达式。

LOG 返回 NUMERICDOUBLE 数据类型。如果表达式为 DOUBLE 数据类型,则 LOG 返回 DOUBLE;否则,它返回 NUMERIC

描述

LOG 返回表达式的自然对数(以 e 为底)。 LOG 返回一个精度为 21、小数位数为 18 的值。

LOG 只能用作 ODBC 标量函数(使用大括号语法)。

示例

以下示例返回整数的自然对数:

SELECT {fn LOG(5)} AS Logarithm

1.609437912434100375

以下嵌入式 SQL 示例显示了整数 110LOGEXP 函数之间的关系:

请注意,此处需要 ROUND 函数来纠正由系统计算限制引起的非常小的差异。在上面的示例中,ROUND 被任意设置为 12 位十进制数字。

0
0 132
文章 Claire Zheng · 三月 22, 2022 9m read

最在第一期“极客聊吧”中,InterSystems销售工程师们聊了聊这些话题:为什么有些医院和某些商保之间可以直接结算,有些又不能?医院和保险之间的结算难在哪儿?在InterSystems 2021全球线上峰会中提到的医保结算案例对国内实践有哪些借鉴意义?FHIR又能起到什么关键作用?医疗数据实现互联互通的关键是什么?以下是文字版。

0
0 422
文章 姚 鑫 · 三月 21, 2022 3m read

第八十八章 SQL函数 $LISTTOSTRING

从列表创建字符串的列表函数。

大纲

$LISTTOSTRING(list[,delimiter])

参数

  • list - 计算结果为有效列表的表达式。列表是包含一个或多个元素的编码字符串。可以使用 SQL 或 ObjectScript 的 $LISTBUILD$LISTFROMSTRING 函数创建列表。可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。
  • delimiter - 可选 — 插入以分隔子字符串的分隔符。分隔符可以是一个或多个字符,指定为带引号的字符串。要连接不带分隔符的子字符串,请指定空字符串 ('')。如果不指定分隔符,则默认为逗号 (,) 字符。

描述

$LISTTOSTRING 采用 列表并将其转换为字符串。在结果字符串中,列表的元素由分隔符分隔。

列表以不使用分隔符的编码格式表示数据。因此,列表可以包含所有可能的字符,并且非常适合位串数据。 $LISTTOSTRING 将此列表转换为带有分隔元素的字符串。它留出一个指定的字符(或字符串)作为分隔符。可以使用 $PIECE 函数处理这些分隔元素。

注意:此处指定的分隔符不得出现在源数据中。 不区分用作分隔符的字符和用作数据字符的相同字符。

0
0 158
文章 Michael Lei · 三月 21, 2022 2m read

IRIS Healthtoolkit Service 软件即服务

轻松实现HL7v2 转 FHIR, CDA 转 FHIR, FHIR 转 HL7v2 即服务.

这个项目的目标是提供 REST API 可以轻松转化不同的医疗行业格式。 在Rest body 发布需要的格式,在答案中获得新的格式。

安装

克隆这个 repository

git clone https://github.com/grongierisc/iris-healthtoolkit-service.git

Docker

docker-compose up --build -d

使用

API 细节

  • HL7 转 FHIR
POST http://localhost:32783/api/hl7/fhir
  • FHIR 转 HL7 ADT
POST http://localhost:32783/api/fhir/hl7/adt
  • FHIR 转 HL7 ORU
0
0 321
文章 Claire Zheng · 三月 21, 2022 7m read

谈到开发体验,什么最重要?如何为客户提供更好的开发体验?InterSystems IRIS的最新版本有哪些新特性极大优化了用户的开发体验?这是本月“极客聊吧”的话题,我们计划通过上、下两期视频探讨这一话题。在第一期视频中(点击查看),InterSystems中国销售工程师吕正之、马浩和WRC产品支持专家杨乐乐针对以下两点分享了他们的观点:(1)开发语言的多样性与对FHIR的支持; (2)开发平台的前瞻性:对Smart Data Fabric架构的支持。

0
0 220
文章 姚 鑫 · 三月 20, 2022 4m read

第八十七章 SQL函数 $LISTSAME

比较两个列表并返回布尔值的列表函数。

大纲

$LISTSAME(list1,list2)

参数

  • list1 - 计算结果为有效列表的表达式。
  • list2 - 计算结果为有效列表的表达式。

描述

$LISTSAME 比较两个列表的内容,如果列表相同则返回 1。如果列表不相同,则 $LISTSAME 返回 0$LISTSAME 逐个元素地比较两个列表。对于两个相同的列表,它们必须包含相同数量的元素,并且 list1 中的每个元素必须与 list2 中的相应元素匹配。

$LISTSAME 使用它们的字符串表示来比较列表元素。 $LISTSAME 比较区分大小写。 $LISTSAME 按从左到右的顺序逐个元素地比较两个列表。因此,$LISTSAME 在遇到第一个不匹配的列表元素对时返回值 0;它不检查后续项目以确定它们是否是有效的列表元素。

此函数返回 SMALLINT 类型的数据。

参数

list (list1 and list2)

0
0 104
文章 姚 鑫 · 三月 19, 2022 4m read

第八十六章 SQL函数 $LISTLENGTH

返回指定列表中元素数量的列表函数。

大纲

$LISTLENGTH(list)

参数

  • list- 计算结果为有效列表的表达式。列表是包含一个或多个元素的编码字符串。您可以使用 SQL 或 ObjectScript 的 $LISTBUILD$LISTFROMSTRING 函数创建列表。您可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。

描述

$LISTLENGTH 返回列表中元素的数量。

此函数返回 SMALLINT 类型的数据。

示例

以下嵌入式 SQL 示例返回 3,因为列表中有 3 个元素:

/// d ##class(PHA.TEST.SQLFunction).ListLength()
ClassMethod ListLength()
{
	s a = $lb("Red", "Blue", "Green")
	&sql(
		SELECT $LISTLENGTH(:a) INTO :b
	)
	if SQLCODE '= 0 {
		w !,"Error code;",SQLCODE 
	} else {
		w !,"The number of elements is ",b 
	}
}
0
0 116
文章 姚 鑫 · 三月 18, 2022 5m read

第八十五章 SQL函数 $LISTGET

返回列表中的元素或指定默认值的列表函数。

大纲

$LISTGET(list[,position[,default]])

参数

  • list - 计算结果为有效列表的表达式。列表是包含一个或多个元素的编码字符串。可以使用 SQL 或 ObjectScript 的 $LISTBUILD$LISTFROMSTRING 函数创建列表。可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。
  • position - 可选 — 解释为指定列表中的位置的表达式。
  • default - 可选 — 如果列表元素具有未定义的值,则该表达式提供要返回的值。

描述

$LISTGET 将指定列表中的请求元素作为标准字符串返回。如果位置参数的值引用不存在的成员或标识具有未定义值的元素,则返回指定的默认值。

$LISTGET 函数与 $LIST 函数的单参数和双参数形式相同,只是在导致 $LIST 返回空字符串的条件下,$LISTGET 返回默认值。

此函数返回 VARCHAR 类型的数据。

可以使用 $LISTGET 从串行容器字段中检索字段值。在以下示例中,Home 是一个串行容器字段,其第三个元素是 Home_State

SELECT Name,$LISTGET(Home,3) AS HomeState
FROM Sample.Person

参数

list

0
0 107