清除过滤器
文章
姚 鑫 · 四月 4, 2021
# 第十六章 导入SQL Code
本章介绍如何将SQL代码从文本文件导入Intersystems SQL。导入SQL代码时,IntersystemsIris®数据平台使用动态SQL准备并执行每行SQL。如果遇到无法解析的代码行,则SQL导入跳过该行代码并继续准备和执行后续行,直到它到达文件的末尾。所有SQL代码导入操作导入到当前名称空间。
SQL导入主要用于导入数据定义语言(DDL)命令(例如`Create Table`),并使用`Insert`,`Update`和`Delete`命令填充表。 SQL导入确实准备并执行`SELECT`查询,但不创建结果集。
SQL导入可用于导入Intersystems SQL代码。它也可以用于代码迁移,从其他供应商导入SQL代码(`FDBMS`,`Informix`,`Interbase`,`MSSQLServer`,`MySQL`,`Oracle`,`Sybase`)。来自其他供应商的代码被转换为Intersystems SQL代码并执行。 SQL导入无法将所有SQL命令导入Intersystems SQL。它导入与SQL标准的Intersystems Iris实现兼容的那些命令和条款。不兼容的功能通常被解析,但忽略了。
SQL导入可以成功准备一个SQL查询 - 在适当的情况下创建相应的缓存查询 - 但它不会执行查询。
通过从`%system.sql.schema`类中调用相应的方法,执行SQL代码导入。导入SQL代码时,这些方法可以创建其他两个文件:`errors.log`文件,它记录解析SQL命令中的错误,以及一个不支持的。其中包含该方法无法识别为SQL命令的文字文本。
# 导入Intersystems SQL.
可以使用以下`%System.sql.schema`方法从文本文件中导入Intersystems SQL代码:
- `ImportDDL()`是一个通用的SQL导入方法。此方法运行作为背景(非交互式)进程。要导入Intersystems SQL,请将“IRIS”指定为第一个参数。
- `run()`是一个Intersystems SQL导入方法。该方法从终端交互方式运行。它会提示指定导入文本文件的位置,创建`Errors.log`文件和U`nsupported.log`文件以及其他信息。
注意:此导入和执行SQL DDL代码不应与管理门户SQL接口的Import语句操作混淆。该操作以XML格式导入SQL语句。
以下示例导入Intersystems Iris SQL代码文件`Pathname MySQLCode.txt`,在当前命名空间中执行该文件中列出的SQL命令:
```java
DO $SYSTEM.SQL.Schema.ImportDDL("IRIS",$USERNAME,"c:\temp\mysqlcode.txt",,1)
```
默认情况下,`ImportDDL()`创建错误日志文件。此示例在与SQL代码文件中创建名为`mysqlcode_errors.log`的文件。第五个参数是一个布尔值,指定是否创建列出不受支持的SQL命令的文件。默认值为0.在此示例中,第五个参数设置为1,在与SQL代码文件相同的目录中创建名为`mysqlcode_unsupported.log`的文件。即使没有写入它们时,也会创建这些日志文件。
从终端执行`ImportDDL()`时,它首先列出输入文件,错误日志文件和不受支持的日志文件。然后,对于每个SQL命令,它显示一个列表,例如以下内容:
```sql
SQL statement to process (number 1):
CREATE TABLE Sample.MyStudents (StudentName VARCHAR(32),
StudentDOB DATE)
Preparing SQL statement...
Executing SQL statement...
DONE
```
如果在任何SQL命令中发生错误,则终端显示错误,如以下示例所示:
```sql
SQL statement to process (number 3):
INSERT INTO Sample.MyStudents (StudentName,StudentDOB) SELECT Name,
DOB FROM Sample.Person WHERE Age
文章
姚 鑫 · 九月 17, 2022
# 第三十五章 在 Windows 上使用 IRIS(二)
# IRIS 启动器
`Microsoft Windows` 平台上的主要`IRIS` 界面是 `IRIS` 启动器。从 `IRIS` 启动器,可以启动所有 `IRIS` 配置和管理工具。还可以从快捷方式或命令行调用每个启动器命令。
相应地,可以从 `Windows` 程序菜单中启动许多 `IRIS` 工具,方法是指向 `IRIS` 文件夹,然后指向启动 `IRIS` 以获得适当的 `IRIS` 实例名称。
当在基于 `Windows` 的系统上启动 `IRIS` 时, `IRIS` 启动器图标会出现在任务栏的系统托盘中。
当单击 `IRIS` 启动器时,会出现一个菜单,其中包含使用 `ObjectScript` 实用程序和编程环境的命令。
下表描述了 IRIS 启动器菜单中可用的命令。
IRIS 启动器命令| 描述
---|---
`Getting Started`|显示教程、发行说明、文档和其他相关信息的链接
`Start IRIS`|启动菜单项后方括号中指定的默认实例,例如 `[ii2081]`。如果 `IRIS` 服务器已经启动,这个选项会变暗——它不可用。
`Stop InterSystems`|关闭或重新启动本地 `IRIS` 实例。如果 `IRIS` 服务器已停止,此选项将显示为灰色——它不可用。
`Studio`|创建、编辑、删除和编译 `IRIS` 类定义和例程。
`Terminal`|调用 `IRIS` 的命令行解释器。
`Management Portal`|执行常见的系统管理任务。创建数据库和命名空间,并调整所有 `IRIS` 配置设置。显示类、全局变量和例程,以及用于管理它们的函数。显示表和视图,执行查询和 `SQL` 管理功能。
`Documentation`|显示 `IRIS` 在线文档。
`Preferred Server [server name]`|显示远程服务器列表并使用子菜单上的“添加/编辑”命令维护服务器连接。首选服务器出现在括号中,并且在服务器列表中旁边有一个复选标记。
`About`|显示 `IRIS` 版本和构建信息。
`Exit`|从系统托盘中删除`IRIS` 启动器图标;这不会停止 `IRIS`。当实例重新启动时,启动器会重新出现。
# 启动 IRIS
要启动 `IRIS`,请在系统级别运行启动程序。此过程使用默认配置文件或指定的配置文件运行。
**注意:如果在启动 `IRIS` 时遇到任何问题,请按照“监控指南”的“监控日志文件”部分中的说明查看 `messages.log` 文件。**
要在 `Windows` 平台上启动 `IRIS`,请从 `IRIS` 启动器中选择启动 `IRIS`。这将使用指定的配置文件启动 `IRIS` 实例。当 `IRIS` 未运行时, `IRIS` 启动器图标显示为灰色。
如果 `IRIS` 启动器不在系统托盘中,请从 `Windows` 程序菜单中选择 `IRIS` 文件夹并为该实例启动 `IRIS`。要将启动器返回到系统托盘,请转到 `install-dir/bin` 目录并双击 `iristray.exe` 文件。
或者,可以从“开始”菜单上“运行”命令的“打开”框中的 `install-dir/bin` 目录输入这些命令。例如,要从 `MyIris\bin` 目录启动名为 `MyIris` 的实例,请输入以下命令:
```
c:\MyIris\bin\iris start iris
```
# 停止 `IRIS`
通常让 `IRIS` 系统保持运行。但是,如果操作系统需要重新启动,请在关闭系统之前停止 `IRIS`。诸如备份和数据库修复实用程序等维护任务不需要停止 `IRIS`。
从 `IRIS` 启动器菜单中单击停止 以关闭或重新启动本地 `IRIS` 实例。默认情况下,此选项使用默认关闭例程立即关闭(或重新启动) `IRIS`。但是,它还提供了设置延迟关闭的计时器、运行用户定义的关闭例程、向服务器上的用户广播警告消息以及关闭而不进行故障转移的选项。可以从 `Windows` 程序菜单运行相同的过程。为该实例名称选择 `IRIS` 文件夹并停止 `IRIS`。一旦倒计时达到 `0` 并且关机程序已开始,将无法取消关机。

**重要提示:`InterSystems` 建议运行 `Stop IRIS` 来关闭 `IRIS` 以确保其正确关闭。**
## 删除 `Stop InterSystems` 命令
为防止意外执行 `Stop InterSystems` 命令,可以通过从相应 `IRIS` 实例的 `install-dir/bin` 目录中删除 `irisstop.exe` 文件来从 `IRIS` 启动器中删除该命令。还可以从“开始”菜单中的相应 `IRIS` 实例中删除停止 `InterSystems` 快捷方式。指向 `Programs` 和 IRIS 实例名称,然后右键单击 `Stop` 并单击 `Delete`。
# 从命令提示符控制 `IRIS`
可以通过运行 `install-dir\bin` 目录中的 `iris.exe` 程序从 `Windows` 命令提示符控制 `IRIS` 实例。
要显示此命令的最新帮助信息,请从 `IRIS install-dir\bin` 目录调用 `iris` 帮助。例如:
```java
C:\InterSystems\IRISHealth\bin>iris help
usage:
iris start []
to start instance , optionally using the specified .cpf file.
An optional /EmergencyId=Username,Password can be used to start
InterSystems IRIS in emergency mode. When the EmergencyId argument
is supplied, the system starts up in emergency mode in which only the
baseline databases are mounted and access to InterSystems IRIS is
governed by InterSystems IRIS login using that username and password.
Emergency mode is supplied to give access in the event that privileged
users are not available or their password is forgotten. Emergency
startup is only available from an administrator account.
When InterSystems IRIS is started in emergency mode, the IRIS control
service is not used. This means that if you log out of Windows, all
the InterSystems IRIS processes will immediately exit.
or: iris startnostu
to start instance without running ^STU.
or: iris stop
to shut down instance .
or: iris stopnoshut
to shut down instance without running user shutdown routines.
or: iris stopstart
to shut down and restart instance .
Note: An optional /nofailover argument can be specified for stop,
stopnoshut, or stopstart to not trigger a mirror failover.
or: iris force
to force down instance .
or: iris [ run OR console OR terminal ]
to run InterSystems IRIS in programmer mode with
[ no-device OR console OR terminal ] for $Principal.
or: iris [ run OR console OR terminal ]
to run InterSystems IRIS routine in application mode with
[ no-device OR console OR terminal ] for $Principal.
or: iris [ run OR console OR terminal ]
to run InterSystems IRIS routine in in application
mode with [ no-device OR console OR terminal ] for $Principal.
or: iris runw []
to run InterSystems IRIS routine in application mode with
no input/output device for $Principal using the optional namespace.
When run from a batch script, iris will wait for the InterSystems IRIS
process to terminate before returning. The exit code from the InterSystems
IRIS process will be returned by iris.
Note: An optional /Title="Title string" can specify the console
or terminal title bar text.
or: iris iristraystart
to start IRISTray for instance .
or: iris iristraystop
to stop IRISTray for instance .
or: iris licmanagerstop
to stop licmanager running in instance .
or: iris all [> outputfile]
to list all installed instances.
or: iris allw [> outputfile]
to list (wide format) all installed instances.
or: iris list [] [> outputfile]
to list information about all installed instances or the
specified instance.
or: iris qlist [] [> outputfile]
to display a quick list of information about all installed
instances or the specified instance, in a format suitable
for parsing in command scripts.
The record for an instance contains fields separated by "^" (carats):
Field 1: instance name
Field 2: instance directory
Field 3: version identifier
Field 4: current status for the instance
Field 5: configuration file name last used
Field 6: SuperServer port number
Field 7: WebServer port number
Field 8: JDBC Gateway port number
Field 9: Instance status (e.g., ok, warn, alert)
Field 10: Product name of the instance
Field 11: Mirror Member Type (e.g., Failover, Disaster Recovery)
Field 12: Mirror Status (e.g., Primary, Backup, Connected)
or: iris serverlist [> outputfile]
to list information about all defined servers.
Note: When [> outputfile] is present, output is redirected
to the file instead of being displayed on the terminal.
or: iris telnetstop
to stop the InterSystems IRIS TELNET daemon.
or: iris telnettrace
to toggle the TELNET trace state.
or: iris iristrmdstop
to stop the InterSystems IRIS terminal daemon.
Note: iris often displays error information in a message box.
You can suppress the message box containing error information
by adding "quietly" (without the quotation marks) as the
final argument to the iris command.
or: iris help [display]
to show this help. If display is specified the help
is displayed in a browser window.
```
`iris help` 命令将在终端中显示最新的帮助信息。还可以通过将 >outputfilename 添加到 `iris` 帮助命令,将帮助信息保存到 `intsall-dir\bin` 目录中的文件中。例如:
```
C:\MyIris\bin>iris help>helpinformation
```
# 在命令行上连接到 `IRIS`
可以使用 `iris` 终端命令在命令行上登录 `IRIS` 实例。
文章
姚 鑫 · 八月 29, 2022
# 第十六章 维护本地数据库(一)
可以在管理`Portal` (`System Operations` > `databases`)的“数据库”页面查看和维护本地数据库。
在此页面,可以查看到以下信息:
- 数据库一般信息` Databases General Information`-所有数据库的概述信息。
- 数据库空闲空间信息 `Databases Free Space Information` - 所有数据库的空闲空间信息
- 数据库详细信息页 `Database Details Page` -个别数据库的特定信息。
还可以通过维护操作增加该页面的可用空间。
本节中描述的大多数信息和操作也可以使用`^DATABASE`命令行实用程序找到并执行。
# 数据库的一般信息
数据库页面(系统操作 > 数据库)包含所有本地数据库的列表。对于每个本地数据库,会看到以下信息:
#### 本地数据库信息
- `Name` - 数据库名称。
- `Directory` - 分配给数据库可以增长的最大大小,以 `GB` 为单位。
- `Max Size (GB)` - 分配给数据库可以增长的最大大小,以 `GB` 为单位。
- `Size (MB)` - 当前分配的数据库大小,以兆字节为单位。
注意:此字段衡量数据库的逻辑大小。因此,此处报告的大小可能低于数据库的物理大小,特别是对于 `IRISTEM` 数据库。
- `Status` - 数据库的状态:`mounted` (包括它有哪些权限)、`unmounted`或`dismounted`。
- 已安装的数据库是选择了启动时需要安装的数据库,因此必须安装该数据库才能使 `IRIS` 启动或成为镜像中的主数据库;在这种情况下,它总是在 `IRIS` 启动时被安装和访问。或者,它是一个先前未挂载的数据库,在访问它或显式挂载时已动态挂载;在这种情况下,它会一直挂载,直到明确卸载它或重新启动/停止 `IRIS`。
- 未挂载的数据库是未选择启动时需要挂载的数据库,因此不需要挂载 `IRIS` 即可启动或成为镜像主数据库,并且既未访问也未显式挂载;当访问它或显式安装它时,它会动态安装,并保持安装状态,直到显式卸载它或重新启动/停止 `IRIS`。
- 已卸载的数据库是已显式卸载的数据库;在显式安装它或重新启动/停止 `IRIS` 之前,它是不可访问的(也就是说,如果尝试访问已卸载的数据库,则不会动态安装它)。要永久卸载数据库,您必须将其从配置中删除。
- `Encrypted` - 指示数据库是否已加密。
- `Journal` - 指示数据库中的全局变量是用 `Y` 还是 `N` 记录的。
此外,该页面包含一个过滤栏,可以使用它来控制显示的数据库数量。例如,要仅列出系统数据库,可以在 `Filter:` 文本框中输入 `IRIS*`;和/或要每页仅列出五个数据库,请在页面大小:文本框中输入 `5`;和/或将显示的行数限制为 `3`,在 `Max rows`: 文本框中输入 `3`(在 `Results` 字段中显示带有数字的 `+` 号表示存在满足指定条件的其他数据库,但它们不会显示)。
# 数据库可用空间信息
管理数据库中的可用空间(空块)是数据库维护的一个重要方面。要查看可用空间信息,可以显示管理门户的可用空间视图或使用 `^%FREECNT` 实用程序。请记住,正常操作中数据库的大小和可用空间属性会不断变化,门户网站或实用程序在给定时间点报告的数字只是近似值。
## 使用管理门户显示可用空间信息
要显示可用空间信息,其中显示有关每个本地数据库上可用空间量的信息,请导航到数据库页面(系统操作 > 数据库)并单击可用空间视图单选按钮。下表描述了显示的信息:
#### 本地数据库可用空间信息
- `Name` - 数据库名称。
- `Directory` - 数据库的主卷所在的系统目录。
- `Max Size` - 数据库可以增长到的最大分配大小,以 `GB` 为单位。创建数据库时默认为无限制。
- `Size` - 当前分配的数据库大小,以兆字节为单位。
注意:此字段衡量数据库的逻辑大小。因此,此处报告的大小可能低于数据库的物理大小,特别是对于 `IRISTEM` 数据库。
- `Expansion Size` - 扩展数据库的大小(以 `MB` 为单位)。创建数据库时,默认和推荐设置为零 (`0`),这表示使用系统默认值(当前大小的 `12%` 或 `10 MB`,以较大者为准)。在此设置下,扩展大小不会大于 1GB。
- `Available` - 数据库中可用的可用空间量(以 `MB` 为单位)。
- `%Free` - 数据库中可用空间的百分比。
- `Disk Free Space` - 卷上的可用空间量。
- `Status` - 目录的状态,指示数据库是否已挂载以及具有哪些权限。
# 使用 ^%FREECNT 显示可用空间信息
`IRIS` 还提供了 `^%FREECNT` 实用程序,可以通过在终端中输入 `do` `^%FREECNT` 来运行该实用程序,以显示数据库中的可用空间。
在 `%SYS` 命名空间中使用 `^%FREECNT` 时,可以选择通过在提示符处输入星号 (`*`) 来显示所有数据库的可用空间,或者输入一个数据库目录名称。例如:
```java
%SYS>do ^%FREECNT
Database directory to show free space for (*=All)? *
Databases Selected
------------------
c:\intersystems\irishealth\mgr\
c:\intersystems\irishealth\mgr\enslib\
c:\intersystems\irishealth\mgr\hscustom\
c:\intersystems\irishealth\mgr\hslib\
c:\intersystems\irishealth\mgr\hssys\
c:\intersystems\irishealth\mgr\irisaudit\
c:\intersystems\irishealth\mgr\irislib\
c:\intersystems\irishealth\mgr\irislocaldata\
c:\intersystems\irishealth\mgr\iristemp\
c:\intersystems\irishealth\mgr\user\
Device:
Right margin: 80 =>
Database Free Space
Aug 20 2022 12:30 PM
Database Max Size Size Available %Free Disk Free
c:\intersystems\irishealth\mgr\ 无限制 113MB 19MB 16.81 31.67GB
c:\intersystems\irishealth\mgr\enslib\
无限制 208MB 16MB 7.69 31.67GB
c:\intersystems\irishealth\mgr\hscustom\
无限制 21MB 8.7MB 41.42 31.67GB
c:\intersystems\irishealth\mgr\hslib\
无限制 1.19GB 132MB 10.82 31.67GB
c:\intersystems\irishealth\mgr\hssys\
无限制 21MB 8.9MB 42.38 31.67GB
c:\intersystems\irishealth\mgr\irisaudit\
无限制 11MB 10.0MB 90.9 31.67GB
c:\intersystems\irishealth\mgr\irislib\
无限制 356MB 0.51MB .14 zn "user"
USER>do ^%FREECNT
Databases Selected
------------------
c:\intersystems\cache\mgr\user\
Device:
Right margin: 80 =>
Cache Database Free Space
Aug 20 2022 12:32 PM
Database Max Size Size Available %Free Disk Free
c:\intersystems\cache\mgr\user\ 无限制 11MB 9.4MB 85.45 31.67G B
```
**注意:`
公告
Claire Zheng · 八月 2, 2022
开发者们,大家好!
在此向您介绍开发者社区的一个新特性—— InterSystems开发者关键问题(Key Questions).
我们增加了一个新的 #Key Question 标签(#关键问题),用以显著标识与InterSystems数据平台有关的、影响重大的提问/问题。
每个月,InterSystems专家会选择一些这类问题,提出这些问题的社区成员将被授予荣誉奖励!
有哪些荣誉呢?详情如下!
什么是 #Key Question(#关键问题) ?
这个标签突出了关于如何使用InterSystems数据平台开发、测试、部署、管理等解决方案的问题,这些问题或富有洞察、或有趣、或最令人困惑等等。
谁来决定?
InterSystems 专家(Expert)会审阅开发者社区的问题,并决定将哪些问题归为 #Key Questions(#关键问题)。
哪些问题会被审阅?
开发者社区的所有问题都会被纳入审阅范围。
你多久可以在开发者社区上看到新的 #Key Questions(#关键问题)?
我们的专家每个月都会选取一些问题并赋予 #Key Question(#关键问题)标签。
你会获得什么荣誉?
在Global Masters,你会获得新增荣誉徽章 "Key Question"。
开发者社区亮点:我们会在被选为 #Key Question(#关键问题)的问题下面,以@DC.Administration 账号添加评论。
提问赢取奖励积分, 开发者社区探索之夏,或许你的问题就是我们专家选取的下一个 #Key Question(#关键问题)!
关注标签 ,时刻了解详情!
文章
Claire Zheng · 七月 20, 2021
InterSystems极客俱乐部线上直播课“Health Connect系统运维培训”回放已准备好,欢迎您点击报名,扫码看回放!
文章
Michael Lei · 一月 17, 2023
每秒插入大量记录,同时同步进行实时查询的能力称为**混合事务分析处理 (HTAP)**。 它也被称为 Transactional analytics 或 Transanalytics 或 Translytics,当存在来自工业物联网传感器的持续实时数据流或股票市场的波动数据时,它是非常有用的技术,并且允许实时或接近实时地查询这些数据集。
在本文中我将分享我在不同平台上运行带有测试流数据的演示,同时进行持续插入和持续查询,看看每个平台上有何不同反应,如在每个平台上输入和输出数据的速度以及它们的性能。 我在本演示中试验的平台包括:InterSystems IRIS、MariaDB 和 MySQL。
试验结果
20秒的测试时间里:
| | 插入数据条数 | 查询次数 | 插入数据大小 | 查询数据大小 |
| --- | ------ | ---- | ------ | ------ |
| IRIS | 708,000 | 59,000 | 184M | 15.217M |
| MariaDB | 98,000 | 23,679 | 25M | 6.69M |
| MySQL | 38,000 | 11,947 | 9.869M | 2.45M |
本演示的视频:
需要环境
Docker 和 Docker Compose
本地运行
我们在三个不同的平台(MySQL、MariaDB 和 InterSystems IRIS 社区版)上运行记录的摄取和查询速度测试。
为此,需要按如下所示为每个平台下载容器的 YAML 文件:
1. 使用 MySQL 运行速度测试
1. 下载 YAML 文件:
2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MySQL 构建 docker 镜像:**docker-compose -f ./docker-compose-mysql.yml up**
3. 在浏览器选项卡中输入 以查看演示 UI。
2. 使用 MariaDB 运行速度测试
1. 下载 YAML 文件:
2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MariaDB 构建 docker 镜像:**docker-compose -f ./docker-compose-mariadb.yml up**
3. 在浏览器选项卡中输入 以查看演示 UI。
3. 使用 InterSystems IRIS 运行速度测试
1. 下载 YAML 文件:
2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 InterSystems IRIS 构建 docker 镜像:**docker-compose up**
3. 在浏览器选项卡中输入 以查看演示 UI。
从 localhost 运行测试后,可以看到以每秒钟摄取和查询的记录数形式显示的结果。
与 MySQL 和 MariaDB 相比,InterSystems IRIS 的数值更令人印象深刻。
异常
在尝试为每个平台运行 docker 容器时,可能会出现以下错误:
“Missing Linux capabilities”(缺少 Linux 功能)

可以在 YAML 文件的 htapirisdb 部分添加以下行,以跳过 Linux 功能检查:
**command: --check-caps false**
_(@Robert.Kuszewski, 2022)_
__如下所示:
每个平台上的实时测试运行:
每个平台的速度测试结果
InterSystems IRIS:

MariaDB:

MySQL:
 参考文献
1. [intersystems.com](http://intersystems.com). (Amir, S.). _InterSystems Open Exchange_. [在线] 网址: [访问日期:2022 年 9 月 20 日]。
2. Kuszewski, B. (2022). _[在 Docker 20.10.14+使用 InterSystems IRIS 容器_.](https://cn.community.intersystems.com/post/在-docker-201014-使用-intersystems-iris-容器) [在线] InterSystems 开发者社区。 英文原文: [访问日期:2022 年 10 月 20 日]。
问题
smith tob · 五月 12, 2023
使用sql访问数据库时,如何对sql语句进行加密? 您是想在 插入表数据的时候将数据加密吗? 比如 在执行insert的 时候把一个字段 用md5 hash 起来存储的,这个现成的sql function 是没有的。SQL Functions | InterSystems SQL Reference | InterSystems IRIS for Health 2023.1这个是我们目前最新版本支持的所有 sql function 如果你是想把sql语句作为整体加密,然后在cache执行的时候解密出来,这样操作的话,加密基本都行吧
公告
Jingwei Wang · 八月 29, 2022
各位开发者,
新的视频已经发布在BiliBili平台:
⏯ 在InterSystmes IRIS 使用 Business Process Designer(业务流程设计器)
请观看如何构建一个新的业务流程,在InterSystems Production 中提供业务逻辑和路由功能。了解如何使用管理门户中的业务流程设计器构建一个BPL业务流程。此外,还可以尝试使用InterSystems集成开发环境自己构建一个。
祝您观看愉快 ! B站上能看到字幕
文章
Claire Zheng · 二月 23, 2022
最新一期“极客聊吧”,InterSystems销售工程师们聊了聊这些话题:为什么有些医院和某些商保之间可以直接结算,有些又不能?医院和保险之间的结算难在哪儿?在InterSystems 2021全球线上峰会中提到的医保结算案例对国内实践有哪些借鉴意义?FHIR又能起到什么关键作用?医疗数据实现互联互通的关键是什么?来听听的答案。
文章
Jingwei Wang · 八月 25, 2021
Object Script(一)
概况
ObjectScript是一种用于在InterSystems IRIS数据平台上快速开发编程语言,它是面向对象的弱类型脚本语言,非常适用于各种应用,包括业务逻辑、应用集成和数据处理。
在这里,我将主要介绍ObjectScript的命令脚本,类,方法和Routine等使用方式和语法规范。如有任何疑问,可在InterSystems开发者社区进行深入讨论。
IDE选择
可以使用InterSystems IRIS内置的Studio或Visual Studio Code(需要安装Object Script扩展)来查看和编辑代码。这里我们使用InterSystems IRIS内置Studio来做示例。
如果你已安装InterSystems IRIS或者InterSystems HS 等任何InterSystems产品,找到右下角的图标 ,单击鼠标右键,点击Studio,如下图所示:
输入用户名和密码(用户名:superuser 密码:安装时自己设置的密码),即可进入到Studio开发环境,如下图所示:
Terminal
可以直接打开InterSystems IRIS的终端尝试执行ObjectScript的简单指令。通过右下角的图标 ,单击鼠标右键,点击Terminal,如下图所示:
命名空间
启动一个终端会话后,输入用户名和密码(用户名可以使用superuser,密码是安装时自己设置的密码),之后就会显示你在哪个命名空间下,如下图所示,我的就在USRE这个命名空间下。
命名空间切换
do ^%CD
set $namespace = "Namespace"
Terminal指令语法
在终端中,可以输入各种ObjectScript命令语句。但是不支持多行模式,所以整个命令必须在单行输入。
常用执行指令
指令
缩写
操作
语法/示例
write
w
打印变量
write "Hello World!"
write !
W !
新行打印变量
write !, "This", !, "Is", !, "A", !, "Multi-line", !, "Message!", !
write ?
w ?
列定位打印变量
write !, "This", ?9, "Is", ?18, "A", ?27, "Columnar", ?36, "Message!", !
write #
w #
清除屏幕
write #
zwrite
zw
打印变量的名称和它们的值
zwrite
read
r
读入字段
read x
set
s
赋值
set x = "Hello World!"
kill
k
清除变量,慎用(不加参数调用时将清除内存中的所有变量!)
kill x
quit
q
终止一个例程的执行
后面加返回值(类似return)
do
d
调用函数,routine
do ##class(myclass).[method](…)
if
评估条件,并根据条件来决定运行哪些代码
if condition { code } elseif condition {code} else {code}
for
重复代码的部分
FOR variable=start:increment:end {…}
while
作用与无参数的For类似,都是重复代码的部分.
2. 与for的区别在于条件是在整个代码块之前(While)还是之后(Do/While)被评估
do {code} while condition
或者
while condition {code}
异常错误解读
输入 quit 退出错误
数据类型
%String, %Status, %Integer, %Double, %DateTime等
运算符
关系运算符:= , < ,> ,<= ,>=
算术运算符:+ ,- , * , / 等
逻辑运算符:&& , || , '
连字符:_
运算优先级:严格按照从左到右执行,数学运算没有优先级,但先计算括号内表达式。
文章
Michael Lei · 七月 6, 2021
如果一张图片胜过千言万语,那么一段视频又价值几何? 当然胜过敲一个帖子。
请在 [InterSystems Developers YouTube](https://www.youtube.com/c/InterSystemsDevelopers) 观看我的“Coding talks”:
1. 使用 Yape 分析 InterSystems IRIS 系统性能。 第 1 部分:安装 Yape
在容器中运行 Yape。
2. Yape 容器 SQLite iostat InterSystems
提取和绘制 pButtons 数据,包括时间范围和 iostat。
如果您需要一个简单的方法来捕获和查看 Caché 和 IRIS 以及系统性能指标,可以安排每天运行 pButtons 来轻松实现。 [我之前写过这方面的文章](https://cn.community.intersystems.com/post/intersystems-数据平台的容量规划和性能系列文章)。
我经常需要查看客户系统以进行容量规划和性能检查,这就是我编写 Yape 并在 [GitHub](https://github.com/murrayo/yape "GitHub") 上提供它的原因。 我的 InterSystems 同事 Fabian 将 Yape 的内部结构带入了新方向,并[使其正式在容器中运行](https://community.intersystems.com/post/visualizing-data-jungle-part-iv-running-yape-docker-image)。 Fabian 已经离开 InterSystems,但我继续在 GitHub 上进行开源开发。 在过去一个月左右的时间里,我修复了一些操作系统命令格式错误,使日期处理更智能,在 vmstat 中添加了“Total CPU”图表(倒着看“id”导致我的脖子拉伤),以及其他修饰性更改。
如果您想为 Yape 做出贡献,它在 GitHub 上是开源的。 如果您有功能要求,请[通过建议页面](https://github.com/murrayo/yape/issues)告诉我。
另外,请查看 [Open Exchange 上的 Yape 应用程序](http://bit.ly/2WnqmSt)。
在接下来的几个月,我将分享工作流程中的其他一些技巧,并期望继续开发以使呈现的数据更加有用。 Yape 非常适合检查和查看昨天或过去一周发生的事件的趋势,但是您还需要实时监视和警报... 这里我也对将来的一些帖子做个预告 ;)
文章
Michael Lei · 九月 9, 2021
挑战一:缺乏一个统一的技术体系?InterSystems IRIS 医疗版通过统一的数据库、互操作性/中间件、机器学习和FHIR等医疗行业特有的功能来简化开发,开箱即用。
挑战二:需要高性能的解决方案,可以定制适合医疗行业使用的案例InterSystems IRIS for Health医疗版由医疗行业开发人员创建并为医疗服务服务,具有所需的性能、可扩展性和灵活性,大量的全球、全国大型顶级医院案例。全美排名前20医院,全国客户数百家,百强医院30余家;
挑战三:开源和专有软件缺乏灵活性,无法为医疗行业应用提供高可靠性。InterSystems IRIS医疗版实现一套平台兼容专有和开源模块,同时开发人员可以选择自己喜欢的开发语言和灵活性,支持多种开发语言(ObjectScript,.net, Java, Sql, 等等)
挑战四:缺乏具有医疗卫生领域专业知识的供应商,也没有为开发人员提供持续的支持。InterSystems IRIS 医疗版的产品开发能力、屡获殊荣的支持和长期深耕医疗的企业文化,确保开发人员持续成功。
文章
Claire Zheng · 三月 11, 2021
新冠肺炎疫情大流行史无前例地推动着医疗数字化发展,这一进程不仅影响了医疗服务的提供方式,更带来深刻的行业服务模式变革。经济学人邀请了来自数据技术提供商InterSystems、初级医疗服务提供商Babylon、咨询服务提供商埃森哲、数字化医疗解决方案提供商Kaiser Permanente的专家,从各自的领域和观察出发解读多个热点话题。InterSystems医疗行业解决方案副总裁Don Woodlock参加了此次研讨,分享了InterSystems在数据管理、医疗模式转变、数字化工具面临的优势与挑战、患者对数字化手段的接纳程度等方面的洞察。
能不能搞几个观点摘要? 欢迎课代表留言 请 @Jun.Qian @Li.Yan 同学抽空看看视频,给我们分享一下,谢谢! 好的
文章
Qiao Peng · 四月 7, 2021
如果看了前一篇InterSystems IRIS医疗行业版创建FHIR服务器,应该您已经搭建好了FHIR服务器和FHIR资源仓库。除了使用FHIR REST API来操作这个FHIR服务器,您还可以更直观地看看它的价值 - 使用SMART on FHIR应用。这次,基于上次建好的FHIR服务器,我们用10分钟把一个SMART on FHIR运行起来。
SMART on FHIR背景
SMART是Substitutable Medical Applications and Reusable Technology的缩写,它的目标是创建可以被替换、可以复用的医疗应用,简单说就是希望医疗应用可以像我们的手机应用一样:不喜欢当前的天气应用,那么就换一个。SMART,这个起于2011年的哈佛和波士顿儿童医院的合作项目,在2013年注意到并快速采用了FHIR,成就了今天的SMART on FHIR。
不再需要处理数据持久化、数据模型标准化等问题,SMART on FHIR应用相当的轻量级,因此也容易快速开发。它主要借助FHIR API和OAuth认证,连接到FHIR服务器上操作数据。SMART on FHIR应用都是Web应用,它可以独立运行,也可以嵌入到任何现有应用中,例如TrakCare(InterSystems的EMR产品)和HealthShare Personal Community (InterSystems的患者门户),快速丰富和提升这些应用的价值。
现在SMART on FHIR应用商店里已经有很多针对医生或者患者的应用可供免费下载和测试,初步实现了SMART目标。不论您是想借助SMART on FHIR理解FHIR、还是想开发SMART应用、亦或直接测试和使用应用商店里的现成应用,都希望这篇文章对您有所帮助。
测试SMART on FHIR应用
完整的SMART on FHIR应用涉及到OAuth认证,我们先从一个简单的、无需认证的环境开始,快速了解一下SMART on FHIR应用。在下一篇中,我们将在InterSystems IRIS搭建完整的支持环境:不仅是FHIR服务器和FHIR资源仓库,还包括OAuth认证服务器。
1. 下载SMART on FHIR应用
我们先下载一个SMART on FHIR应用,SMART on FHIR应用商店里有很多不错的应用,我们下载儿童生长发育分析的应用,虽然简单,但它很有代表性,也是波士顿儿童医院的杰作。它支持DSTU2和STU3的FHIR版本,不过因为它用的FHIR资源类型不多,因此实际上也支持FHIR R4。
将代码下载到本地后,解压并保存在您上一篇创建的InterSystems IRIS FHIR服务器上,建议您创建一个名为SMART的目录,存放解压后的SMART 代码。
之后,请记得打开命令行,在这个目录下执行:
npm install
它会下载需要的一系列文件到node_modules子目录下。
执行完这一步,您已经有一个完整的SMART on FHIR应用了。
2. 修改SMART on FHIR
要连接到我们上一篇创建的FHIR服务器,需要对应用的代码做一点点修改。需要修改的是launch.html文件,它负责OAuth认证并重定向到index.html。
找到您的launch.html文件,用任何文本编辑工具打开它:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Growth Chart SMART Application</title>
<script src="node_modules/fhirclient/build/fhir-client.js"></script>
<!--<script>
FHIR.oauth2.authorize({
"client_id": "growth_chart",
"scope": "patient/Observation.read patient/Patient.read offline_access",
// "client_id": "944d96a0-4caf-4a96-813e-bc38aadb1169" // HSPC
// "client_id": "5570f8be-6caf-4915-ae15-69545ab38e68" // Cerner
});
</script>-->
<script>
FHIR.oauth2.authorize({
"client_id": "growth_chart",
"scope": "patient/*.read",
"fhirServiceUrl": "http://localhost:52776/csp/healthshare/fhirserver/fhir/r4",
"patientId": 95,
"redirectUri":"index.html"
});
</script>
</head>
<body>Loading...</body>
</html>
找到FHIR.oauth2.authorize,我把原来的代码注释起来,用于比对。这里我们做了这些修改:
1. 增加fhirServiceUrl,用于指向FHIR服务器端点。增加它的原因是我们想在这篇文章中,跳过OAuth认证。请修改这个URL指向您的FHIR服务器端点。
2. 增加patientId,用于指定我们想打开的FHIR患者资源。增加它的原因是,我们不是通过其它应用打开这个SMART on FHIR,没有选中的患者上下文,因此我们在这里指定一个患者资源。请找一个您的FHIR资源仓库中,有身高、体重等信息的儿童患者资源,用它的FHIR资源id替换。上一篇中有介绍怎么使用API查找这样的患者。
3. 增加redirectUri,用于重定向页面。这里直接重定向到index.html。
如果您是开发者,FHIR.oauth2.authorize的API的文档在此,供参考。
3. 部署SMART on FHIR应用
将这个SMART on FHIR应用部署到Web服务器上。如果您的环境上没有安装Web服务器,可以使用InterSystems IRIS的私有Apache进行测试。
InterSystems IRIS安装时,会自动安装一个私有的Apache,用于提供管理门户的Web应用。这个私有Apache因为性能原因,不应作为提供外部服务的Web服务器,不过用于我们这次的测试是没有问题的。
在InterSystems IRIS的私有Apache上部署SMART on FHIR应用非常简单:
3.1 创建一个Web应用
打开InterSystems IRIS管理门户网页(http://<IRIS服务器地址>:<Web服务端口>/csp/sys/UtilHome.csp,例如http://localhost:52776/csp/sys/UtilHome.csp),然后在“系统管理>安全>应用程序>Web应用程序"中,点击"新建Web应用程序":
在名称中创建一个新的Web应用,例如/csp/gc;
在命名空间中,选则上一篇创建的FHIRSERVER,或者任何其它的命名空间,如USER;
选中启用“CSP/ZEN”;
“CSP文件设置>物理路径”中,选择您下载并解压的SMART on FHIR应用的路径。
其它默认值无需更改,点击保存按钮。
现在您已经部署成功了SMART on FHIR。
3.2 测试SMART on FHIR
您可以直接打开浏览器,输入网址http://<IRIS服务器地址>:<Web服务端口>/csp/gc/launch.html(用您的环境的IRIS服务器IP和端口号)。应该看到和下面类似的页面,它已经自动重定向到了index.html:
这是一个非常直观的FHIR数据可视化的应用,显示了儿童的生长发育曲线。您还可以下载并部署其它SMART on FHIR应用,用于学习或测试。 还有没有其他类似https://apps.smarthealthit.org/apps/ 这样的应用市场?可以给个列表? 目前这是最主要的SMART on FHIR应用市场。但不少厂商都推出了自己的SMART on FHIR应用,放在自己的官网里,有些是免费的,更多是收费的。
公告
Claire Zheng · 九月 22, 2022
中文社区的同学们大家好!
如你所知,从2022年9月5日-10月24日(北京时间),我们正在举办🏆InterSystems开发者社区中文版首届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)!
截至目前,我们已收获了20余篇佳作
作为此次大赛重要奖项“专家提名奖”评比的重要部分,我们的专家评审团已组建成团!
以下为我们的专家团成员:
@Yunfei.Lei
@Peng.Qiao
@Ida.Yang
@Lin.Zhu
@Louis.Lu
@Hao.Ma
@Jingwei.Wang
@Tete.Zhang
@Tengzhou.Zhuang
@jieliang.liu7848
@Duan.Haihua
@Wenyi.Liu
我们期待专家评审团对参赛作品的公平审阅与打分。
作为社区成员,你的个人贡献也会对每一篇参赛文章产生影响,你的每一次浏览和点赞都将助力你喜欢的文章赢得“开发者社区奖”。
欢迎大家积极投稿、点赞、分享、学习!
欢迎参赛InterSystems开发者社区中文版首届技术征文大赛