公告 Claire Zheng · 四月 19, 2023 持续火热报名中:欢迎参加InterSystems 中国技术培训认证 为支持医疗信息行业人才发展,InterSystems 为中国市场量身定制了贴近需求、灵活、实操性强的技术认证培训计划,由 InterSystems 资深技术专家亲自授课,帮助用户快速掌握 InterSystems 技术,确保用户从快速发展的 InterSystems 技术中获益,以更好地服务于医院信息化建设。点击此处查看课程详情:InterSystems中国技术培训认证 #开发者社区官方 2 0 1 189
文章 Claire Zheng · 七月 22, 2022 阅读大约需 2 分钟 【精华置顶帖】一文了解关于InterSystems开发者社区的各种玩儿法(包括积分福利)! 这是一个帖子合集,方便你快速了解关于开发者社区的各种积分福利和玩儿法! #其他 3 0 1 280
文章 Michael Lei · 四月 24, 2021 阅读大约需 6 分钟 置顶--InterSystems 中文开发者社区精华文章集锦 欢迎大家将相关的经验在这个讨论区分享。 板块 文章列表 征文大赛作品集锦 2022年首届InterSystems 技术征文大赛集锦 2023年第二届InterSystems 技术征文大赛集锦 官方文档 我司即将推出中文官方文档门户,欢迎大家把需要的官方文档发在评论区,我们会优先发布。谢谢! #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #开发者社区官方 1 1 3 861
文章 姚 鑫 · 6 hr 前 阅读大约需 2 分钟 第六章 主设备、当前设备、空设备 第六章 主设备、当前设备、空设备 明确使用主设备 USE 0或USE $principal向进程的主体设备隐式发出OPEN命令。如果另一个进程拥有该设备,则该进程会挂在隐式OPEN上,就像它遇到任何OPEN时一样。 为该进程不拥有的任何其他设备(由于先前的OPEN命令)发出USE命令会产生错误。 仅当进程获取设备时,没有超时的OPEN命令才将控制权返回给进程。可以通过键盘中断命令(如Ctrl-C )中断打开命令。由于保护问题或无效设备名称而无法成功的OPEN将永远挂起。当在OPEN命令中指定超时时, OPEN将在超时到期时将控制权返回给进程。 使用主设备的选项 根据主要设备的性质,可以指定其他特定于设备的参数,这些参数对于管道(进程间通信) 、文件和终端 I/O是不同的。例如,可以使用 TLS 连接打开主设备: #InterSystems IRIS for Health 1 0 0 5
文章 姚 鑫 · 十月 29 阅读大约需 2 分钟 第五章 主设备、当前设备、空设备 第五章 主设备、当前设备、空设备 一个进程拥有一台设备 一次只有一个进程可以拥有一个设备,顺序文件除外。 换句话说,在进程成功向设备发出OPEN命令后,在第一个进程释放该设备之前,其他进程都无法打开该设备。进程通过以下任一方式释放设备: 通过显式发出CLOSE命令。 通过停下来。 每个进程都有一个主设备 每个 IRIS 进程都有一个主要输入设备和一个主要输出设备。默认情况下,这些是同一设备。当您登录终端并激活 IRIS 时,该终端将成为主要设备。由于 IRIS 隐式向该终端发出OPEN和USE命令,因此可以立即向它发出READ和WRITE命令。 IRIS 主设备是操作系统指定为主输入设备的设备。 $PRINCIPAL特殊变量包含主设备的设备 ID。 #InterSystems IRIS for Health 0 0 0 5
文章 姚 鑫 · 十月 28 阅读大约需 2 分钟 第四章 I O 输入输出简介 - Read 命令 第四章 I O 输入输出简介 - Read 命令 Read 命令 该命令从当前设备读取数据。对于某些设备,以星号开头的参数返回 ASCII 数字信息;对于其他人来说,它们表示控制功能。 语法 READ variable:timeout WRITE 命令 该命令将数据写入当前设备。对于某些设备,以星号开头的参数允许使用其 ASCII 数值写入 ASCII 字符;对于其他人来说,它们表示控制功能。对于某些设备,以 # 字符开头的参数指示写入该字符的次数。 #InterSystems IRIS for Health 0 0 0 5
文章 Hao Ma · 十月 28 阅读大约需 4 分钟 配置IRIS Container - CPF merge CPF merge(合并) Automating Configuration of InterSystems IRIS with Configuration Merge CPF merge通过合并一个人工编辑的merge file, 自动的配置新创建的iris instance, 或者修改已有的iris instance。适用于: #新手 #部署 #InterSystems IRIS 1 0 0 7
文章 Hao Ma · 十月 28 阅读大约需 3 分钟 配置IRIS Container - 使用iris-main 使用iris-main iris-main是IRIS镜像的的ENTRYPOINT程序。 在Container中,ENTRYPOINT 指令允许你指定一个可执行程序或者脚本,作为容器启动后运行的主程序。这个程序会在容器启动时自动执行。 执行docker ps命令可以看到当前container的ENTRYPOINT是什么: #新手 #部署 #InterSystems IRIS 0 0 0 7
文章 Hao Ma · 十月 28 阅读大约需 2 分钟 配置Webgateway Conainter-补充 把CSP.conf保存在container之外 在创建webgateway的container时,可以使用ISC_DATA_DIRECTORY=参数, 选择把CSP文保存在主机而不仅仅是container内部。如下面的例子: 使用volumnes映射了主机的./dur-wg-a目录到container的/dur目录, 而command中的ISC_DATA_DIRECTORY=/dur会讲webgateway的配置文件, log文件等保存在主机。 #新手 #部署 #InterSystems IRIS 0 0 0 6
文章 Hao Ma · 十月 28 阅读大约需 7 分钟 配置Webgateway Conainter 上一篇文章使用人工配置的方法简单的配置了webgateway container. 接下来来介绍如何在docker-compose里做自动化部署。 先总结我们要做的事情: 配置到IRIS的连接。定义连接的iris的IP地址或者DNS, 以及连接的用户名密码 以及其他的对默认值的修改。 配置apache2的配置文件,保证到IRIS的HTTP请求能发送给CSP Webgateway。 很多时候,用户会希望使用HTTPS访问IRIS,因此需要在apache2上支持TLS。 这些是最基本的功能。除此之外, 用户还可能会要求建立WebGateway到IRIS的TLS连接,或者在Apache2部署自己的网页等等。后面的文章会一一介绍。 配置CSP.ini 上一篇文章中,我通过Webgateway管理页面定义了Webgateway到IRIS的连接,其实是定义了webgateway的配置文件CSP.ini。 无论WebServer是什么类型,IIS,Apache, Nginx, CSP.ini的都是一样的。在Linux中, CSP.ini位于/opt/webgateway/bin目录。 #新手 #部署 #InterSystems IRIS 0 0 0 8
文章 Hao Ma · 十月 28 阅读大约需 6 分钟 IRIS images的下载和简单的搭建测试环境 IRIS image下载 参考:下载Images的在线文档 在https://containers.intersystems.com网站上获得可以下载的InterSystems的各种docker镜像。如果只是安装Community版本, 不需要注册。如果是下载安装正式的版本,需要在网站注册,然后获得Login Token登陆。 #新手 #部署 #InterSystems IRIS 0 0 0 10
文章 Hao Ma · 十月 28 阅读大约需 1 分钟 安装IRIS docker container - 索引 我在3年前写过同样内容的文章。随着IRIS版本的更新,安装的细节有了些变化,而且,尤其是2024年以后的版本不再使用PWS(Private Web Server), 安装最新版本的IRIS通常同时要安装一个外部的Web服务器,Apache或者nginx。 另外, 大家对自动部署的需要越来越多,因此我也会在下面的内容里面包括自动部署,配置iris, 安装软件等等内容。希望给各位一个基本完整的介绍。 内容列表如下: 基础篇 IRIS images的下载和docker run apache-webgateway container到iris的连接 nginx-webgateway container到iris的连接 iris-main和在container外保存iris数据 配置iris的新方法:CPF merge ... 随时更新 #新手 #部署 #InterSystems IRIS 1 0 0 23
文章 姚 鑫 · 十月 27 阅读大约需 1 分钟 第三章 I O 输入输出简介 - Use 命令 第三章 I O 输入输出简介 - Use 命令 Use 命令 此命令使指定设备成为当前设备,并将特殊变量$IO设置为该设备。要使用主设备以外的设备,必须首先对其发出OPEN命令;否则,将收到错误。参数的含义与OPEN命令中的相同。 语法 USE device:(args):"mnespace" device 所需的设备名称、ID 号或别名。设备的最大长度为 256 个字符。 args 可选— 某些设备所需的附加信息。管道(进程间通信) 、文件和终端 I/O的可用参数不同。 mnespace 可选— IRIS 例程的名称,包含控制助记符的定义,当将 I/O 定向到该设备时,可以与WRITE /mnemonic 命令一起使用。 #InterSystems IRIS for Health 1 0 0 8
文章 姚 鑫 · 十月 26 阅读大约需 2 分钟 第二章 I O 输入输出简介 - Open 命令 第二章 I O 输入输出简介 - Open 命令 Open 命令 OPEN建立指定设备的所有权并打开指定设备的 I/O 通道。此所有权将持续存在,直到发出CLOSE命令、进程终止或某些物理操作关闭设备。对于物理 I/O 设备或进程间通信(例如 TCP 连接),此所有权会阻止所有其他进程访问该设备。对于逻辑 I/O 设备(例如顺序文件),此所有权可能允许其他进程以某种形式共享访问该文件。打开同一顺序文件的多个进程的处理高度依赖于平台。强烈建议使用LOCK命令来限制对顺序文件的访问。 语法 OPEN device{:{(parameters)}{:{timeout}{:"mnespace"}}} device 所需的设备名称、ID 号或助记符。设备的最大长度为 256 个字符。 #InterSystems IRIS for Health 1 0 0 9
文章 姚 鑫 · 十月 25 阅读大约需 2 分钟 第一章 I O 输入 输出简介 第一章 I/O 输入/输出简介 本页概括地描述了如何在 IRIS 数据平台应用程序中以及在 IRIS 提示符下使用 I/O 设备。 介绍 IRIS 数据平台为多种不同类型的逻辑和物理设备提供支持。支持的逻辑设备包括: - 主要装置 - 文件 - 管道 - TCP连接 - 作业间通信 (IJC) 设备用于在 IRIS 进程之间进行通信 - 假脱机程序 支持的物理设备包括 终端 打印机 I/O 命令概述 I/O 命令允许拥有、使用、读取、写入和关闭设备。要将 I/O 操作定向到设备,请首先发出以下命令: #InterSystems IRIS for Health 1 0 0 10
文章 Michael Lei · 十月 24 阅读大约需 1 分钟 InterSystems FAQ 常见问题系列--命名空间和数据库的最大数量 InterSystems FAQ 一个实例上的最大命名空间数量是 2047. 但是,要使用这么大量的命名空间,你需要相应地配置好内存。 一个实例里可以创建的数据库的最大数量(包括远程数据库) 15998. 根据授权的类型,可能会有所限制。具体细节请参考以下文档。Database Configuration [IRIS]Database Configuration #数据库 #系统管理 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 19
文章 姚 鑫 · 十月 24 阅读大约需 1 分钟 第五十五章 安全元素的详细信息 - ReferenceList 详情 第五十五章 安全元素的详细信息 - 详情 本节讨论在消息头中用作 <Security>子元素的 <ReferenceList> 元素。当以这种方式使用 <ReferenceList> 时,可以在签名之前执行加密。以下显示了此元素的一个示例: #InterSystems IRIS for Health 1 0 0 12
文章 姚 鑫 · 十月 23 阅读大约需 1 分钟 第五十四章 安全元素的详细信息 - DerivedKeyToken 详情 第五十四章 安全元素的详细信息 - 详情 <DerivedKeyToken> 的目的是携带发送者和接收者可以独立使用的信息来生成相同的对称密钥。这些方可以使用该对称密钥对 SOAP 消息的相关部分进行加密、解密、签名和签名验证。 以下显示了部分示例: #InterSystems IRIS for Health 0 0 0 9
文章 Cryze Zhang · 十月 23 阅读大约需 1 分钟 file2Xml 一个将文件转换成Studio导出的xml格式的工具 file2Xml 一个将文件转换成Studio导出的xml格式的工具 #工具 #Caché #Ensemble #InterSystems IRIS 1 0 0 3
问题 root root · 十月 9 如何启用SSL协议,并能够在使用DBeaver连接时捕获SSL协议交互流量? 如何启用SSL协议,并能够在使用DBeaver连接时捕获SSL协议交互流量? 如果方便的话,能否提供一个假数据的ssl包? 非常感谢 #SSL #Caché 0 2 1 18
文章 姚 鑫 · 十月 22 阅读大约需 1 分钟 第五十三章 安全元素的详细信息 - Signature 详情 第五十三章 安全元素的详细信息 - 详情 <Signature>的目的是携带可由消息接收者验证的数字签名。可以使用数字签名来检测消息更改,或者只是验证消息的某个部分是否确实由列出的实体生成。与传统的手写签名一样,数字签名是对文档的附加,只能由文档的创建者创建,并且不易伪造。 以下显示了部分示例: #InterSystems IRIS for Health 0 0 0 9
文章 姚 鑫 · 十月 21 阅读大约需 1 分钟 第五十二章 安全元素的详细信息 - EncryptedData 详情 第五十二章 安全元素的详细信息 - 详情 <EncryptedData> 的作用是携带加密数据,部分示例如下: #InterSystems IRIS for Health 1 0 0 10
文章 姚 鑫 · 十月 20 阅读大约需 2 分钟 第五十一章 安全元素的详细信息 - EncryptedKey 详情 第五十一章 安全元素的详细信息 - 详情 详情 该元素的各部分如下: <EncryptionMethod> 表示用于加密对称密钥的算法。 在 IRIS 中,可以指定密钥传输算法(由 <EncryptionMethod> 的 Algorithm 属性显示)。请参阅指定密钥传输算法。 #InterSystems IRIS for Health 0 0 0 9
文章 姚 鑫 · 十月 17 阅读大约需 2 分钟 第五十章 安全元素的详细信息 第五十章 安全元素的详细信息 本主题讨论 SOAP 消息中较常见的安全元素,特别是 IRIS Web 服务和客户端可以发送的变体。此信息旨在帮助那些不经常使用 SOAP 的人重温记忆。此处的详细信息也可能有助于故障排除。 <BinarySecurityToken> <BinarySecurityToken> 的目的是携带消息中其他元素使用的安全凭证,供消息接收者使用。安全凭证以序列化、编码的形式携带。以下显示了部分示例: #InterSystems IRIS for Health 0 0 0 12
文章 姚 鑫 · 十月 16 阅读大约需 1 分钟 第四十九章 解决安全问题 - 可能出现的错误 第四十九章 解决安全问题 - 可能出现的错误 可能出现的错误 本节讨论 IRIS Web 服务和 Web 客户端中可能出现的与安全相关的错误: 如果刚刚生成了 IRIS Web 服务或客户端,则可能尚未配置为识别 WS-Security 标头。在这种情况下,当您尝试执行 Web 方法时,会收到如下一般错误: <ZSOAP>zInvokeClient+269^%SOAP.WebClient.1 将以下内容添加到Web服务或客户端并重新编译: Parameter SECURITYIN="REQUIRE"; 这种一般错误也可能是由于错误地调用 Web 方法(例如,在 Web 方法没有返回值时引用返回值)造成的。 如果使用 WS-Policy,则此项不适用。 #InterSystems IRIS for Health 1 0 0 7
文章 姚 鑫 · 十月 15 阅读大约需 2 分钟 第四十八章 解决安全问题 第四十八章 解决安全问题 本主题提供信息来帮助识别 IRIS 中 SOAP 安全问题的原因。 有关与安全无关的问题的信息,请参阅 IRIS 中的 SOAP 问题故障排除。 故障排除所需的信息 要解决 SOAP 问题,通常需要以下信息: #InterSystems IRIS for Health 1 0 0 10
文章 姚 鑫 · 十月 14 阅读大约需 2 分钟 第四十七章 创建和添加 SAML 令牌 - SubjectConfirmation与 EncryptedKey 第四十七章 创建和添加 SAML 令牌 - 与 <SubjectConfirmation>与 <EncryptedKey> 要添加带有 <SubjectConfirmationData>(其中包含 <EncryptedKey> 元素)的 <SubjectConfirmation>,请执行以下操作: 按照以编程方式检索凭证集中所述,创建 %SYS.X509Credentials 的实例。 或者使用与签署断言时使用的相同凭证集。 #InterSystems IRIS for Health 0 0 0 12
公告 Claire Zheng · 十月 13 加入 InterSystems 步行挑战! 开发者社区的成员,大家好! 我们都喜欢编码,但我们应该时不时地放下代码去锻炼身体! InterSystems 步行挑战将帮助您恢复精力、增强体质。 历史悠久的 Salt Road 在几个世纪以前连接起欧洲,沿着这条传奇的贸易路线,踏上从吕贝克到吕讷堡的虚拟赛道。 赢取跑步机、智能手表和奖牌等精美礼品。 👟🚶🧑🦼系紧鞋带,放下工作,更好地编码! 🔋💻💪 📅日期:9 月 23 日 - 10 月 20 日(可能有变动) 想加入吗? 详细信息如下。 #活动 #其他 1 0 0 36
文章 姚 鑫 · 十月 13 阅读大约需 2 分钟 第四十六章 创建和添加 SAML 令牌 - SubjectConfirmation 使用方法 Holder-of-key 第四十六章 创建和添加 SAML 令牌 - 使用方法 Holder-of-key 添加<Subject>元素 要将 <Subject> 元素添加到 %SAML.Assertion 实例,执行以下操作: 1. 创建 %SAML.Subject 的新实例。 2. 根据需要设置主题的属性。 3. 将断言对象的 Subject 属性设置为等于此实例。 添加 <SubjectConfirmation> 元素 要将 <SubjectConfirmation> 元素添加到的 %SAML.Assertion 实例,请使用以下某个小节中的步骤。 #InterSystems IRIS for Health 0 0 0 7
文章 姚 鑫 · 十月 11 阅读大约需 2 分钟 第四十五章 创建和添加 SAML 令牌 - 变体:不使用 BinarySecurityToken 第四十五章 创建和添加 SAML 令牌 - 变体:不使用 变体:不使用 <BinarySecurityToken> <BinarySecurityToken> 包含序列化、base-64 编码格式的证书。可以忽略此令牌,而改用标识证书的信息;接收方使用此信息从相应位置检索证书。为此,请使用上述步骤,并进行以下更改: #InterSystems IRIS for Health 0 0 0 9