搜索​​​​

630 个结果
公告
Claire Zheng · 三月 17, 2021

InterSystems IRIS数据平台在AWS提供完全托管式服务

通过持续进行云投资,InterSystems能够提供礼宾级的云服务。 InterSystems IRIS®数据平台和InterSystems IRIS医疗版™现已在亚马逊AWS云服务平台提供完全托管式服务,并可向客户提供一种风险最低、最便捷的充分利用云资源的途径。 客户在AWS基础架构中部署InterSystems环境后,InterSystems的礼宾级托管服务将帮助其处理性能、安全、可用性和操作问题。这种端对端服务可以让客户专注于自己的核心业务,而InterSystems则负责软件部署、基础架构、监测、高可用性、安全、补丁及升级等一系列工作。 InterSystems数据平台副总裁Scott Gnau表示:“在InterSystems,我们致力于通过云服务为客户提供礼宾级的托管式服务,并在AWS云端维持安全、可扩展、高性能的环境。” “我们的完全托管式云服务可为客户提供两全其美的解决方案——客户既可以利用InterSystems的云端技术,又可以免去相关的担忧和复杂问题。这一最新服务再次证明了我们对云投资的持续承诺,同时也为更多的客户提供了获得所有云技术效益的机会,并彰显了我们一流的客户参与度和支持服务。” 作为一个独立于云的数据平台,InterSystems IRIS可部署在所有的大型公有云中,并支持多云和混合云环境。InterSystems IRIS无需集成多种技术,可以更加便捷地构建支持机器学习的高性能应用程序,从而连接数据和应用程序孤岛。
公告
Michael Lei · 十月 7, 2021

InterSystems 安全基础线上课程上线

InterSystems 安全基础线InterSystems Security Basics 通过本课程可以: 识别安全模式下的各个组件. 选择合适的认证方法. 创建用户和角色. 利用针对资源的许可来保护资产. 激活系统审计. https://learning.intersystems.com/course/view.php?id=1774
文章
Jeff Liu · 一月 7, 2021

InterSystems 容器注册表介绍

我非常高兴地宣布,InterSystems 容器注册表现在可以使用了。 这为客户访问基于容器的版本及预览提供了新的渠道。 所有的社区版镜像都可在公共存储库中找到,且无需登录。 所有完整发布的镜像(IRIS、IRIS for Health、Health Connect、System Alerting and Monitoring、InterSystems Cloud Manager)和实用程序镜像(例如,仲裁器、Web 网关和 PasswordHash)都需要登录令牌,该令牌从 WRC 帐户生成。 WRC 发布网站暂时将继续以 tarball 方式提供已发布镜像。 不过,您现在可以配置 CI/CD 管道以直接从 InterSystems 容器注册表“docker pull”镜像。 可通过 https://containers.intersystems.com 访问该注册表。 有关完整的使用说明,请参阅下文或参阅文档(使用 InterSystems 容器注册表)。如果您遇到任何问题或有任何反馈要分享,请在下面的评论中告知我们,或联系 support@intersystems.com。-------------------------------------------------------------- 使用 InterSystems 容器注册表 本文档列出了 InterSystems 容器注册表 (ICR) 中可用的镜像,并提供了使用说明。该注册表位于 containers.intersystems.com 上。 可以使用 docker pull 命令下载 ICR 中的镜像,例如: docker pull containers.intersystems.com/intersystems/iris-community:2020.3.0.221.0 本文档包含以下部分: 公共像 受限访问镜像 对 ICR 进行身份验证 列出 ICR 清单 公共镜像 以下 ICR 镜像是公开可用的,无需身份验证即可拉取: InterSystems IRIS IntegratedML 2020.3 containers.intersystems.com/intersystems/iris-ml-community:2020.3.0.302.0 Community Edition 2020.3 containers.intersystems.com/intersystems/iris-community:2020.3.0.221.0 2020.3 ARM64 containers.intersystems.com/intersystems/iris-community-arm64:2020.3.0.221.0 InterSystems IRIS for Health IntegratedML 2020.3 containers.intersystems.com/intersystems/irishealth-ml-community:2020.3.0.302.0 Community Edition 2020.3 containers.intersystems.com/intersystems/irishealth-community:2020.3.0.221.0 2020.3 ARM64 containers.intersystems.com/intersystems/irishealth-community-arm64:2020.3.0.221.0 System Alerting and Monitoring 1.0 containers.intersystems.com/intersystems/sam:1.0.0.115 以下 ICR 镜像仅对经过身份验证的用户可用:受限访问镜像 以下 ICR 镜像是公开可用的,无需身份验证即可拉取: Arbiter 2020.1 containers.intersystems.com/intersystems/arbiter:2020.1.0.215.0 2020.2 containers.intersystems.com/intersystems/arbiter:2020.2.0.211.0 2020.3 containers.intersystems.com/intersystems/arbiter:2020.3.0.210.0 Health Connect 2020.1 containers.intersystems.com/intersystems/healthconnect:2020.1.0.215.0 InterSystems Cloud Manager (ICM) 2020.1 containers.intersystems.com/intersystems/icm:2020.1.0.215.0 2020.2 containers.intersystems.com/intersystems/icm:2020.2.0.211.0 2020.3 containers.intersystems.com/intersystems/icm:2020.3.0.221 InterSystems IRIS 2020.1 containers.intersystems.com/intersystems/iris:2020.1.0.215.0 2020.2 containers.intersystems.com/intersystems/iris:2020.2.0.211.0 2020.3 containers.intersystems.com/intersystems/iris:2020.3.0.221.0 2020.1 ARM64 containers.intersystems.com/intersystems/iris-arm64:2020.1.0.215.0 2020.2 ARM64 containers.intersystems.com/intersystems/iris-arm64:2020.2.0.211.0 2020.3 ARM64 containers.intersystems.com/intersystems/iris-arm64:2020.3.0.221.0 2020.3 IntegratedML containers.intersystems.com/intersystems/iris-ml:2020.3.0.302.0 InterSystems IRIS for Health 2020.1 containers.intersystems.com/intersystems/irishealth:2020.1.0.217.1 2020.2 containers.intersystems.com/intersystems/irishealth:2020.2.0.211.0 2020.3 containers.intersystems.com/intersystems/irishealth:2020.3.0.221.0 2020.1 ARM64 containers.intersystems.com/intersystems/irishealth-arm64:2020.1.0.217.1 2020.2 ARM64 containers.intersystems.com/intersystems/irishealth-arm64:2020.2.0.211.0 2020.3 ARM64 containers.intersystems.com/intersystems/irishealth-arm64:2020.3.0.221.0 2020.3 IntegratedML containers.intersystems.com/intersystems/irishealth-ml:2020.3.0.302.0 PasswordHash 1.0 containers.intersystems.com/intersystems/passwordhash:1.0 Web Gateway 2020.2 containers.intersystems.com/intersystems/webgateway:2020.2.0.211.0 2020.3 containers.intersystems.com/intersystems/webgateway:2020.3.0.221.0 要登录至 ICR,请执行以下步骤:对 ICR 进行身份验证 在您的浏览器中加载 https://containers.intersystems.com/,然后使用您的 InterSystems/WRC 凭据登录。 检索您的 Docker 登录令牌或完整的登录命令。 在 Docker 界面(例如,PowerShell 窗口或 Linux 命令行)中,使用提供的凭据对 ICR 进行身份验证。 您可以通过复制并粘贴显示的完整 docker login 命令来执行此操作,例如: docker login -u="bbinstoc" -p="provided_password" containers.intersystems.com 但是,出于安全原因,您可能想要输入命令 docker login container.intersystems.com,然后在 Username 提示符下输入用户名并将密码粘贴到 Password: 提示符下。 注意:如果您登录到另一个 Docker 注册表,则 docker login 命令可能会导致错误;登录到 container.intersystems.com 之前,请先注销其他注册表。 现在,您可以从 ICR 中拉取镜像,例如: docker pull containers.intersystems.com/intersystems/iris:2020.3.0.221.0 列出 ICR 清单 API 可用于列出 Docker 注册表中的镜像和标签。 可用于列出注册表清单的开源第三方实用程序的一个示例是 docker-ls ,其可从 https://github.com/mayflower/docker-ls 获取。 获取此实用程序的方法有几种。 你可以: 下载用于各种平台的预编译 docker-ls 二进制文件。 直接在某些平台上安装该实用程序,例如,在 Linux 系统上使用以下命令进行安装: sudo snap install docker-ls 在 Linux 平台上拉取并运行镜像 carinadigital/docker-ls:latest 以安装该实用程序,例如: docker run --rm carinadigital/docker-ls:latest 安装 docker-ls 后,您可以使用以下命令列出 ICR 中的存储库: docker-ls repositories --registry https://containers.intersystems.com --user username --password password 注意:使用 --interactive-password 选项提示输入密码,不要在命令行中输入密码。 要仅列出公开可用的镜像,请为 -user 和 --password 选项提供空字符串 ("") 作为参数, 例如,以下仅列出了公共 InterSystems IRIS for Health 镜像的标签: docker-ls tags --registry https://containers.intersystems.com --user "" --password "" intersystems/irishealth-community 如果希望看到非公共镜像的完整列表,则无论是否登录 container.intersystems.com,都需要向该实用程序提供用户名和密码。 可访问 https://github.com/mayflower/docker-ls 了解其他示例。
公告
Claire Zheng · 一月 7, 2021

InterSystems 商业数字服务

亲爱的社区用户,您好! 我们在 Global Masters上推出了商业服务奖励计划,这是一个绝佳的契机,您可以在开发者社区和我们的社交媒体上宣传贵公司的应用、解决方案和服务,甚至为您的 OEX 应用兑换 Google AdWords 推广! $1,000 Google AdWords 推广代金券 兑换此奖励可在 Google Adwords 上推广您的 OEX 应用。我们将设置推广(关键字、描述、受众),并在推广结束后发送报告。 要求:应用程序应该在 InterSystems IRIS数据平台/IRIS医疗版 上工作,或是通过 IRIS 进行管理/开发的工具。 3,000 积分 开发者社区上的“NEWS”宣传块 兑换此奖励可在开发者社区上宣传您的服务、活动或职位空缺。时长:1 周。 显示在网站所有网页的右侧。 我们的设计人员将为您准备一个横幅。 要求:开发服务、活动或职位空缺应该与 InterSystems 技术相关。 1,500 积分 开发者社区上的 Open Exchange 项目推广 兑换此奖励可在开发者社区上推广您的 OEX 项目。1 周之内,所有社区访问者在网站所有网页右侧的“本周应用”板块中都会看到一个横幅,其中包含您的项目的可点击链接。 1,000 积分 InterSystems 支持的网络研讨会 如果您想针对开发者组织一次专业的网络研讨会,以介绍您的解决方案/工具和公司服务,那么请兑换此奖励,我们将帮忙组织。 您将获得:InterSystems 团队将建立一个在线网络研讨会;在 开发者社区和社交媒体上推广该网络研讨会;开发者社区上的登录页面;网络研讨会前演练和会议期间的技术支持。 要求:应用程序应该在 InterSystems IRIS数据平台/IRIS医疗版上工作,或是通过 IRIS 进行管理/开发的工具。 3,000 积分 让您的视频出现在 InterSystems 开发者 YouTube 频道上 您是否有描述InterSystems 数据平台相关的工具、解决方案或经验的YouTube 视频? 通过订购视频加速包提高您的 YouTube 视频流量:在 InterSystems 开发者 YouTube 频道上推广视频。 列入每月的“InterSystems 开发者视频”摘要。 这是一个示例。 在 Global Masters 和 InterSystems 开发者社交媒体上宣传。 1,500 积分 在开发者社区上发布您公司的标签 兑换此奖励可获得您公司在开发者社区上的标签,它也是一种公司描述,一个包含帖子和您的订阅者的区域。 5,000 积分 如果您还不是 Global Masters 会员,如何兑换? ➡️ 我们邀请您加入: 1. 使用您在开发者社区上的相同账密登录Global Masters 。 2. 回答“自定义你的程序。 从这里开始!”挑战中的 4 个问题(您会在挑战中看到)。 3. 您对 OEX 和开发者社区的贡献积分将在 3 天内自动授予。 4. 在奖励目录兑换奖励。 InterSystems 开发者社区每个月的访问量超过 35000 人。让世界了解您在 InterSystems 数据平台上构建的应用、解决方案和服务! 欢迎在下面的评论中提出您的问题。 * * * 有关 Global Masters 的其他信息:认识Global Masters倡导中心,从这里开始
文章
Claire Zheng · 一月 18, 2021

InterSystems 开发者社区欢迎您!

亲爱的是社区用户,您好! 如果您看到本页面,则说明您已进入 InterSystems 开发者社区! 非常欢迎您! 在这里,您可以了解和讨论有关InterSystems 产品和技术的信息,包括:InterSystems IRIS数据平台、Caché、Ensemble、HealthShare、DeepSee 和 iKnow。 在这里可以找到什么类型的内容? 我们在开发者社区 (DC) 提供三种类型的内容:文章、问题、公告。还有对问题的回答。 以及视频。 文章的内容涉及 InterSystems 技术和产品的最佳实践和经验。InterSystems 员工和社区用户都可以发表文章。 您可以找到版本说明和新功能描述,以及有关经验和 InterSystems 技术示例的文章。 当然,您也可以在这里提出问题,并获得来自世界各地的最有经验的 InterSystems 技术工程师的答案。 为何要注册? 在 DC 注册后,可以针对以下方面发表和评论文章,提出问题和给出答案:InterSystems数据平台、使用 InterSystems 数据平台和工具构建的解决方案、有助于在 InterSystems 数据平台上构建、部署和维护解决方案的工具、技术和方法。 注意!如果您是InterSystems 技术现有用户,在注册过程中出现如下报错信息,请尝试使用自己的WRC账户直接登陆社区。 点击查看发帖指南。 注意! 版主可能会删除与 InterSystems 产品和技术无关的帖子。 InterSystems 开发者社区行为准则。 注册会员可以投票。 如果您喜欢某篇文章、某个问题或回答,可以为其投票。 何时应该投反对票? 当您遇到发布过于草率、毫不费力就发出的帖子,或者是明显错误、甚至可能造成危险的回答时,请投上反对票。 如果投反对票,并且您认为帖子有改进空间,请考虑添加评论。 查看有关投票的更多信息。 网站如何运作? 帖子按标签进行分类。 有一些标签是必选的,这些标签在编辑时称为“组”。 必选标签与 InterSystems 产品或 InterSystems 服务相关。 您需要提供至少一个这样的标签。 标签有助于对帖子进行分类。 您可以订阅标签,以通过电子邮件或 RSS 获得通知。 此外,您还可以关注您喜欢的会员,相当于订阅该会员的帖子和评论。 在主页面,您可以看到发帖动态,其中最上面的是最新发布或者有最新评论和回答的帖子。 您可以使用筛选器,以便只查看您订阅的标签,以及投票最多的帖子和新帖子。 此外,我们还有 DC 分析网站,可用来查看一些关于 DC 会员、帖子、回答等的数据。 有关其他所有内容,请参见开发者社区常见问题解答。 订阅须知 注册会员可以收到关于开发者社区上的不同操作的电子邮件通知。 请参见此文章了解如何设置。 此外,每个人都可以订阅 RSS:所有内容和特定标签。 InterSystems Global Masters倡导中心! 这是我们的 InterSystems 倡导中心。如果您认为自己是 InterSystems 技术的倡导者,请加入由全球数百名 InterSystems 倡导者组成的团队。 我们将为您提供挑战、徽章,当然还有奖励。 点击查看详细信息。 InterSystems Open Exchange! 在 InterSystems Open Exchange 上查找工具、框架、解决方案、技术示例!点击了解更多信息。 还有什么? 如果您对网站有任何疑问,请在群组中提问,或查看常见问题解答。 我们在 Twitter 上发布开发者社区中的所有有价值内容,如果您更愿意点赞 Facebook,也可以访问我们的 Facebook 页面。 还有 InterSystems 开发者 LinkedIn 信息通道以及 InterSystems 开发者 LinkedIn 群组。 您也可以关注InterSystems中国领英账户,及时获取精彩信息! 如果您喜欢 Telegram,我们也有 DC Telegram 频道发布相同内容。 我们开通了 InterSystems 开发者 YouTube 频道。 在中国,我们在B站开通了InterSystems中国官方账号,将不定时更新由SE团队精心制作的视频课程、讲座等内容。 我们还在 Reddit 的开发者社区子板块发布所有最有趣的公告。 欢迎加入 InterSystems 开发者社区!
文章
Claire Zheng · 三月 21

InterSystems IRIS哪些新特性让用户开发体验得到了极大提升?

谈到开发体验,什么最重要?如何为客户提供更好的开发体验?InterSystems IRIS的最新版本有哪些新特性极大优化了用户的开发体验?这是本月“极客聊吧”的话题,我们计划通过上、下两期视频探讨这一话题。在第一期视频中(点击查看),InterSystems中国销售工程师吕正之、马浩和WRC产品支持专家杨乐乐针对以下两点分享了他们的观点:(1)开发语言的多样性与对FHIR的支持; (2)开发平台的前瞻性:对Smart Data Fabric架构的支持。 主题 开发语言的多样性与对FHIR的支持 @Louis.Lu 吕正之(Louis): 大家好,我是InterSystems售前工程师吕正之,这是我的同事杨乐乐和马浩,今天的“极客聊吧”我和我的同事会和大家介绍一下如何为客户提供更好的开发体验的。首先有请我们的资深销售工程师马浩,我们一般称他为老马。老马,你有什么和我们分享的吗? @Hao.Ma 马浩(老马): 大家好,我是马浩。说到更好的开发体验,首先要聊的是嵌入式Python。原来只能使用InterSystems ObjectScript, Objectscript最大的问题是“开发者的欠缺”——培养开发者需要时间。 Python是最受欢迎的语言。据统计有超过800万的开发者,比Java多。嵌入到系统安装包里, 安装后就可以在代码里使用,混用。开发应用时,使用Embedded Python不仅访问IRIS的数据,包括我们的Ensemble组件,叫Interoperability in Python,也是用Python做的Objectscript的优化。 另一个令人振奋的是 VSCode。还有我们原本的开发IDE只有在Windows平台下的Studio,但是它对于源代码管理、Debug调试等方面的支持都不是很方便,现在我们可以使用VSCode作为InterSystems IRIS的开发IDE,客户端编程、代码调试、代码质量、GitHub, Container管理、Extension等等,所有这一切,对以往的Caché的程序员来说是非常大的改变,也是非常令人高兴的变化。 @Louis.Lu 吕正之(Louis): 嗯,这样确实不错,原来会有一些用户担心会我们开发语言的工程师比较少,现在他们可以招聘擅长Python的工程师进行InterSystems IRIS的开发了。 @Hao.Ma 马浩(老马) 是的,这对于我们的合作伙伴真是个好消息,他们可以招聘一些Python的工程师。当然,对于使用ObjectScript的工程师来说,也意味需要有一个学习新工具的适应的过程。 另外一个提升客户开发体验的是对于HL7 FHIR标准的进一步支持。InterSystems IRIS 医疗版提供了开发FHIR应用的所有必须模块,包括几个东西:API的接口,FHIR服务器以及FHIR资源仓库、FHIR Message Broker消息代理。无论是开发FHIR应用、创建FHIR的数据存储,还是把旧有系统映射的数据映射成FHIR的格式,IRIS for Health(IRIS医疗版)都有非常方便的工具和组件。 @Louis.Lu 吕正之(Louis): 我知道FHIR是HL7最新的互操作性标准,它将医疗数据的基本单元定义为资源,比如患者资源、就诊资源、检查结果资源、药嘱资源等,每个资源都定义了合适的数据格式,约束、值集范围、资源之间的相互关系等,而且FHIR还有强大的扩展能力,满足各方面的实际需求。 同时它也是文档、消息交换的标准,并且它定义了每个资源的接口API、查询参数等。现在的一个问题是针对FHIR资源的查找只能通过API进行,这样对于我们熟悉使用SQL查询的工程师感觉很不方便,会影响到客户的开发体验。 @Hao.Ma 马浩(老马) 现有的FHIR定义确实有这样的问题,FHIR是一个JSON的格式,资源的关系很复杂。不方便做查询。好消息是,InterSystems 在2021年全球线上峰会上演示了FHIR SQL Builder预览版的一些功能,简单地说:它就是一个工具,分析FHIR资源仓库的数据,创建你自己的SQL schema,一部分灵活的控制,总结存储的资源和他们的元素信息。对于大型FHIR资源仓库,用户可以指定只分析总资源库的一个部分。他还提供了一个页面让用户选择资源、元素,并生成相对应的SQL schema,这样对于熟悉SQL的工程师来说,只要访问那个SQL schema就可以使用到你想要的FHIR数据了。 @Louis.Lu 吕正之(Louis): 听上去真不错,这个在哪里可以体验呢? @Ida.Yang 杨乐乐(Ida): 有希望体验FHIR SQL Builder的观众可以通过400-601-9890 技术热线联系,或者添加我们小助手的微信联系我们,我们很高兴听到各位的使用反馈,很有可能您的建议会被添加到我们未来的产品中。 扫码添加小助手 或搜索“ISC-Johnny”即可添加 主题 开发平台的前瞻性:对Smart Data Fabric架构的支持 马浩(老马): 关于如何为客户提供更好的开发体验,开发平台的前瞻性也是至关重要的,去年我们的全球峰会中提到的InterSystems IRIS 对于Smart Data Fabric(智能数据编织)架构的支持。那么Louis,你是如何理解Smart Data Fabric的呢? 吕正之(Louis): 嗯,很好,你注意到了这一点,对于Smart Data Fabric架构的支持确实贯穿了我们全球峰会的主题。Data Fabric中文有的翻译成数据经纬、数据编织,还有的更直接称为智能数据结构,它描述的是一种数据的管理架构。这种架构可以优化对分散数据的访问,这里说的“分散”包含两方面的含义:一是物理层面,数据存储在不同的数据库、不同的服务器、甚至是在不同的地理位置中。另一层含义指的是数据类型的多样性——它可能是传统的关系型数据,比如主外键关联的多张表,或者是非关系型的比如xml、JSON格式的文档数据,又或者是对象型数据、键值对数据、流数据等。 Data Fabric架构可以智能地、规划并协调它们,方便向数据消费者提供自助式的服务。有了这样的架构,可以通过让用户实时访问正确的数据来提升企业数据的价值,而不管它存储在哪里。Data Fabric整合了核心数据管理功能,依据Gartner对于Data Fabric的组成的描述,在数据源和数据消费者之间主要包含: 数据连接:帮助客户连接数据孤岛 数据填充:实时、智能地选取合适的数据 数据治理:对数据进行处理和提炼 数据访问:并让数据方便于使用,方便于分析 马浩(老马): 那么InterSystems IRIS 是如何支持的呢? 吕正之(Louis): InterSystems IRIS数据平台集合了Caché、Ensemble的众多功能和特点: 它可以使用同一个平台管理多类型的数据:关系型、文档型、键值对、对象型数据; 它兼容了事务性数据与分析型数据的存储与读取; 内置的多种协议比如Http、SOAP、文件、SQL或者标准HL7、IHE的适配器可作为系统互操作性重要的组成,方便用户用于数据连接、数据访问; 适配器的不同参数可以对应于实时、批量加载数据的不同场景。 Data Fabric还有一个重要的用户使用特性是self-service,也就是用户自己可以花很短的时间去寻找到需要的数据,花更多的时间去探索数据中的隐藏的含义,从而指引自己对数据变化进行更快的反应。 对于业务流程开发工程师,InterSystems IRIS 提供的全部管理、配置界面都是基于BS架构的,也就是说你可以通过网页方便地开发出一个复杂的业务流程,比如要根据实时的数据运行机器学习算法给出预测值,或者在问诊过程中根据当前病情、历史用药、历次化验结果调用临床决策知识库实时给出诊疗建议,又或者需要在很短时间内对满足特定条件的人群发出诊疗告警等等类似于这样的业务流程,需要涉及多个系统、多种数据结构,仅仅通过网页画流程图的方式就可以轻松实现。 对于前端工程师、接口工程师可以借助InterSystems IRIS IAM工具,掌握任何服务端接口的变化,也可以集中监控和管理接口,比如流量管控、访问认证、灰度发布等。 对于机器学习,内嵌的Integrated ML功能可以让非数据科学家,仅仅执行类似于SQL的语句,就完成了从数据建模到数据准备、特征工程、模型选择、训练模型再到验证模型,如果想使用训练好的模型,也仅仅是执行InterSystems扩展SQL 语句就可以获得结果,这对于想使用机器学习对海量数据进行初步筛选的医疗一线人员真是很方便。 对于数据分析师,不但可以使用自己熟悉的PowerBI、Tableau等工具直接访问IRIS中保存的数据,IRIS还提供了自适应分析工具AA(Adaptive Analytics),利用图形化工具对需要分析的数据进行预处理,创建一个虚拟的Cube,该虚拟Cube会在后台运行一个AI引擎,根据数据特点、访问习惯等做出最佳优化,供分析软件调用。 可以看到InterSystems IRIS 对于Data Fabric的架构进行了完整的支持。 当然还有更多、更详细关于InterSystems IRIS 对于Data Fabric的支持的信息请访问我们的官网、开发者社区等渠道获取。正如Gartner的评价,Data Fabric是数据管理的未来。 欢迎通过以下平台与我们联系,敬请关注近期即将推出的视频:如何为用户提供更好的开发体验(下)
文章
Lilian Huang · 六月 23

InterSystems 许可证信息和查询支持Tips

InterSystems许可证是指InterSystems发放的电子或纸质版的产品许可证,内容包括许可证订购日期、产品描述等。 激活码/License Key是InterSystems随许可证发放的许可软件激活码。通常情况下,客户收到的是电子许可证。 以下是一些许可证,激活码/License key常见咨询问题参考: 收到电子许可证后,如何获取纸质版许可证? 纸质版许可证或是安装介质盘,可通过合作伙伴或是致电原厂核验许可证信息后获取。 如需申请WRC支持,需要 申请准备: WRC账号,如无请通过WRC联络信息申请WRC账号 故障问题描述 许可证或激活码/License key 最终客户名称 WRC全球响应中心联络信息: 电话: +86 400-601-9890 邮件: support@intersystems.com 网站1(国内用户): https://wrc.intersystems.cn/ 网站2:https://wrc.intersystems.com 如何查询您的授权文件客户名和授权密钥? 方法1: 使用管理门户 以管理员身份登录到系统管理门户,进入菜单:系统管理>软件许可颁发>软件许授权码 (或英文菜单:System Administartion>Licensing>License Key) 记录客户名和授权密钥: 方法2 :使用命令行 执行命令: w $System.License.CKEY(),并拷贝输出内容 USER>w $System.License.CKEY() Cache Key display: Based on the active key file 'c:\intersystems\cache\mgr\cache.key' LicenseCapacity = Cache 2017.1, Enterprise:100, Concurrent User CustomerName = *** OrderNumber = 54321 ExpirationDate = 11/30/2022 AuthorizationKey = ******************************************************** MachineID = 方法3 :查看授权文件 使用文本编辑器查看您收到的授权文件。如果您不知道授权文件保存在哪里,可以到服务器的<InterSystems产品安装目录>/mgr/ 下找到cache.key (Cache’/Ensemble/旧版HealthConnect) 或iris.key (IRIS/新版HealthConnect)。 如何查询您的许可证产品类型和版本 方法1 :使用管理门户 任意身份登录到管理门户,点击菜单“关于”,记录版本信息。 方法2 :使用命令行 执行命令: w $ZV,并拷贝输出内容 USER>w $ZV Cache for Windows (x86-64) 2017.1.1 (Build 111U) Wed May 17 2017 15:34:56 EDT 备注:其他许可证任何问题,欢迎咨询:GCDPSales@intersystems.com。
文章
Qiao Peng · 三月 28, 2021

InterSystems IRIS医疗行业版创建FHIR服务器

如果您正打算学习FHIR、或者正在基于FHIR开发,最佳的学习和开发环境需要一个完备的FHIR 服务器,帮助您理解FHIR标准和调试FHIR应用。使用InterSystems IRIS医疗行业版可以快速配置出FHIR服务器和FHIR资源仓库。这篇文章介绍如何在5分钟内在InterSystems IRIS医疗行业版上配置FHIR服务器和FHIR资源仓库;同时对初学者介绍FHIR测试数据生成与加载的方法,和基本的FHIR REST API操作。 软件准备 1. InterSystems IRIS医疗行业版 您可以使用已有的2020.1及以上的InterSystems IRIS医疗行业版。如果您还没有,那么就在社区里下载一个最新的、免费的社区版吧。 2. 测试用的FHIR数据 如果您正在做FHIR开发,应该有很多FHIR测试数据。如果您正在学习FHIR,那么Synthea是一个不错的FHIR测试数据生成器选项。 3. REST测试工具 您或许已经有趁手的REST测试工具了。如果还没有,POSTMAN是个不错的选择。我的例子里用到的就是POSTMAN。 FHIR服务器配置 1. 安装InterSystems IRIS医疗行业版或社区版 如果您还没有安装过InterSystems IRIS医疗行业版或社区版,社区里有很多很好的介绍文章。 2. 配置FHIR服务器 2.1 创建一个FHIR 服务器命名空间 在InterSystems IRIS医疗行业版或社区版上,需要创建一个FHIR服务器命名空间。HS.HC.Util.Installer类的方法InstallFoundation可以创建这样的命名空间,例如,我们创建一个名为FHIRSERVER的命名空间: HSLIB>D ##class(HS.HC.Util.Installer).InstallFoundation("FHIRSERVER") 2.2 为这个命名空间配置FHIR访问端点 (FHIR endpoint) 进入管理门户,切换到FHIRSERVER命名空间,然后Health > FHIR Configuration, 然后点击“Server Configuration”。这里会列出已有的FHIR服务器的访问端点,并可以配置新的端点。 这里点击+号,在弹出的配置页面中进行设置,其配置项是: 选中支持的FHIR版本 (Select a metadata set): 如果要支持最新的FHIR版本4,选中HL7V40,就是FHIR R4; 选中交换策略 (Select an interaction strategy): 默认情况下只会有一个选项 - HS.FHIRServer.Storage.Json.InteractionsStrategy,它会将InterSystems IRIS同时配置为FHIR资源仓库。 设置FHIR服务器REST服务端点 (Enter a name(URL)): 例如/csp/healthshare/fhirserver/fhir/r4 然后点击Finish,让它完成后台的配置,这可能会花费1分钟。 2.3 修改这个FHIR服务端点 因为我们是想利用它来学习和测试FHIR,所以我们先跳过访问认证部分。在端点列表中选中刚才创建的/csp/healthshare/fhirserver/fhir/r4,滚动到最下方,找到Edit按钮,并选中“Debugging”下的“Allow Unauthenticated Access”,让FHIR服务器接受匿名访问。然后点击Update进行更新。 如果您按上述步骤执行完成,并且没有错误,那么FHIR服务器和FHIR资源仓库已经就绪了。看看表,您用了多久完成FHIR服务器的创建。 下面测试一下FHIR服务器是否工作正常。 测试FHIR服务器 即便您还没有任何FHIR测试数据,也可以先看看这个FHIR服务器的能力声明。 通过POSTMAN,使用GET方法,进行REST调用:http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/metadata。这里localhost:52776是我的测试InterSystems IRIS的服务器地址和Web服务端口号,您换成自己的就行。如果您不知道,那么用您访问InterSystems IRIS管理门户的地址和端口号。 因为我们在上一步配置时,允许匿名访问REST API,所以POSTMAN无需设置任何登陆账户,非常方便测试。正常情况下,您应该看到和我一样的结果: 您的FHIR服务器已经正常工作了,如果还没有测试数据,是时候加载一些FHIR数据进来了。 产生FHIR数据 如果您有自己的FHIR测试数据,请跳过此步,查看“加载FHIR数据”。 如果您还没有自己的FHIR数据,试试Synthea,它能方便的产生大量FHIR测试数据。Synthea有清晰的文档,告诉我们如何产生测试数据。(注:如果您是FHIR初学者,建议先少量创建FHIR测试数据文件,例如先创建5个) 通常它会产生3类JSON文件: 医院信息:hospitalInformation******.json, 每批次只会产生一个医院信息文件。 医生信息:practitionerInformation******.json, 每批次只会产生一个医生信息文件。 患者信息:<患者姓名>******.json, 每批次会根据设置产生一个或多个患者信息文件。 这些FHIR文件都是Bundle资源,Bundle里面会有很多FHIR资源数据。其中医院信息文件和医生信息文件的Bundle类型为batch,而患者信息的Bundle是transaction。 而Synthea产生的患者信息Bundle中的资源使用literal reference来引用医院/地点和医生信息,但它产生的literal reference信息不完整,例如: "serviceProvider": { "reference": "Organization?identifier=https://github.com/synthetichealth/synthea|731e0f3a-075d-37ab-9ba7-fbf1ab2f45e9", "display": "THE GENERAL HOSPITAL CORPORATION" } 需要将reference改为完整的地址,例如: "serviceProvider": { "reference": "http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/Organization?identifier=https://github.com/synthetichealth/synthea|731e0f3a-075d-37ab-9ba7-fbf1ab2f45e9", "display": "THE GENERAL HOSPITAL CORPORATION" } 也就是增加FHIR服务器的端点。 需要替换/补齐的引用分别是:Location、Organization和Practitioner。 您可以通过文本编辑器进行全局替换,将FHIR服务器的端点信息补充到reference里。如果您产生了很多FHIR数据文件,当然可以用您熟悉的语言写几行代码做这个补充替换。 这里我也附上使用IRIS的Object Script做补充替换的代码示例,它会对指定目录下的所有json文件进行扫描和补充替换,供您参考: Class Demo.FHIRTools Extends %RegisteredObject { /// 修正FHIR文件的引用 /// pFilePath为FHIR json文件目录 /// pFHIREndpoint为FHIR REST的服务端点 ClassMethod CorrectSyntheaFiles( pFilePath As %String = "C:\Temp\Synthea\output\fhir", pFHIREndpoint As %String = "http://localhost:52776/csp/healthshare/fhirserver/fhir/r4") As %Status { Set tSC = $$$OK // 遍历目录下的json文件 Set tSM = ##class(%SQL.Statement).%New() Set tSC = tSM.%PrepareClassQuery("%File", "FileSet") If $$$ISERR(tSC) { Do $system.OBJ.DisplayError(tSC) Return tSC } Set tRS = tSM.%Execute(pFilePath, "*.json", "Name") While tRS.%Next() { // 创建临时文件 Set tFileName = tRS.%Get("Name"),tTempFileName=$Replace(tFileName,".json","temp.json") Set tFile=##class(%Stream.FileCharacter).%New() Set tTempFile = ##class(%Stream.FileCharacter).%New() Set tSC=tTempFile.LinkToFile(tTempFileName) Set tSC=tFile.LinkToFile(tFileName) // 从源文件逐行读取,替换后写入临时文件 While 'tFile.AtEnd { Set tLine=tFile.ReadLine() // 执行替换 For tKeyword="Location?identifier=","Organization?identifier=","Practitioner?identifier=" { Set tLine = $Replace(tLine,tKeyword,pFHIREndpoint_"/"_tKeyword) } Set tSC = tTempFile.WriteLine(tLine) } Do tTempFile.%Save() Do tFile.%Close(), tTempFile.%Close() Kill tFile,tTempFile // 删除源文件,并将临时文件改名为源文件名 Set tSC = ##class(%File).Delete(tFileName,.tRtn) Set tSC = ##class(%File).Rename(tTempFileName, tFileName, .tRtn) } Return tSC } } 加载FHIR数据 当然可以通过FHIR REST API来加载数据,不过,InterSystems IRIS提供了后台的API,可以快速加载特定目录下的大量的FHIR数据文件。 这里我们用后台API:HS.FHIRServer.Tools.DataLoader的SubmitResourceFiles方法进行大量FHIR文件加载: FHIRSERVER>Set sc=##class(HS.FHIRServer.Tools.DataLoader).SubmitResourceFiles("C:\Temp\Synthea\upload","FHIRSERVER","/csp/healthshare/fhirserver/fhir/r4") 其中第一个入参是需要加载的文件目录;第二个参数是加载的FHIR服务器类型,这里用FHIRSERVER;第三个参数是FHIR REST服务端点。 如果您是通过Synthea产生的测试FHIR JSON文件,那么应该先加载 医院信息文件(hospitalInformation******.json)和医生信息文件(practitionerInformation******.json),以确保患者数据加载时,Location、Organization和Practitioner的引用能正确关联到FHIR资源仓库中已保存的对应资源上。 注意:2020.* 版本中有一个bug,需要将医院信息文件(hospitalInformation******.json)和医生信息文件(practitionerInformation******.json)里的"type": "batch"改为"type": "transaction"。这个bug在2021.1版本中已经得到修复,我已经验证过,但如果您在使用2020的版本,请记得提前修改。 加载完医院信息文件(hospitalInformation******.json)和医生信息文件(practitionerInformation******.json)后,再执行相同的方法加载所有患者数据json文件。 使用FHIR 服务器 有了测试数据,现在您可以使用FHIR服务器进行学习或开发测试了。使用POSTMAN,您可以调用FHIR服务器的REST API,查询、更改、提交FHIR资源数据。 如果您是初学者,对FHIR的REST API不熟悉,建议您从FHIR Cheat Sheet开始,它是一个FHIR标准的汇总单页,里面告诉大家如何使用REST API进行操作。 例如: 1. 查询已经加载到FHIR资源仓库中的患者: 使用GET 方法调用REST: http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/Patient 2. 使用查询参数,查询名为Pedro316的患者: 使用GET 方法调用REST: http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/Patient?given=Pedro316 或使用POST 方法调用REST: http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/Patient/_search?given=Pedro316 3. 更复杂的查询参数用例,查询拥有观察项目编码为8302-2(体重)的患者: 使用GET 方法调用REST: http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/Patient?_has:Observation:patient:code=8302-2 4. 使用operation: $everything 来获取特定患者的所有相关FHIR资源(示例是id为95的患者):使用GET 方法调用REST: http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/Patient/95/$everything 5. 加载FHIR Bundle资源: 使用POST 方法调用REST: http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/ ,并在Body中直接贴入FHIR资源数据到raw,或选择FHIR资源数据文件到binary。 注意:如果您是想让FHIR服务器解析Bundle中的FHIR资源,应该用http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/,而不是http://localhost:52776/csp/healthshare/fhirserver/fhir/r4/Bundle。后者把POST的FHIR数据按Bundle进行处理,并不会解析其中包含的FHIR资源内容并逐一保存! 注意:记得根据FHIR数据的格式设置Content-Type为application/json+fhir 或 application/xml+fhir,然后将数据贴在Body里: 好了,开启您的FHIR之旅吧 :) 后续我还会更新InterSystems IRIS医疗版作为FHIR服务器和FHIR资源仓库的更多内容,欢迎关注。
文章
Claire Zheng · 四月 21, 2021

InterSystems Caché系统运维培训:InterSystems Caché系统安全

近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问祝麟讲解了“InterSystems Caché系统安全”。
文章
Claire Zheng · 四月 21, 2021

InterSystems Caché系统运维培训:InterSystems Caché系统监控和性能数据采集

近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问马浩讲解了“InterSystems Caché系统监控和性能数据采集”。
文章
Claire Zheng · 七月 6, 2021

InterSystems Caché系统运维培训:InterSystems Caché系统高可用与数据库镜像

近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问祝麟讲解了“InterSystems Caché系统高可用与数据库镜像”。
文章
Claire Zheng · 四月 21, 2021

InterSystems Caché系统运维培训:InterSystems Caché架构、备份与恢复

近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问吕正之讲解了“InterSystems Caché架构、备份与恢复”。
文章
姚 鑫 · 六月 8, 2021

第一章 InterSystems XML工具简介

# 第一章 InterSystems XML工具简介 介绍了如何使用 IRIS `XML`工具。 InterSystems IRIS为`XML`处理带来了对象的力量--可以使用对象作为`XML`文档的直接表示,反之亦然。由于InterSystems IRIS包括本机对象数据库,因此可以将此类对象直接用于数据库。此外,InterSystems IRIS提供了用于处理`XML`文档和`DOM`(文档对象模型)的工具,即使它们与任何InterSystems IRIS类无关。 # 用XML表示对象数据 有些InterSystems IRIS `XML`工具主要用于支持`XML`的类。要为类启用`XML`,需要将`%XML.Adaptor`添加到其超类列表中。`%XML.Adaptor`类使能够将该类的实例表示为XML文档。可以添加类参数和属性参数来微调投影。 ![image](/sites/default/files/inline/images/1_48.png) 对于启用了`XML`的类,数据可以采用以下所有形式: - 包含在类实例中。根据类的不同,还可以将数据保存到磁盘,在磁盘中数据可以像其他持久类一样以所有相同的方式使用。 - 包含在`XML`文档中,可以是文件、流或其他文档。 - 包含在`DOM`(文档对象模型)中。 下图概述了用于在这些表单之间转换数据的工具: ![image](/sites/default/files/inline/images/2_28.png) `%XML.Writer`类使能够创建`XML`文档。输出目的地通常是文件或流。确定要包括在输出中的对象,系统根据在类定义中建立的规则生成输出。 `%XML.Reader`类使能够将合适的`XML`文档导入到类实例中。源通常是文件或流。要使用此类,需要指定类名和`XML`文档中包含的元素之间的关联。给定的元素必须具有相应类所需的结构。然后您逐个节点地阅读文档。这样做时,系统会创建该类的内存中实例,其中包含在`XML`文档中找到的数据。 `DOM`也是处理`XML`文档的有用方法。可以使用`%XML.Reader`类读取`XML`文档并创建表示它的`DOM`。在此表示中,`DOM`是一系列节点,可以根据需要在它们之间导航。具体地说,将创建`%XML.Document`的一个实例,该实例表示文档本身并包含节点。然后使用`%XML.Node`检查和操作节点。如果需要,可以使用`%XML.Writer`重新编写XML文档。 InterSystems IRIS `XML`工具提供了许多方法来访问和修改`XML`文档和`DOM`中的数据。 # 创建任意XML 还可以使用InterSystems IRIS `XML`工具创建和使用任意XML-即不映射到任何InterSystems IRIS类的`XML`。要创建任意XML文档,请使用`%XML.Writer`。该类提供了用于添加元素、添加属性、添加命名空间声明等的方法。 要创建任意DOM,请使用`%XML.Document`。该类提供了一个类方法,该方法返回具有单个空节点的DOM。然后根据需要使用该类的实例方法添加节点。 或者使用`%XML.Reader`读取任意XML文档,然后从该文档创建DOM。 # 访问数据 InterSystems IRIS `XML`工具提供了几种访问XML格式数据的方法。下图显示了摘要: ![image](/sites/default/files/inline/images/3_23.png) 对于任何格式良好的XML文档,都可以使用以下类来处理该文档中的数据: - `%XML.TextReader`-可以使用它逐个节点地读取和解析文档。 - `%XML.XPATH.Document`-可以使用它来获取数据,方法是使用引用文档中特定节点的`XPath`表达式。 在InterSystems IRIS中,DOM是`%XML.Document`的实例。该实例表示文档本身并包含节点。可以使用该类的属性和方法从`DOM`中检索值。可以使用`%XML.Node`检查和操作节点。 # 修改XML InterSystems IRIS XML工具还提供了修改`XML`格式数据的方法。下图显示了摘要: ![image](/sites/default/files/inline/images/4_17.png) 对于`XML`文档,可以使用`%XML.XSLT.Transformer`中的类方法执行`XSLT`转换并获得文档的修改版本。 对于DOM,可以使用`%XML.Document`的方法修改`DOM`。例如,可以添加或删除元素或属性。 # SAX解析器 InterSystems IRIS XML工具使用InterSystems IRIS SAX(Simple API For XML)解析器。这是一个内置的SAX XML验证解析器,使用标准`Xerces`库。`SAX`是一个解析引擎,它提供完整的XML验证和文档解析。InterSystems IRIS SAX使用高性能的进程内调入机制与InterSystems IRIS进程通信。使用此解析器,可以使用内置的InterSystems IRIS XML支持或通过在InterSystems IRIS中提供您自己的自定义`SAX`接口类来处理`XML`文档。 对于特殊应用程序,可以创建自定义实体解析器和内容处理程序。 可以使用行业标准的`XMLDTD`或模式验证来验证任何传入的`XML`,并且可以指定要解析的XML项。 # 其他XML工具 InterSystems IRIS `XML`支持包括以下附加工具: - XML架构向导读取XML架构文档,并生成一组支持XML的类,这些类与架构中定义的类型相对应。可以指定一个包来包含类,以及控制类定义详细信息的各种选项。 - `%XML.Schema`类使能够从一组启用了XML的类生成XML架构。 - `%XML.Namespaces`类使能够检查XML命名空间以及其中的类,以查找InterSystems IRIS命名空间。 - `%XML.Security.EncryptedData`类和其他类使能够加密XML文档以及解密加密文档。 - `%XML.Security.Signature`类和其他类使能够对XML文档进行数字签名,以及验证数字签名。 # 使用XML工具时的注意事项 在使用任何类型的XML工具时,至少有三个一般要点需要考虑: - 任何XML文档都有字符编码 - 将XML文档映射到类(文字或`SOAP`编码)有不同的方法 - 应该知道SAX解析器的默认行为 # 输入输出的字符编码 导出XML文档时,可以指定要使用的字符编码;否则,InterSystems IRIS会根据目标选择编码: - **如果输出目标是文件或二进制流,则默认值为`“UTF-8”`**。 - 如果输出目标是字符串或字符流,则默认`为"UTF-16"`。 对于InterSystems IRIS读取的任何`XML`文档,文档的XML声明应该指示该文件的字符编码,并且文档应该按照声明的方式进行编码。例如: ``` ``` 但是,如果文档中未声明字符编码,InterSystems IRIS将假定: - 如果输出目标是文件或二进制流,则默认值为`“UTF-8”`。 - 如果输出目标是字符串或字符流,则默认为`"UTF-16"`。 # 选择文档格式 使用`XML`文档时,必须知道将文档映射到InterSystems IRIS类时要使用的格式。同样,在创建`XML`文档时,需要指定编写文档时要使用的文档格式。`XML`文档格式如下: - 文字表示文档是对象实例的文字副本。在大多数情况下,即使在使用`SOAP`时,也使用文字格式。除非另有说明,否则文档中的示例均使用文字格式。 - 编码的意思是按照`SOAP 1.1`标准或`SOAP 1.2`标准中描述的编码。`SOAP1.1`和`SOAP1.2`的细节略有不同。 以下小节显示了这些文档格式之间的差异。 ## 文字格式 ```java Klingman,Julie G. 1946-07-21 W897 Bensonhurst 60302 Jung,Kirsten K. Xiang,Charles R. Frith,Terry R. ``` ## 编码格式 相比之下,下面的示例以编码格式显示相同的数据: ```java ... Jung,Kirsten K. ... Quixote,Umberto D. ... Chadwick,Mark L. ... Klingman,Julie G. 1946-07-21 W897 Bensonhurst 60302 ... ``` 请注意编码版本中的以下差异: - 输出的根元素包括`SOAP`编码命名空间和其他标准命名空间的声明。 - 本文档包括同一级别的人员、地址和医生元素。`Address`和`Doctor`元素列出了引用它们的`Person`元素使用的唯一`ID`。每个对象值属性都是这样处理的。 - 顶级`Address`和`Doctor`元素的名称与各自类的名称相同,而不是与引用它们的属性名称相同。 - 编码格式不包括任何属性。`GroupID`属性被映射为`Person`类中的属性。在文字格式中,此属性被投影为特性。但是,在编码版本中,属性被投影为元素。 - 对集合的处理方式不同。例如,列表元素具有属性`ENC:arrayType`.。 - 每个元素都有一个`xsi:type`属性的值。 注意:对于`SOAP1.2`,编码版本略有不同。要轻松区分版本,请检查SOAP编码命名空间的声明: - 对于`SOAP1.1,SOAP`编码命名空间为`"http://schemas.xmlsoap.org/soap/encoding/"` - 对于`SOAP1.2,SOAP`编码命名空间为`"http://schemas.xmlsoap.org/wsdl/soap12/"` 除非解析器可以使用这些其他模式,否则验证将失败。特别是对于WSDL文档,有时需要下载所有模式并编辑主模式以使用正确的位置。 它尝试解析所有实体,包括所有外部实体。(其他XML解析器也会这样做。)。这一过程可能很耗时,具体取决于它们所在的位置。具体地说,`Xerces `使用网络访问器来解析一些URL,并且实现使用阻塞I/O。因此,不会超时,网络获取可能会在错误条件下挂起,这在实践中很少见。 此外,`Xerces`不支持`https`;也就是说,它不能解析位于`https`位置的实体。 如果需要,可以创建自定义实体解析器,也可以禁用实体解析; # IRIS支持的标准 IRIS XML支持遵循以下标准: - XML 1.0 (https://www.w3.org/TR/REC-xml/) - Namespaces in XML 1.0 (https://www.w3.org/TR/REC-xml-names/) - XML Schema 1.0 (https://www.w3.org/TR/xmlschema-0/, https://www.w3.org/TR/xmlschema-1/, https://www.w3.org/TR/xmlschema-2/) - XPath 1.0 as specified by https://www.w3.org/TR/xpath - SOAP 1.1标准第5节指定的SOAP 1.1编码。 - SOAP1.2编码,如第3节第2部分: Adjuncts (https://www.w3.org/TR/soap12-part2/) of the SOAP 1.2 standard. - XML Canonicalization Version 1.0 (also known as inclusive canonicalization), as specified by https://www.w3.org/TR/xml-c14n. - XML Exclusive Canonicalization Version 1.0 as specified by https://www.w3.org/TR/xml-exc-c14n/, including the InclusiveNamespaces PrefixList feature (https://www.w3.org/TR/xml-exc-c14n/#def-InclusiveNamespaces-PrefixList) - XML Encryption (https://www.w3.org/TR/xmlenc-core/) InterSystems IRIS支持使用RSA-OAEP或RSA-1.5进行密钥加密,并支持使用AES-128、AES-192或AES-256对邮件正文进行数据加密。 - XML Signature using Exclusive XML Canonicalization and RSA SHA-1 (https://www.w3.org/TR/xmldsig-core/) InterSystems IRIS提供两个XSLT处理器: - Xalan处理器支持XSLT 1.0。 - Saxon处理器支持XSLT 2.0。 **注意:InterSystems IRIS不支持在一个元素中有多个名称相同的属性,每个属性位于不同的名称空间中。**
文章
Qiao Peng · 三月 5, 2021

InterSystems IRIS 元素周期表

InterSystems IRIS 元素周期表 PDF 版本: GIT 源: InterSystems IRIS 是一个具有许多功能的数据平台。 这些功能和相关的 IRIS 主题都体现在元素周期表中。
文章
姚 鑫 · 三月 1, 2021

第二章 InterSystems SQL基础

# 第二章 InterSystems SQL基础 本章概述了InterSystems SQL的特性,特别是那些SQL标准未涵盖的特性,或者与InterSystems IRIS®数据平台统一数据架构相关的特性。 本教程假定读者具备SQL知识,并不是为介绍SQL概念或语法而设计的。 本章讨论以下主题: - 表 - 查询 - 权限 - 数据显示选项 - 数据排序类型 - 执行SQL # 表 在InterSystems SQL中,数据显示在表中。每个表都包含许多列。一个表可以包含零个或多个数据值行。以下术语大体上等效: 数据术语 | 关系数据库术语| InterSystems IRIS术语 ---|---|--- 数据库 | 架构| 包 数据库 | 表 | persistent class(持久类) 字段 | 列 | 属性 记录 | 行 | 表有两种基本类型:基表(包含数据,通常简称为表)和视图(基于一个或多个表提供逻辑视图)。 ## 模式与架构 SQL模式提供了一种将相关表,视图,存储过程和缓存查询的集合进行分组的方法。模式的使用有助于防止表级别的命名冲突,因为表,视图或存储过程的名称在其模式内必须唯一。应用程序可以在多个架构中指定表。 SQL模式与持久性类包相对应。通常,模式与其相应的程序包具有相同的名称,但是由于不同的模式命名约定或故意指定了不同的名称,因此这些名称可能有所不同。模式到程序包的映射在SQL到类名的转换中有进一步描述。 **模式是在特定的名称空间中定义的。模式名称在其名称空间内必须是唯一的。将第一个项目分配给它时,会自动创建一个模式(及其对应的程序包),从中删除最后一个项目时,会自动将其删除。** 可以指定一个限定或不限定的SQL名称,限定名称指定模式:schema.name。 非限定名不指定模式名。 如果不指定模式,InterSystems IRIS将提供如下模式: - 对于DDL操作,InterSystems IRIS使用系统范围的默认架构名称。此默认值可配置。它适用于所有名称空间。 - 对于DML操作,InterSystems IRIS可以使用用户提供的模式搜索路径或系统范围内的默认模式名称。在动态SQL,嵌入式SQL和SQL Shell中,使用了不同的技术来提供模式搜索路径。 DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用 DCL(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL 要查看名称空间内的所有现有模式,请执行以下操作: 1. 在管理门户中,选择“系统资源管理器”,然后选择“ SQL”。使用页面顶部的Switch选项选择一个名称空间;这将显示可用名称空间的列表。选择一个名称空间。 ![image](/sites/default/files/inline/images/tu_pian__1.png) ![image](/sites/default/files/inline/images/2_12.png) 2. 选择屏幕左侧的Schema下拉列表。这将显示当前名称空间中的架构列表。从该列表中选择一个模式;所选名称将出现在“模式”框中。 ![image](/sites/default/files/inline/images/3_10.png) 3. 如果有数据下拉列表允许选择表,视图,过程或缓存的查询,或所有属于模式的所有这些。设置此选项后,单击三角形以查看项目列表。如果没有项目,则单击三角形无效。 ![image](/sites/default/files/inline/images/4_4.png) # 查询 在InterSystems SQL中,可以通过查询查看和修改表中的数据。粗略地说,查询有两种形式:查询数据(SELECT语句)和修改数据(INSERT,UPDATE和DELETE语句)。 可以通过多种方式使用SQL查询: - 在ObjectScript中使用嵌入式SQL。 - 在ObjectScript中使用动态SQL。 - 调用使用CREATE PROCEDURE或CREATE QUERY创建的存储过程。 - 使用类查询。 - 使用来自各种其他环境的ODBC或JDBC接口。 # 权限 InterSystems SQL提供了一种通过权限来限制对表、视图等的访问的方法。 # 数据显示选项 InterSystems SQL使用SelectMode选项来指定如何显示或存储数据。 可用的选项有Logical、Display和ODBC。 数据在内部以逻辑模式存储,并且可以在这些模式中的任何一种中显示。 通过使用`LogicalToDisplay()`、`LogicalToODBC()`、`DisplayToLogical()`和`odbcological()`方法,每个数据类型类都可以在内部逻辑格式和显示格式或ODBC格式之间进行转换。 当显示SQL SelectMode时,将应用LogicalToDisplay转换,并对返回值进行格式化以便显示。 默认的SQL SelectMode是逻辑的; 因此,默认情况下返回值以存储格式显示。 SelectMode影响查询结果集数据显示的格式,SelectMode还影响应该提供数据值的格式,例如在WHERE子句中。 InterSystems IRIS根据存储模式和指定的SelectMode选择合适的转换方法。 所提供的数据值与SelectMode之间的不匹配可能导致错误或错误的结果。 例如,如果`DOB`是一个以`$HOROLOG`逻辑格式存储的日期,并且WHERE子句指定`DOB > 2000-01-01 `(ODBC格式),则SelectMode = ODBC返回预期的结果。 `SelectMode = Display`生成`SQLCODE -146`,无法将日期输入转换为有效的逻辑日期值。 `SelectMode =Logic`将 `2000-01-01`解析为逻辑日期值,并返回零行。 对于大多数数据类型,三种SelectMode模式返回相同的结果。 以下数据类型受SelectMode选项影响: - 日期,时间和时间戳数据类型。 InterSystems SQL支持多种日期,时间和时间戳数据类型(`%Library.Date`,`%Library.Time`,`%Library.PosixTime`,`%Library.TimeStamp`和`%MV.Date`)。除`%Library.TimeStamp`外,这些数据类型对逻辑,显示和ODBC模式使用不同的表示形式。在其中的几种数据类型中,InterSystems IRIS以`$HOROLOG`格式存储日期。此逻辑模式内部表示包括从任意起始日期(1840年12月31日)起的天数的整数,逗号分隔符以及从当天午夜开始的秒数的整数。 InterSystems IRIS将`%PosixTime`时间戳存储为编码的64位带符号整数。在“显示”模式下,日期和时间通常以数据类型的FORMAT参数指定的格式显示,或者当前语言环境的日期和时间格式默认为`%SYS.NLS.Format`。美国语言环境的默认值为`DD / MM / YYYY hh:mm:ss`。在ODBC模式下,日期和时间始终表示为`YYYY-MM-DD hh:mm:ss.fff`。 `%Library.TimeStamp`数据类型还将这种ODBC格式用于逻辑和显示模式。 - `%LIST`数据类型。InterSystems IRIS逻辑模式使用两个非打印字符存储列表,这两个字符出现在列表中的第一个项目之前,并显示为列表项目之间的分隔符。在ODBC SelectMode中,列表项显示时列表项之间带有逗号分隔符。在Display SelectMode中,列表项显示时,列表项之间有空格分隔符。 - 指定`VALUELIST`和`DISPLAYLIST`的数据类型。如果处于显示模式,并且在字段具有`DISPLAYLIST`的表中插入一个值,则输入的显示值必须与`DISPLAYLIST`中的一项完全匹配。 - 空字符串和空BLOB(流字段)。在逻辑模式下,空字符串和BLOB由非显示字符`$CHAR(0)`表示。在显示模式下,它们由空字符串(“”)表示。 SQL SelectMode可以指定如下: - 对于当前进程,请使用`$SYSTEM.SQL.SetSelectMode()`。 - 对于InterSystems SQL Shell会话,请使用SET SELECTMODE命令。 - 使用“显示模式”下拉列表,从管理门户“执行查询”用户界面(系统资源管理器,SQL)获得查询结果集。 - 对于动态SQL `%SQL.Statement`实例,请使用`%SelectMode`属性。 - 对于嵌入式SQL,请使用ObjectScript `#SQLCompile` Select预处理器指令设置。该伪指令允许使用第四个值Runtime,它将选择模式设置为RuntimeMode属性设置为:逻辑,显示或ODBC。 RuntimeMode的默认值为Logical。 - 对于使用SELECTMODE关键字的SQL命令CREATE QUERY,CREATE METHOD,CREATE PROCEDURE和CREATE FUNCTION。 - 通过使用`%EXTERNAL`,`%INTERNAL`和`%ODBCOUT`函数在SQL查询中的单个列。 # 数据排序 Collation种类决定了值的排序和比较方式,它是InterSystems SQL和InterSystems IRIS对象的一部分。 **可以指定排序规则类型作为字段/属性保护的一部分。除非另有说明,否则字符串字段/属性默认为命名空间默认排序规则。默认情况下,字符串的命名空间默认排序规则是SQLUPPER。 SQLUPPER排序规则将字符串转换为大写,以便排序和比较。因此,除非另有说明,字符串排序和比较不区分大小写。** 可以指定排序规则类型作为索引保护的一部分,或者使用索引字段的排序规则类型。 通过将排序函数应用于字段名,SQL查询可以覆盖未保护的字段/属性排序规则类型。ORDER BY子句指定查询的结果集序列;如果指定的字符串字段被保护为SQLUPPER,查询结果顺序不区分大小写。 # 执行SQL InterSystems IRIS支持多种方法来编写和执行SQL代码。其中包括: - 嵌入式SQL:嵌入在ObjectScript代码中的SQL代码。 - 动态SQL:使用`%SQL.Statement`类从ObjectScript中执行的SQL代码。 - `Execute()`方法:使用`%SYSTEM.SQL`类的`Execute()`方法执行SQL代码。 - 包含SQL代码的存储过程,使用CREATE PROCEDURE或CREATE Query创建。 - SQL Shell:从终端界面执行的SQL语句。 - 执行查询界面:从管理门户执行的SQL语句。 可以使用InterSystems IRIS对象(类和方法)执行以下操作: - 持久性类(SQL表)。 - 定义索引。 - 定义并使用类查询。