文章
姚 鑫 · 六月 8 阅读大约需 4 分钟
第三章 数据类型(二)

第三章 数据类型(二)

SQL 系统数据类型映射

上表中为 DDL 和 IRIS 数据类型表达式显示的语法是为 SQL.SystemDataTypes 配置的默认映射。对于提供的系统数据类型和用户数据类型,有单独的映射表可用。

要查看和修改当前数据类型映射,请转到管理门户,选择系统管理、配置、SQL 和对象设置、系统 DDL 映射。

了解 DDL 数据类型映射

将数据类型从 DDL 映射到 IRIS 时,常规参数和函数参数遵循以下规则:

  • 常规参数 - 这些在 DDL 数据类型和 IRIS 数据类型中以 %# 格式标识。例如:
     VARCHAR(%1)

映射到:

     %String(MAXLEN=%1)

因此,DDL 数据类型为:

     VARCHAR(10)

映射到:

0 0
0 6
文章
Hao Ma · 一月 30, 2021 阅读大约需 4 分钟
WebGateway系列(3): 配置IIS连接IRIS

IIS在Windows Server里是默认安装,在Windows7和Windows10里面需要用户到"控制面板>程序"里面找到"Turn Windows features on or off"的设置来启动。 本文假设IIS已经在用户的服务器上启动,并且正常工作。

通常情况下,当IRIS安装在Windows系统时,用户会在同一台机器上使用IIS,很少有单独安装一台IIS服务器给远程IRIS提供Web服务器的,当然这样也绝无问题。

有两个软件包可以安装CSP Gateway。一个是IRIS的安装包。在IRIS的安装过程中, 如果有IIS正在工作, 那么安装程序会自动的安装CSP Gateway。 2018年以前的Ensemble或者Cache'的版本的安装过程中会跳出一个询问框,让用户选择是否"安装CSP网关。。。”。而后来的版本大多不做询问而自动为用户做了选择。 如果需要强制安装或者不安装CSP Gateway,那么需要在安装中选"Customer Component"设置。

0 3
0 121
文章
姚 鑫 · 六月 7 阅读大约需 9 分钟
第二章 数据类型(一)

第二章 数据类型(一)

指定 SQL 实体(如列)可以包含的数据类型。

描述

此处描述了以下主题:
- 支持的 DDL 数据类型及其类属性映射表
- 数据类型优先级用于从具有不同数据类型的数据值中选择最具包容性的数据类型
- 日期、时间、PosixTime 和时间戳数据类型
- 使用SqlCategory和用户定义的标准
- 对 1840 年 12 月 31 日之前的日期的可配置支持

0 0
0 13
文章
Michael Lei · 六月 7 阅读大约需 3 分钟
InterSystems 最佳实践之--发挥 $Query 的最大作用

我今天遇到了一个有趣的ObjectScript用例,有一个通用的解决方案,我想与大家分享。

用例:

我有一个JSON数组(在本例中具体而言是一个来自Jira的问题数组),我想在几个字段上进行聚合--例如,类别、优先级和问题类型。然后,我想把聚合的数据编平化到一个简单的列表中,其中包含每个组的总数。当然,对于聚合来说,使用一个本地数组的形式是有意义的,即:

agg(category, priority, type) = total

这样,对于输入数组中的每一条记录,我可以只用:

Do $increment(agg(category, priority, type))

但是一旦我做了聚合,我想把它变成一种更容易迭代的形式,比如一个整数下标的数组:

summary = n
summary(1) = $listbuild(total1, category1, priority1, type1)
...
summary(n) = $listbuild(totalN, categoryN, priorityN, typeN)

基础解决方案:

简单的方法是,用$Order嵌套三个For循环--比如说:

0 0
0 6
文章
Michael Lei · 六月 7 阅读大约需 3 分钟
绕过ODBC使用ObjectScript访问远程系统

绕过ODBC使用ObjectScript访问远程系统

这是一个在 IRIS 2020.1 和 Caché 2018.1.3 上工作的代码示例
不会与新版本保持同步
也不会获得 InterSystems 提供的支持服务!   

我们经常会遇到这样的情况,由于各种原因ODBC是访问一个远程系统的唯一选择。如果你只需要检查或改变表,这就足够了。但你不能直接执行一些命令或改变一些Global。

特别感谢@Anna.Golitsyna 启发我发表此文。

这个例子提供了3种 SQLprocedure 方法来实现访问远程系统这个目的,如果其他的访问方式被阻止,通常是被一些防火墙阻止。

0 0
0 10
文章
姚 鑫 · 六月 3 阅读大约需 2 分钟
第161章 SQL函数 YEAR

第161章 SQL函数 YEAR

返回日期表达式的年份的日期函数。

大纲

YEAR(date-expression)

{fn YEAR(date-expression)}

参数

  • date-expression - 计算结果为 日期整数、ODBC 日期字符串或时间戳的表达式。此表达式可以是列名、另一个标量函数的结果或日期或时间戳字面量。

描述

YEAR 将日期整数($HOROLOG 日期)、ODBC 格式日期字符串或时间戳作为输入。 YEAR 以整数形式返回相应的年份。

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

0 0
0 10

IRIS Interoperability互操作性/HealthConnect(前身是Ensemble)有许多内置的适配器。但是没有一个接收邮件的服务或适配器。我洗的了一个电子邮件服务,通过SMTP接收邮件,这些邮件可以被传递到电子邮件操作。

现在我想对一个使用电子邮件操作向外部邮件服务器发送邮件的Production进行负载测试。邮件服务器团队不希望我向他们发送成千上万的信息。

我创建了iris-mail应用程序来替代邮件服务器。我更新了电子邮件操作中的服务器和端口设置。外发的邮件被发送到替代的邮件服务器,我能够计算出iris-mail中收到的邮件数量,并将其与邮件操作发送的邮件数量进行比较。

应用程序的源代码:https://openexchange.intersystems.com/package/iris-mail

0 0
0 8

糖尿病可以从医学界熟知的一些参数中发现。这样,为了帮助医学界和计算机软件系统,特别是人工智能软件,美国国家糖尿病和消化道及肾脏疾病研究所发布了一个非常有用的数据集,用于训练糖尿病检测/预测的机器学习算法。这份出版物可以在最大和最知名的ML数据库Kaggle上找到,网址是https://www.kaggle.com/datasets/mathchi/diabetes-data-set

该糖尿病数据集有以下元数据信息(来源:https://www.kaggle.com/datasets/mathchi/diabetes-data-set):

0 0
0 61

InterSystems Production 监控是管理门户中的一个页面,用于显示当前运行的Production监控信息。我喜欢这个页面的样子,但这并不适合所有人。

2022年5月13日,我在开发者社区上看到这个帖子。

https://community.intersystems.com/post/creating-custom-monitoring-page

我同意马克的观点,Production监控很复杂。我想创建一个更漂亮干净的监控页面。

我开始着手制作一个利用类方法提供Production数据的 CSP(Cache Server Page)页面。

我与马克分享了我的第一次尝试。他根据自己的想法定制了这个页面。我喜欢他对页面的布局,使其在视觉上更有吸引力。我把他的设计整合到我的应用程序Production监控中。

我看到马克对业务服务的显示进行了过滤,只显示需要注意的服务。他在页面的底部添加了服务器的名称和它的镜像状态。

0 0
0 11

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 7
文章
姚 鑫 · 五月 31 阅读大约需 1 分钟
第158章 SQL函数 XMLCONCAT

第158章 SQL函数 XMLCONCAT

注:IRIS函数。

连接 XML 元素的函数。

大纲

XMLCONCAT(XmlElement1,XmlElement2[,...])

参数

  • XmlElement - XMLELEMENT 函数。指定两个或多个要连接的 XmlElement

描述

XMLCONCAT 函数将来自多个 XMLELEMENT 函数的值作为单个字符串返回。 XMLCONCAT 可用于引用表或视图的 SELECT 查询或子查询。 XMLCONCAT 可以与普通字段值一起出现在 SELECT 列表中。

示例

以下查询连接来自两个 XMLELEMENT 函数的值:

0 0
0 9
文章
姚 鑫 · 五月 30 阅读大约需 4 分钟
第157章 SQL函数 WEEK

第157章 SQL函数 WEEK

一个日期函数,它将一年中的第几周作为日期表达式的整数返回。

大纲

{fn WEEK(date-expression)}

参数

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

描述

WEEK 接受一个日期表达式,并返回该日期从年初开始的周数。

0 0
0 7

我的团队在在红帽OpenShift容器平台上运行IRIS互操作性解决方案。我想在数据被存储在Mirror的数据pods中的情况下,测试运行中的webgateway pods和计算节点 pods能处理多少消息。

为了增加测试难度,我部署了多个feeder容器,并在每个feeder上安排了任务,以在同一时间发送大量的消息。为了进入下一阶段的测试,我希望有多种类型的测试文件可以按需使用。我创建了test-data应用程序,能够请求生成大量的多种类型的文件。

我早期的一些测试依赖于复制一个样本文件和处理它。这在一次只复制一份的情况下效果不错。为了获得同一样本文件的许多副本,MakeFile函数获取一个样本文件、保存其副本、并以唯一的时间戳进行重命名。MakeFiles函数有一个参数,用于确定要制作的文件数量。

我找到了一个样本文件,它的输入和输出都是带分隔符和固定符的。我把它包含在我的应用程序中,并添加了一个转换来操作测试数据文件。在这种情况下,我把测试文件中的识别ID号替换成在一个类方法中生成的识别ID号,并且是随着文件而递增的。

我想在处理后审查测试文件中的数据,我喜欢看到一系列有顺序的数字,而不是一系列随机数字。

0 0
0 23

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

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

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

0 0
0 14

北京协和医院现公开招聘信息类技术岗位。有关事项公告如下:
岗位1:运维工程师
任职要求:
1.年龄30岁以下,本科及以上学历,计算机相关专业;
2.熟悉计算机软硬件技术,熟练排除各种软硬件的故障;有基本的网络知识,了解DNS、DHCP原理,熟练使用Ping、tracert等简单命令;
3.有2年以上桌面运维工作经验者优先。

岗位2:数据库管理员
任职要求:
1. 本科及以上学历,计算机相关专业;
2. 精通InterSystems Caché数据库,精通MySQL,SQL Server,熟悉Oracle,精通SQL脚本编写;有丰富数据库管理、运维调优经验;
3. 5年以上数据库运维管理经验;
4. 有医疗行业经验优先。

0 0
0 181
文章
姚 鑫 · 五月 29 阅读大约需 1 分钟
第156章 SQL函数 USER

第156章 SQL函数 USER

返回当前用户的用户名的函数。

大纲

USER

{fn USER}
{fn USER()}

描述

USER 不接受任何参数并返回当前用户的用户名(也称为授权 ID)。通用函数不允许括号; ODBC 标量函数可以指定或省略空括号。

用户名是使用 CREATE USER 命令定义的。

USER 的典型用途是在 SELECT 语句选择列表或查询的 WHERE 子句中。在设计报告时,USER 可用于打印正在为其生成报告的当前用户。

示例

以下示例返回当前用户名:

0 0
0 8
文章
姚 鑫 · 五月 28 阅读大约需 2 分钟
第155章 SQL函数 UPPER

第155章 SQL函数 UPPER

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

大纲

UPPER(expression)

UPPER expression

参数

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

描述

UPPER 函数将所有字母字符转换为大写字母。这是 LOWER 函数的反函数。 UPPER 保留不变的数字、标点符号和前导或尾随空格。

UPPER 不强制将数字解释为字符串。 SQL 从数字中删除前导零和尾随零。指定为字符串的数字保留前导零和尾随零。

也可以使用 UPPER() 方法调用从 ObjectScript 调用此函数:

0 0
0 6
文章
姚 鑫 · 五月 27 阅读大约需 4 分钟
第154章 SQL函数 UNIX_TIMESTAMP

第154章 SQL函数 UNIX_TIMESTAMP

注:此函数IRIS可用,Cache不可用。

将日期表达式转换为 UNIX 时间戳的日期/时间函数。

大纲

UNIX_TIMESTAMP([date-expression])

参数

  • date-expression - 可选 — 作为列名称、另一个标量函数的结果或日期或时间戳文字的表达式。 UNIX_TIMESTAMP 不会从一个时区转换到另一个时区。如果省略 date-expression,则默认为当前 UTC 时间戳。

描述

UNIX_TIMESTAMP 返回一个 UNIX® 时间戳,即自 '1970-01-01 00:00:00'以来的秒数(和小数秒)。

0 0
0 14
文章
姚 鑫 · 五月 26 阅读大约需 2 分钟
第153章 SQL函数 UCASE

第153章 SQL函数 UCASE

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

大纲

UCASE(string-expression)

{fn UCASE(string-expression)}

参数

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

描述

UCASE 将小写字母转换为大写以进行显示。它对非字母字符没有影响;它保留不变的数字、标点符号和前导或尾随空格。

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

UCASE 不强制将数字解释为字符串。 SQL 从数字中删除前导零和尾随零。指定为字符串的数字保留前导零和尾随零。

0 0
0 8
文章
Michael Lei · 五月 26 阅读大约需 1 分钟
互操作性的例子--DICOM production 与模拟器

Hi,大家好!

您曾经实施过DICOM集成吗?也许您已经百度了一些样例,甚至是模拟器。希望本文的例子能给您带来帮助。

DICOM 是一个广泛用于医疗诊断影像的消息标准。您可以使用IRIS For Health或者Health Connect在互操作性Production中使用DICOM标准,在这里您可以找到文档.

在很多情况下,当您开发一个DICOM集成时,您可以运行一个模拟器来扮演一些外部系统(如PACS),可以在连接到一个真正的系统之前充分测试您想要实现的流程,这一点真的很有用。

在这里您可以找到一个使用IRIS For Health的DICOM整合例子,还有一个叫做dcm4che的模拟器

在这个例子里, 实现了两个不同的场景:

0 0
0 15

#Open Exchange

您可能已经看到邀请分享您的 Open Exchange 应用程序的演示:Share a Demo of Your Open Exchange Application

它背后的服务——InterSystems Online Demo Server (ODS)——这不是什么新事物

0 0
0 19

%SYS.Journal.Record 类有一个查询(query), List, 可以列出Journal文件中记录的数据修改历史。例如,要查询谁对global节点^QP(1,2)做过修改,可以使用如下代码。它查询Journal文件(输入参数pFilePath)中的global节点(输入参数pSearchGlobal)的操作:

1 0
2 118

让我们假设我们已经将一个数据源连接到Adaptive Analytics,创建了一个项目并在那里添加了表。

现在我们来准备Adaptive Analytics的工作。首先,我们需要从表中选择数据,使其可用于未来的报告。要做到这一点,我们需要从表的列中创建维度。创建维度通常是为了将我们的数据分解成不同的类别,例如用户住在哪个城市,或者购买是在哪个月进行的。然而,没有什么可以阻止我们从数字数据中创建维度,这样我们就可以在Intersystems Reports Designer中对它们应用函数。

创建维度的工具位于界面的右侧,如下图所示。要创建一个新的维度,右击位于 "过滤器 "(Filter)行右侧的汉堡包按钮,选择 "创建维度 "(Create Dimension),如图所示。

 

将出现以下窗口:

0 0
0 9
文章
姚 鑫 · 五月 24 阅读大约需 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 函数不接受任何参数。请注意,参数括号是必需的。

0 0
0 12