搜索​​​​

清除过滤器
文章
Claire Zheng · 二月 21, 2023

【动画视频】列存储:让查询和统计,随心所愿

InterSystems IRIS数据平台支持列存储,提供更优存储方案,保障系统稳定运行。
文章
Claire Zheng · 二月 23, 2022

【极客聊吧】从商保结算谈起,聊聊医疗IT行业的数据交换难题

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

[视频]使用 Business Process Designer(业务流程设计器)

各位开发者, 新的视频已经发布在BiliBili平台: ⏯ 在InterSystmes IRIS 使用 Business Process Designer(业务流程设计器) 请观看如何构建一个新的业务流程,在InterSystems Production 中提供业务逻辑和路由功能。了解如何使用管理门户中的业务流程设计器构建一个BPL业务流程。此外,还可以尝试使用InterSystems集成开发环境自己构建一个。 祝您观看愉快 ! B站上能看到字幕
问题
smith tob · 五月 12, 2023

使用sql访问数据库时,如何对sql语句进行加密?

使用sql访问数据库时,如何对sql语句进行加密? 您是想在 插入表数据的时候将数据加密吗? 比如 在执行insert的 时候把一个字段 用md5 hash 起来存储的,这个现成的sql function 是没有的。SQL Functions | InterSystems SQL Reference | InterSystems IRIS for Health 2023.1这个是我们目前最新版本支持的所有 sql function 如果你是想把sql语句作为整体加密,然后在cache执行的时候解密出来,这样操作的话,加密基本都行吧
文章
Claire Zheng · 三月 11, 2021

【中文字幕】经济学人访谈录:凝望医疗健康数字化的未来

新冠肺炎疫情大流行史无前例地推动着医疗数字化发展,这一进程不仅影响了医疗服务的提供方式,更带来深刻的行业服务模式变革。经济学人邀请了来自数据技术提供商InterSystems、初级医疗服务提供商Babylon、咨询服务提供商埃森哲、数字化医疗解决方案提供商Kaiser Permanente的专家,从各自的领域和观察出发解读多个热点话题。InterSystems医疗行业解决方案副总裁Don Woodlock参加了此次研讨,分享了InterSystems在数据管理、医疗模式转变、数字化工具面临的优势与挑战、患者对数字化手段的接纳程度等方面的洞察。 能不能搞几个观点摘要? 欢迎课代表留言 请 @Jun.Qian @Li.Yan 同学抽空看看视频,给我们分享一下,谢谢! 好的
公告
Michael Lei · 八月 7, 2023

开发者圆桌在线论坛:医疗行业中的生成式人工智能用例

大家好, 与我们一起参加 8 月 31 日上午 10 点(美国东部时间)在线开发者圆桌会议,讨论医疗保健中的生成式 AI 使用案例。学习医疗保健领域的用例+参考架构,并观看关于大语言模型的Demo演示。我们将像往常一样有时间进行问答和公开讨论。 通过开发者社区Global Masters报名。 演讲者: @Nicholai.Mitchko ,InterSystems 解决方案合作伙伴销售工程师经理 背景: Nicholai 在 InterSystems 管理着一支由 10 名解决方案工程师组成的团队,帮助医疗保健公司大规模设计、开发和交付解决方案。在业余时间,Nicholai 致力于大型语言模型的研究,包括开发自己的模型,这些模型出现在Huggingface OpenLLM 排行榜上。 还不是Global Master会员?使用您的 InterSystems SSO (开发者社区帐号)登录。
文章
Louis Lu · 十一月 2, 2021

IRIS 2021 技术文档 First Look 35 -- 使用 Production 进行大文件传输(Managed File Transfer, MFT)

本文介绍了 InterSystems IRIS®数据平台中的大文件传输(Managed File Transfer,MFT)集成选项,它使您能够轻松地将第三方文件传输服务直接集成到 InterSystems IRIS 产品中。本文还包括在新产品中使用 MFT 的逐步指导。 要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。 在 InterSystems IRIS 中使用 MFT 的好处 许多拥有 InterSystems IRIS 产品的网站也使用文件传输服务,如 Box、Dropbox 或 Accellion kiteworks,以实现安全、符合 HIPAA 的文件共享。然而,这种服务的使用取决于终端用户是否愿意使用它。在没有强制执行的情况下,他们可能很容易忘记这样做,或者有时干脆选择将文件作为附件发送。通过将 MFT 服务集成到您的产品中,您可以确保文件总是被安全地发送。另一个好处是,由于产品可以根据需要自动地将敏感文件路由到正确的位置,并遵循适当的工作流程,因此,错位或错误指向文件的风险更小。 考虑以下用例:一家职业介绍所将潜在员工的常规体检或药物测试外包给门诊医疗测试机构。测试机构和职业介绍所都有责任确保私人信息的安全数据传输,并在彼此之间进行传输。然而,虽然医疗机构可能已经有了符合 HIPAA 的程序,并可能已经使用了安全文件传输服务,但职业介绍所可能没有适当的基础设施来处理所需的安全级别。在任何一端设置启用 MFT 的 InterSystems IRIS 产品,均可简化所有此类通信的标准化文件传输服务的使用。 对于需要向内部和外部位置(location)提交相同文件的企业来说,或者当单个部门接收到需要根据发件人进行不同处理的文件时,MFT 也非常有用。例如,假设一家汽车经销商需要将签署的客户财务文件传送到他们的总部以及金融机构。另外,假设销售部门与租赁部门有不同的流程(即使这两个部门必须向同一家银行提交相同类型的信息)。这些差异可能会导致混乱和错位或发送错误的文书工作。此外,经销商不能也不应该将客户签署的财务或其他个人数据作为常规电子邮件的附件发送。使用集成了 MFT 的 InterSystems IRIS 产品简化了提交和路由过程,以便将正确的文档送到正确的部门进行适当的处理,从而减少了文档丢失的机会。 它是如何工作的? InterSystems IRIS 提供了业务主机,您可以将其添加到产品和配置中,而不需要编程。这些业务主机支持 Box、DropBox 和 Accellion kiteworks 服务。一旦您添加了这些业务主机并配置了它们,产品就可以轻松地从终端用户帐户检索文件,或将文件放入这些帐户,或两者都是。 InterSystems IRIS 使用开放授权框架(Open Authorization Framework)2.0 版本(称为 OAuth 2.0)授权对第三方传输服务的访问。当您配置 InterSystems IRIS 产品来使用传输服务时,您将该产品设置为传输服务帐户的授权用户。这允许产品从该帐户下的任何目录(例如分配给单个终端用户的目录)中提取文件并将文件放入其中。这些个人 终端用户的访问完全不受任何影响,他们可以继续像以前一样放置和检索文件。 尝试 MFT:创建启用 MFT 的产品 将 MFT 集成到 InterSystems IRIS 产品中只需要几个步骤:首先,创建并初始化与传输服务的连接,然后包括适当的业务主机,使产品能够直接与传输服务对话。您可以按照本节中的步骤创建一个在您的 Accellion kiteworks 帐户和您的本地桌面系统之间复制文件的产品,就可以看到它是多么简单。如果您更习惯或已经可以访问 Box 或 DropBox,只需在使用 kiteworks 的地方为您的服务替换这些项目。 重要提示: 为了简单起见,使用这些说明创建的产品使用默认设置。在创建实时产品时,InterSystems 强烈建议您根据您的环境来调整设置,特别是那些与安全和您自己特定的 InterSystems IRIS 实例有关的设置。例如,下面提到的 Redirect URL(重定向 URL) 使用 http 而不是 https,这在产品中不是一个好的做法。 想试试 InterSystems IRIS 互操作性功能的在线视频演示吗?请查看 Interoperability QuickStart(互操作性快速入门)! 用前须知 要使用这个程序,您需要一个正在运行的 InterSystems IRIS 实例。您对 InterSystems IRIS 的选择包括多种类型的已授权的和免费的评估实例;该实例不需要在您工作的系统中(尽管它们必须相互具有网络访问权限)。有关如何部署每种类型的实例的信息(如果您还没有可使用的实例),请参见 InterSystems IRIS Basics: Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的 Deploying InterSystems IRIS(部署 InterSystems IRIS)。 您还需要对 Accellion kiteworks 上的帐户进行管理访问;您可以在 https://www.accellion.com/kiteworks/ 上创建一个免费试用帐户。 创建 TLS 配置 使用以下程序创建一个 TLS 配置: 使用 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中为您的实例描述的 URL,在浏览器中打开您的实例的管理门户(Management Portal)。 导航到 TLS 配置页面(System Administration(系统管理) > Security(安全) > SSL/TLS Configurations(SSL/TLS 配置))。 点击 Create New Configuration(创建新的配置) ,并为 Configuration Name(配置名称) 字段输入 MFTTLSConfig。让所有其他字段保持原样,并点击Save(保存)来保存这个新的配置。 在传输服务中注册您的 InterSystems IRIS 实例 接下来,您需要在传输服务本身上为这个 MFT 产品创建一个应用程序(条目)。在一个单独的浏览器窗口或标签中,进入您的 Accellion kiteworks 帐户的管理页面并执行这些步骤。 在管理门户(Management Portal)中,进入 Customs Applications(自定义应用程序)页面,该页面在 Application(应用程序) > Client Management(客户端管理)(适用于 kw2017.02.04 版本)下。 添加一个新条目,并为应用程序指定一个名称,如 ISCFileTransferApp。 请确保 Authorization Code(授权代码)和 Enable Refresh Token(启用刷新令牌)被选中。 在 Redirect URI(重定向 URI) 字段中,输入 URL http://server:port/csp/sys/oauth2/OAuth2.Response.cls,其中服务(server) 和端口(port) 是您的实例的主机标识符和 web 服务器端口。例如,对于一个云实例,URL可能是 http://35.192.42.98:52773/csp/sys/oauth2/OAuth2.Response.cls 本地安装的实例可以在服务(server) 字段中使用 localhost。 这是 kiteworks 用来联系 InterSystems IRIS 实例的 URL。 点击 Add Application(添加应用程序)并记录显示的安全令牌(Client Application ID(客户端应用程序 ID) 和 Client Secret Key(客户端密钥))。稍后在 InterSystems IRIS 上创建 TLS 连接时将使用此信息。 重要提示: 此信息只有在这个时候对您可用,所以您必须立即记录它。如果您在 InterSystems IRIS 产品上创建 TLS 连接时没有此信息,那么您必须再次生成此信息并使用新的值来创建 TLS 连接。 在传输服务中添加目录 现在导航到主 kiteworks(非管理)Folders(文件夹)页面,其中显示您的文件和目录,并创建两个新的顶级目录,一个名为 FilesReceived,用于接收文件,另一个名为 FilesToSend,用于发送文件。 添加可访问 InterSystems IRIS 的目录 现在您应该在实例的主机上创建两个目录,InterSystems IRIS 将在其中访问文件。执行此操作的方法取决于您所使用的实例类型 ,如下所示: 对于由 ICM 部署的实例,可以使用带有 -machine 和 -interactive 选项的 icm exec 命令,在运行实例的容器内打开 bash shell,例如: icm exec -command bash -machine MYIRIS-AM-TEST-0004 -interactive 然后您可以在容器文件系统上创建目录。 对于任何容器化的实例, 无论是授权版还是社区版(Community Edition),使用命令 docker exec -it container_name bash 在容器中打开 bash shell (社区版[Community Edition]容器的名称是 try-iris)。然后在容器文件系统上创建目录。 对于 InterSystems 学习实验室(Learning Labs),使用集成 IDE 中的命令行终端,在 Shared 文件夹中创建新文件夹;您可以在 /home/project/shared 下的管理门户(Management Portal)中浏览到这些。 对于已安装的实例,在本地文件系统上创建目录。 这个文本假设在 Windows 系统上安装的实例有以下目录路径;替换您创建的实际目录的路径。 C:\InterSystems\ToRemote C:\InterSystems\FromRemote 创建 MFT 连接 接下来,您需要通过创建 MFT 连接对象在 Intersystems IRIS 上注册传输服务。要做到这一点,请返回管理门户(Management Portal),进入 Managed File Transfer Connections(托管文件传输连接)页面(System Administration[系统管理] > Security(安全)> Managed File Transfer Connections[托管文件传输连接])。点击 Create Connection(创建连接)。请以以下方式指定字段的值,然后点击 Save(保存): Field Name(字段名称) Value(值) Connection Name(连接名称) KiteSecured File management service(文件管理服务) Kiteworks SSL/TLS configuration(SSL/TLS 配置) MFTTLSConfig Email address(电子邮件地址) 您的 Kiteworks 管理员的电子邮件地址,例如 MFTadmin@yourcompany.com Base URL(基准 URL) 您企业的 kiteworks 的根 URL,例如 https://yourcompany.kiteworks.com/ OAuth 2.0 application name(OAuth 2.0 应用程序名称) ISCFileTransferApp OAuth 2.0 client id(OAuth 2.0 客户端 id) 之前从 kiteworks 检索到的 Client Application ID(客户端应用程序 ID) OAuth 2.0 client secret(OAuth 2.0 客户端机密) 之前从 kiteworks 检索到的 Client Secret Key(客户端密钥) OAuth 2.0 redirect URL(OAuth 2.0 重定向 URL) 留空。一旦您填写了 Host name(主机名) 和 Port(端口),该字段将自动使用前面提供的 Redirect URI(重定向 URI) 的值填充。 Use TLS/SSL(使用 TLS/SSL) (清除复选框) Host name(主机名) 您的实例的主机标识符。 Port(端口) 您的实例的 web 服务器端口。 Prefix(前缀) (留空) 获取访问令牌 Managed File Transfer Connections(托管文件传输连接)页面会再次显示所有可用的连接,包括您刚刚创建的新连接。如果该连接的状态是 Not Authorized,那么: 点击 Get Access Token(获取访问令牌) 以显示来自 kiteworks 的 Oauth 同意页面,该页面识别了您之前注册的应用程序的名称(ISCFileTransferApp)。 点击 Grant Access(授予访问权限)来授权访问。这将重新显示 Connections(连接) 列表,新的 MFT 连接的状态现在被列为 Authorized。 创建命名空间 为了创建产品,您必须有一个启用互操作性的命名空间。如果您已经创建了一个启用互操作性的命名空间,您可以把它用于此产品。要创建一个新的启用互操作性的命名空间,请使用以下程序。(您首次安装 InterSystems IRIS 时创建的命名空间没有启用互操作性。) 在管理门户(Management Portal)主页上,选择 System Administration(系统管理) > Configuration(配置) > System Configuration(系统配置) >Namespaces(命名空间),进入 Namespaces(命名空间)页面。 在 Namespaces(命名空间)页面,选择 Create New Namespace(创建新的命名空间)。这将显示 New Namespace(新的命名空间)页面;按照 System Administration Guide(《系统管理指南》)的“Configuring InterSystems IRIS(《配置 InterSystems IRIS》)”章节中 Create/Modify a Namespace(创建/修改命名空间)中的使用说明,确保选中了 Enable namespace for interoperability productions(启用互操作性产品的命名空间)复选框。 选择靠近页面顶部的 Save(保存),然后在生成的日志末尾选择 Close(关闭)。 创建产品 接下来,您需要切换到新的命名空间来创建新的产品本身。 进入 InterSystems IRIS 管理门户(Management Portal)主页,在顶部横幅的中间部分找到命名空间标识符。点击 Switch(切换)链接以调出 Namespace Chooser(命名空间选择器)。 选择您刚刚创建的命名空间(例如,ForMFT),然后点击 OK(确定)。 现在导航到 Production(产品) 页面(Interoperability(互操作性) > Configure(配置) > Production(产品))。 点击 New(新建)以调出 Production Wizard(产品向导)。 对于 Package(包),从下拉菜单中选择 INFORMATION(信息)。 输入 Production Name(产品名称),如 NewMFTProduction。 将 Production Type(产品类型)保留为 Generic(通用型),然后点击 OK(確定)来创建产品。 有关产品的更多信息,请参见 Introducing Interoperability Productions guide(《介绍互操作性产品指南》)的 "Introduction to InterSystems IRIS Interoperability(《InterSystems IRIS 互操作性介绍》)"一章中的 "Introduction to Productions(产品介绍)"。 创建业务操作和业务服务 留在新创建的产品中,并添加文件传输所需的四种业务操作和服务(每个方向一个业务操作和一个业务服务): 业务主机名 主机类型 用于 SecureToRemoteOffice 业务操作 发送文件到传输服务 GatherLocalFiles 业务服务 发送文件到传输服务 StoreFilesLocally 业务操作 从传输服务中接收文件 ReceiveFromRemoteOffice 业务服务 从传输服务中接收文件 创建和配置:SecureToRemoteOffice SecureToRemoteOffice 是将文件发送到传输服务的业务操作(Operation)。为了将它添加到产品中: 点击 Operations(操作)旁边的加号。 选择 Operation Class(操作类) EnsLib.MFT.Operation.Passthrough。 输入 Operation Name(操作名称) SecureToRemoteOffice。 请确保未选中 Enable Now(立即启用),并保留其他字段。 点击 OK(确定)来添加该操作。 选择该操作,然后从右侧的面板进入 Settings(设置)标签。 在 Basic Settings(基础设置)部分,仅配置以下内容: Field Name(字段名称) Value(值) 说明 Enable(启用) (在方框内打勾) 启用该业务主机 MFT Connection Name(MFT 连接名称) KiteSecured 之前创建的 TLS 配置的名称 Default MFT Folder(默认的 MFT 文件夹) /FilesReceived/ 传输服务的顶级接收目录的名称 Default Filename Specification(默认的文件名规范) %f 用于创建接收文件名称的模板 将所有其他字段保留为默认设置,并点击 Apply(应用)来保存您的更改。 创建和配置:GatherLocalFiles GatherLocalFiles 是用于收集从 InterSystems IRIS 发送的文件的业务服务(Service)。为了将它添加到产品中: 点击 Services(服务)旁边的加号。 选择 Service Class(服务类) EnsLib.File.PassthroughService。 输入 Service Name(服务名称) GatherLocalFiles。 请确保未选中 Enable Now(立即启用),并保留其他字段。 点击 OK(确定) 来添加该服务, 选择该服务,然后从右侧的面板进入 Settings(设置)标签。 在 Basic Settings(基础设置)部分,仅配置以下内容: Field Name(字段名称) Value(值) 说明 Enable(启用) (在方框内打勾) 启用该业务主机 File Path(文件路径) C:\InterSystems\ToRemote\ 您的本地系统中包含要发送的文件的目录(如果不同,请用正确的路径代替)。 File Spec(文件规范) * 要发送的文件名的正则表达式 Target Config Names(目标配置名称) SecureToRemoteOffice 从此业务服务接受输入的业务主机 将所有其他字段保留为默认设置,并点击 Apply(应用)来保存您的更改。 创建和配置:StoreFilesLocally StoreFilesLocally 是在 InterSystems IRIS 中存储接收到的文件的业务操作(Operation)。为了将它添加到产品中: 点击 Operations(操作)旁边的加号。 选择 Operation Class(操作类) EnsLib.File.PassthroughOperation。 输入 Operation Name(操作名称) StoreFilesLocally。 请确保未选中 Enable Now(立即启用),并保留其他字段。 点击 OK(确定)来添加该操作。 选择该操作,然后从右侧的面板进入 Settings(设置)标签。 在 Basic Settings(基础设置)部分,仅配置以下内容: Field Name(字段名称) Value(值) 说明 Enable(启用) (在方框内打勾) 启用该业务主机 File Path(文件路径) C:\InterSystems\FromRemote\ 您的本地系统中存储所接收的文件的目录(如果不同,请用正确的路径代替)。 File Name(文件名称) %f_%Q%!+(_a) 要发送的文件名的语法。为了保证唯一性,InterSystems 建议在文件名中加入日期和时间戳。 将所有其他字段保留为默认设置,并点击 Apply(应用)来保存您的更改。 创建和配置:ReceiveFromRemoteOffice ReceiveFromRemoteOffice 是用于从您的传输服务接收文件的业务服务(Service)。为了将它添加到产品中: 点击 Services(服务)旁边的加号。 选择 Service Class(服务类)EnsLib.MFT.Service.Passthrough。 输入 Service Name(服务名称) ReceiveFromRemoteOffice。 请确保未选中 Enable Now(立即启用),并保留其他字段。 点击 OK(确定)来添加该服务。 选择该服务,然后从右侧的面板进入 Settings(设置)标签。 在 Basic Settings(基础设置)部分,仅配置以下内容: Field Name(字段名称) Value(值) 说明 Enable(启用) (在方框内打勾) 启用该业务主机 MFT Connection Name(MFT 连接名称) KiteSecured 之前创建的 TLS 配置的名称 MFT Source Folders(MFT 源文件夹) /FilesToSend 传输服务的顶级发送目录的名称 Files to Retrieve(检索的文件) (留空) 从远程位置收集的文件名称(类型)的模板 Target Config Names(目标配置名称) StoreFilesLocally 从此业务服务接受输入的业务主机 将所有其他字段保留为默认设置,并点击 Apply(应用)来保存您的更改。 测试产品 现在,您已经创建了产品,是时候尝试一下了!只需将文件拖放到您的本地目录和第三方传输服务的指定文件夹中,就可以看到它们出现在另一个位置。 通过点击顶部的 Start(启动) 按钮来启动产品,然后在 Start Production(启动产品)对话框中点击 OK(确定)。 要验证发送到 kiteworks 的文件: 使用操作系统的目录资源管理器,导航到添加 GatherLocalFiles 业务服务时,您在 FilePath(文件路径)字段中指定的目录(C:\InterSystems\ToRemote\ 或您创建的其他目录)。 在该位置放置一个文件。 进入 kiteworks 并导航到 /FilesToRemote/ 文件夹,(添加 SecureToRemoteOffice 业务操作时,您在 Default MFT Folder(默认的 MFT 文件夹)字段中指定的目录)。 刷新文件夹视图,直到新文件出现。这通常是在几秒钟内,甚至更早。 要验证从 kiteworks 接收的文件: 进入 kiteworks 并导航到 /FilesToCentral 文件夹(添加 ReceiveFromRemoteOffice 业务服务时,您在 DefaultMFTFolder(默认的 MFT 文件夹)字段中指定的目录)。 在该位置放置一个文件。 使用您的 OS 目录资源管理器,导航到添加 StoreFilesLocally 业务操作时,您在 FilePath(文件路径) 字段中指定的目录 (C:\InterSystems\FromRemote\ 或您创建的其他目录)。 刷新目录视图,直到新文件出现。这通常是在几秒钟内,甚至更早。 祝贺您,您刚刚成功地使用 MFT 创建了一个工作的production! 了解有关 MFT 的更多信息 更多信息,请参见: Video Introduction to Managed File Transfer(《托管文件传输视频简介》) Enabling Productions to Use Managed File Transfer Services(《启用Production使用大文件传输》)
文章
姚 鑫 · 七月 13, 2022

第四章 使用嵌入式 Python(一)

# 第四章 使用嵌入式 Python (一) 嵌入式 `Python` 允许使用 `Python` 作为编程 `IRIS` 应用程序的本机选项。 # 预备知识 使用嵌入式 `Python` 所需的 `Python` 版本取决于运行的平台。 在 M`icrosoft Windows` 上,`IRIS` 安装工具包安装正确版本的 `Python`(当前为 `3.9.5`),仅用于嵌入式 `Python`。如果在开发机器上并希望将 `Python` 用于一般用途,建议从 `https://www.python.org/downloads/` 下载并安装相同的版本。 许多基于 UNIX 的操作系统都安装了 `Python`。如果需要安装,请使用包管理器为操作系统推荐的版本,例如: - `macOS`:使用 `Homebrew` 安装 `Python 3.9` `(https://formulae.brew.sh/formula/python@3.9)` - `Ubuntu`: `apt-get install python3` - `Red Hat Enterprise Linux or Oracle Linux: yum install python3` - `SUSE`: `zypper install python3` 如果收到“无法加载 `python`”的错误,这意味着没有安装 `Python`,或者系统上安装了意外版本的 `Python`。使用上述方法之一安装或重新安装。 在基于 `UNIX` 的系统上,可能希望使用 `pip3` 命令安装 `Python` 包。如果尚未安装 `pip3`,请使用系统的包管理器安装包 `python3-pip`。 要防止在运行 `Embedded Python` 时出现 `IRIS_ACCESSDENIED` 错误,请启用 `%Service_Callin`。在管理门户中,` System Administration > Security > Services`,选择 `%Service_CallIn`,然后选中启用服务框。 # 运行嵌入式 Python 本节详细介绍了运行 `Embedded Python` 的几种方法: ## 从Python Shell 可以从终端会话或命令行启动 `Python shell`。 ### 从终端启动 Python Shell 通过调用 `%SYS.Python` 类的 `Shell()` 方法,从 终端会话启动 `Python shell`。这将以交互模式启动 `Python` 解释器。终端会话中的用户和命名空间被传递给 `Python shell`。 通过键入命令 `quit()` 退出 `Python shell`。 以下示例在终端会话中从 `USER` 命名空间启动 `Python shell`。它打印斐波那契数列中的前几个数字,然后使用 `IRIS SYSTEM.OBJ.ShowClasses()` 方法打印当前命名空间中的类列表。 ```java USER>do ##class(%SYS.Python).Shell() Python 3.9.5 (default, Jul 6 2021, 13:03:56) [MSC v.1927 64 bit (AMD64)] on win32 Type quit() or Ctrl-D to exit this shell. >>> a, b = 0, 1 >>> while a < 10: ... print(a, end=' ') ... a, b = b, a+b ... 0 1 1 2 3 5 8 >>> >>> status = iris.cls('%SYSTEM.OBJ').ShowClasses() User.Company User.Person >>> print(status) 1 >>> quit() USER> ``` 方法 `%SYSTEM.OBJ.ShowClasses()` 返回一个 `IRIS %Status` 值。在这种情况下,`1` 表示未检测到错误。 注意:使用 `%SYS.Python` 类的 `Shell()` 方法运行 `Python shell` 时,不需要显式导入 `iris` 模块。继续使用该模块。 ### 从命令行启动 `Python Shell` 使用 `irispython` 命令从命令行启动 `Python shell`。这与从终端启动 `shell` 的工作方式大致相同,但必须传入 `IRIS` 用户名、密码和命名空间。 以下示例从 `Windows` 命令行启动 `Python shell`: ```java C:\InterSystems\IRIS\bin>set IRISUSERNAME = C:\InterSystems\IRIS\bin>set IRISPASSWORD = C:\InterSystems\IRIS\bin>set IRISNAMESPACE = USER C:\InterSystems\IRIS\bin>irispython Python 3.9.5 (default, Jul 6 2021, 13:03:56) [MSC v.1927 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> ``` 在基于 `UNIX` 的系统上,使用 `export` 而不是 `set`。 ```java /InterSystems/IRIS/bin$ export IRISUSERNAME= /InterSystems/IRIS/bin$ export IRISPASSWORD= /InterSystems/IRIS/bin$ export IRISNAMESPACE=USER /InterSystems/IRIS/bin$ ./irispython Python 3.9.5 (default, Jul 22 2021, 23:12:58) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> ``` 注意:如果尝试运行 `import iris` 并看到一条消息说 `IRIS_ACCESSDENIED,请启用 %Service_Callin`。在管理门户中,转至 `System Administration > Security > Services`,选择 `%Service_CallIn`,然后选中启用服务框。
公告
Claire Zheng · 十月 23, 2022

Happy 1024!欢迎参加“首届技术征文大赛线上分享会”

开发者社区的同学们,1024快乐! 今晚19:30,我们将通过“InterSystems首届技术征文大赛线上分享会”发布获奖名单、进行征文作品分享&点评、探讨热门话题,同期还将举办多轮抽奖!欢迎参会,锁定#腾讯会议 会议主题:InterSystems首届技术征文大赛线上分享会会议时间:2022/10/24 19:30-21:00 (GMT+08:00) 中国标准时间 - 北京 点击链接入会,或添加至会议列表:https://meeting.tencent.com/dm/nVHWgZcY5NfZ #腾讯会议:372-615-324
公告
Michael Lei · 二月 28, 2023

医疗数据去标识化工具 抢先体验计划

我们很高兴地宣布我们的抢先体验计划的最新成员 - Health Data De-ID工具。 该工具将根据 *HIPAA 安全港* 对结构化临床数据进行去标识化处理,并允许在需要时进行重新标识。它使用 InterSystems 的 *SDA* 规范格式,该格式用于我们从一种格式到另一种格式的所有标准转换,例如 *HL7* 到 *CDA*、*HL7* 到 *FHIR* 等。虽然该工具使用 XSLT 转换来提高性能原因,它提供了辅助方法,您不需要成为 XSLT 专家的情况下更轻松地调整开箱即用的去标识化规则。 Health Data De-ID 适用于任何 InterSystems 产品,从 InterSystems IRIS for Health 到 Health Connect 再到 Unified Care Record。 您可以在此处加入抢先体验计划 - [如何注册抢先体验计划 (EAP)]?我们需要您的反馈,因此请在您完成整个过程或遇到任何问题时与我们联系。
公告
Hao Ma · 五月 7, 2021

开发者社区改版, April 2021

Hi Developers! 看看2021年4月的开发者社区新版本有些什么改善, 主要的新特性包括: This is a release of how did we improve the Developer Community in April 2021. The key features: 代码块里的‘拷贝到剪贴板’按钮 帖子翻译页 私信帖子作者 InterSystems官方版本和安全警示 以下是详细介绍。 代码块里的‘拷贝到剪贴板’按钮Copy-to-clipboard button to code blocks 现在你可以轻松的从任何帖子或者回复里拷贝代码 - 把鼠标放在代码块,然后按这个按钮: 帖子翻译页面 在DC网站你可以请求任意帖子的专业翻译,或者您自己翻译,到5中语言中的一种。为了做起来方便,我们改善了翻译页的界面。 1. 从下拉菜单选择您想要的目标语言: 2. 做出您的选择: 生成翻译 - 如果您希望翻译并发帖,按"Translate" 请求翻译 - 如果您希望我们提供专业翻译,按"Request" 私信帖子作者 现在你可以轻松的发送私信给帖子的作者。点击"Direct Message"按钮,私信会自动添加标题。 InterSystems官方版本和安全警示 InterSystems Official tag 会及时向您更新InterSystems官方声明。现在您可以过滤想要收到的声明,从 releases 和 alerts. 希望您喜欢我们的改版 欢迎提交new requests for improvements and bug reports. 请大家保持关注
文章
姚 鑫 · 二月 23, 2021

第四十五章 Caché 变量大全 $ZVERSION 变量

# 第四十五章 Caché 变量大全 $ZVERSION 变量 包含一个字符串,描述`do`命令后面的InterSystems IRIS.line的当前版本。 # 大纲 ```java $ZVERSION $ZV ``` # 描述 `$ZVERSION`包含一个字符串,该字符串显示当前运行的InterSystems IRIS®Data Platform实例的版本。 以下示例返回`$ZVERSION`字符串: ```java DHC-APP>WRITE $ZVERSION Cache for Windows (x86-64) 2016.2 (Build 736U) Fri Sep 30 2016 11:46:02 EDT ``` 此字符串包括InterSystems IRIS安装的类型(产品和平台,包括CPU类型)、版本号(2018.1)、该版本中的内部版本号(内部版本号中的`“U”`表示UNICODE以及创建此版本的InterSystems IRIS的日期和时间。`“EST”`是东部标准时间(美国东部的时区),`“EDT”`是东部夏令时 通过调用`GetVersion()`类方法可以返回相同的信息,如下所示: ```java DHC-APP>WRITE $SYSTEM.Version.GetVersion() Cache for Windows (x86-64) 2016.2 (Build 736U) Fri Sep 30 2016 11:46:02 EDT ``` 以通过调用其他`%SYSTEM.Version`方法来获取此版本字符串的组成部分,可以通过调用以下命令列出这些方法: ```java DHC-APP> DO $SYSTEM.Version.Help() 'Do $system.Version.Help(method)' 将显示单个方法的完整描述. 类的方法:%SYSTEM.Version FeatureBits(bit) Return all the feature codes stored in $zversion(0) Format(Format,zv) Formats the version info according to the following format types: GetBuildDate(zv) Returns the date the product was built in $HOROLOG format. GetBuildNumber(zv) Returns the build number for the product. GetBuildOS(zv) Returns the operating system for which the product was built. GetBuildTime(zv) Returns the time of day the product was built in $HOROLOG format. GetCompBuild(component) Returns the build number for the specified component. (Deprecated) ... ``` 通过转到InterSystems IRIS启动器并选择关于...,可以查看版本和内部版本号信息。 不能使用`SET`命令修改`$ZVERSION`特殊变量。尝试这样做会导致``错误。 # 示例 以下示例从版本字符串中提取创建日期,以计算InterSystems IRIS的当前版本有多早(以天为单位)。请注意,此示例特定于Windows平台: ```java /// d ##class(PHA.TEST.SpecialVariables).ZVERSION() ClassMethod ZVERSION() { SET createdate=$PIECE($ZVERSION," ",9,11) WRITE !,"Creation date: ",createdate WRITE !,"Current date: ",$ZDATE($HOROLOG,6) SET nowcount=$PIECE($HOROLOG,",") SET thencount=$ZDATEH(createdate,6) WRITE !,"This version is ",(nowcount-thencount)," days old" } ``` ``` DHC-APP>d ##class(PHA.TEST.SpecialVariables).ZVERSION() Creation date: Sep 30 2016 Current date: Feb 10 2021 This version is 1594 days old ``` 下面的示例通过调用类方法执行相同的操作: ```java /// d ##class(PHA.TEST.SpecialVariables).ZVERSION1() ClassMethod ZVERSION1() { SET createdate=$SYSTEM.Version.GetBuildDate() WRITE !,"Creation date: ",$ZDATE(createdate,6) WRITE !,"Current date: ",$ZDATE($HOROLOG,6) SET nowcount=$PIECE($HOROLOG,",") WRITE !,"This version is ",(nowcount-createdate)," days old" } ``` ```java DHC-APP>d ##class(PHA.TEST.SpecialVariables).ZVERSION1() Creation date: Sep 30 2016 Current date: Feb 10 2021 This version is 1594 days old ```
文章
姚 鑫 · 九月 1, 2022

第十九章 维护本地数据库(四)

# 第十九章 维护本地数据库(四) # 压缩数据库中的全局变量 管理数据库空间的另一种方法是使用 `^DATABASE` 例程压缩数据库中的全局变量。压缩全局变量将全局数据合并到更少的块中,从而增加数据库中的可用空间量。 在创建和更新全局变量时 `IRIS` 通常以将全局块填充到大约 `70%` 容量的方式分配数据。 (完全按整理顺序增长的全局可能会分配到接近 `90%`。)通常,允许 `IRIS` 自动管理全局块密度就足够了。然而,一些不连续的数据删除模式可能会显着降低平均全局块密度。 **注意:要逐个全局地查看数据库中全局块的当前密度,可以运行完整性检查、并检查每个全局的数据级别输出。** 压缩全局变量时,指定所需的全局块密度(默认为 `90%`),操作会尝试通过合并数据来尽可能接近此值——例如,将分布在三个块中的全局数据重新排列为两个。通常(但并非总是),压缩全局变量会显着增加数据库中可用的可用空间。 (如果指定的目标密度低于数据库当前的全局块密度,则数据库的大小不会增加。) 要压缩数据库中的全局变量,请使用以下过程: 1. 打开终端并更改为 `%SYS` 命名空间。 2. 输入 `do ^DATABASE`,然后从菜单中选择 7) `Compact globals in a database`。 ```java %SYS>do ^DATABASE 1) Create a database 2) Edit a database 3) List databases 4) Delete a database 5) Mount a database 6) Dismount a database 7) Compact globals in a database 8) Show free space for a database 9) Show details for a database 10) Recreate a database 11) Manage database encryption 12) Return unused space for a database 13) Compact free space in a database 14) Defragment a database 15) Show background database tasks ``` 3. 指定要在其上运行操作的数据库的目录。可以通过输入来指定多个数据库?在数据库目录压缩`?`提示,然后输入数字列表。 ```java Database directories to compact? ? 1) c:\intersystems\irishealth\mgr\ 2) c:\intersystems\irishealth\mgr\hscustom\ 3) c:\intersystems\irishealth\mgr\hslib\ 4) c:\intersystems\irishealth\mgr\hssys\ 5) c:\intersystems\irishealth\mgr\irisaudit\ 6) c:\intersystems\irishealth\mgr\irislocaldata\ 7) c:\intersystems\irishealth\mgr\iristemp\ 8) c:\intersystems\irishealth\mgr\user\ (Multiple selections allowed: * for all, or list such as 1,4,7-10) ``` 4. 指示您要压缩所有全局变量,或者输入要压缩的单个全局变量列表。 ```java Database directories to compact? 8 c:\intersystems\irishealth\mgr\user\ Databases Selected ------------------ c:\intersystems\irishealth\mgr\user\ ``` 5. 指定目标平均全局块密度,响应其余提示,并确认。 ```java All Globals? Yes => yes 34 items selected from 34 available globals How full do you want the database blocks? 90 => 50 Display compacted globals? No => n Device: "" Right margin: 80 => 50 Confirm compaction of databases? Yes => yes Database Compaction Aug 20 2022 5:49 PM Database c:\intersystems\irishealth\mgr\user\ Global MB Processed MB Compres sed To Completed ------ ------------ ---------- ------ --------- ^IRIS.Msg 0 0 5:49 PM ^IRIS.MsgNames 0 0 5:49 PM ^IRIS.SASchema 0.008 0.008 5:49 PM ^ISC.Src.Jrn 0.008 0.008 5:49 PM ^ISCMethodWhitelist 0.008 0.008 5:49 PM ^ROUTINE 0.008 0.008 5:49 PM ^oddBIND 0 0 5:49 PM ^oddCOM 0.016 0.016 5:49 PM ^oddDEF 0.016 0.016 5:49 PM ^oddDEP 0.008 0.008 5:49 PM ^oddEXT 0.008 0.008 5:49 PM ^oddEXTR 0 0 5:49 PM ^oddMAP 0 0 5:49 PM ^oddMETA 0 0 5:49 PM ^oddPKG 0 0 5:49 PM ^oddPROC 0 0 5:49 PM ^oddPROJECT 0.008 0.008 5:49 PM ^oddSQL 0 0 5:49 PM ^oddStudioDocument 0 0 5:49 PM ^oddStudioMenu 0 0 5:49 PM ^oddTSQL 0 0 5:49 PM ^oddXML 0 0 5:49 PM ^rBACKUP 0 0 5:49 PM ^rINC 0 0 5:49 PM ^rINCSAVE 0 0 5:49 PM ^rINDEX 0.008 0.008 5:49 PM ^rINDEXCLASS 0.008 0.008 5:49 PM ^rINDEXEXT 0.10 0.10 5:49 PM ^rINDEXSQL 0.008 0.008 5:49 PM ^rMAC 0 0 5:49 PM ^rMACSAVE 0 0 5:49 PM ^rMAP 0.008 0.008 5:49 PM ^rOBJ 0.008 0.008 5:49 PM ^rPYC 0.008 0.008 5:49 PM ``` **注意:紧凑的全局操作旨在与正常的数据库活动同时运行。但是,该操作确实会消耗一些系统资源,并且如果系统处于极高负载下,则可能无法完成。出于这些原因, 建议在非高峰时间运行此和其他数据库重组操作(包括压缩数据库和对全局进行碎片整理),并且一次只在系统上运行一个此类操作**。 **全局压缩可能涉及临时增加正在压缩的数据库大小。如果这导致数据库达到其配置的最大大小,或者由于存储卷上的可用空间不足而无法进行扩展,则取消操作。**
文章
Hao Ma · 一月 4, 2023

IRIS, Caché监控指导 - 介绍

本文章是一个系列,主要目的是介绍给IRIS,Caché的终端用户如何方便的监控您的系统。 InterSystems系统的监控很难吗?需要学习很多技术吗? 我的答案是还好。 关于Caché和IRIS监控,无论是那部分内容,在InterSystems的在线文档或者开发者论坛,其实都能找到相关的说明和方案。但问题是太多,太杂乱,没有一个“操作维护手册”的东西。结果是,如果您是一个新手的InterSystems产品的维护工程师或者管理员,您要花很多的时间在大量的文档里找答案。 还有一个问题是文档中很多章节的内容又太深,包含了一些开发人员才关心的内容,这是Caché或者IRIS的特性造成的,因为它首先是一个开发平台。结果是,对于管理员,很多文档的很不友好。 因此,我要写的这个文章的的目的是这样的: - 简单。只介绍管理维护人员需要的内容。只介绍和监控相关的内容。其他比如备份恢复,扩容,修改配置等等基本不涉及。 - 易学。文章的期待读者是系统管理员,因此不需要您有编程能力或者InterSystems编程语言的基础。我系统对您的每个日常工作和关注的主题,给出最容易实现的操作步骤。 - 对读者的要求低,您只需要了解基本的Caché操作,包括 - Caché的用户维护界面 - 操作终端(Terminal)的操作 - 基本的Caché命令的格式 让我们进入主题。有几个要点要先交代一下。 ### InterSystems产品的几个使用的场景 也就是谁在用什么产品 - 场景一:东华的iMedical用户 iMedical 8.5之前的版本使用Caché。 2022年版本8.5发布并开始部署,它的底层是InterSystems IRIS。 - 场景二:独立的InterSystems IRIS实例或者InterSystems HealthShare InterSystems HealthShare是在IRIS平台上面构建的数据共享平台,用于多个医疗机构之间的数据共享,通常会由多个InterSystems IRIS实例组成。本文并不介绍HealthShare的具体技术,您如果是HealthShare的用户,可以通过本文了解单一的IRIS实例的监控。 - 场景三: 医院的集成平台Ensemble用户 从监控维护的角度讲,Ensemble和Health Connect对于医院用户其实是一个东西。Health Connect是最近一些年InterSystems公司对医疗行业使用的Ensemble的一个产品名称。在后面的文章里, 我会只用Ensemble这个名字。 ### 什么是系统监控 简单说,监控工作基本就两块: 1. 监控告警和日志 简单的说,当系统有需要管理员关注的事件发生时,管理员可以及时得到通知。关注的事件通常包括底层的告警,比如CPU占用或者数据库组件出错,或者上层应用的事件,比如一个消息队列太长了。 2. 指标的测量 如果要监控的系统本身有完美的日志和告警通知,那么指标的检测就不那么重要。但实际场景中,用户不仅要检测客户化的上层应用指标,也希望看到底层的指标值,哪怕仅仅是为了展示。 这时候,就需要一个好的指标测量的方案。这里“好的方案”的意思是稳定,易于维护,容易客户定制化的修改。 ### 本文章的组织和您可能感兴趣的内容 如果您是新手,请让我先来强调一下IRIS, Caché和Ensemble的区别 - IRIS, Cache'是开发平台,而不仅仅是数据库。 ​ 举例来说,iMedical的生产环境有很多“应用服务器”,它们是一个个单独部署的Caché实例。它们并不存数据,而仅仅是应用。因此对Caché应用服务器的监控肯定是和数据服务器是不一样的。 - Ensemble是一个应用 Ensemble是在Caché平台上的开发出的消息引擎框架(framework)。它内置了很多用于消息分发传递的组件,用于搭建一个消息引擎。如果只用内置的组件,那么Ensemble几乎可以被看成一个应用。但现实实施中,程序员会使用已有的组件,适配器等开发定制化的组件,这时候Ensemble就是一个开发框架。 无论如何,Ensemble是工作在Cache'或者IRIS之上的,所以Ensemble的维护人员一定要先学维护Cache'或者IRIS。 综上所述, InterSystems产品的监控包括 - IRIS或者Caché的监控(适用于上面所有3个场景的维护人员),包括的内容 - [IRIS,Caché健康检查](./IRIS和Caché健康检查建议.md) - [IRIS,Caché的日志和错误]() - [指标(metrics)的监控] - 数据库性能的监控(适用于场景一,场景二的维护人员) - SQL性能的监控 - 索引的使用情况的监控 - Ensemble的监控(适用于上面场景三的维护人员), 包括 - Ensemble的日志和错误]() - Ensemble的消息统计 除了最基本的监控有关的工作,文章内容里还会包括最基本的和系统健康检查,提交测试报告的内容。也会介绍一些工具,比如SNMP, InterSystems SAM等等。我在工作中了解的一些用户的好的方案,实现等等, 也会和各位分享。 请看下一篇 [IRIS, Caché监控指导(1)-健康检查](https://cn.community.intersystems.com/post/iris-cach%C3%A9%E7%9B%91%E6%8E%A7%E6%8C%87%E5%AF%BC-%E7%B3%BB%E7%BB%9F%E5%81%A5%E5%BA%B7%E6%A3%80%E6%9F%A5)
文章
Claire Zheng · 七月 20, 2021

扫码看回放 | InterSystems极客俱乐部线上直播课:Health Connect 系统运维培训

InterSystems极客俱乐部线上直播课“Health Connect系统运维培训”回放已准备好,欢迎您点击报名,扫码看回放!