搜索​​​​

清除过滤器
公告
Claire Zheng · 十月 12, 2023

提前与您心仪的奖品见个面吧(*^▽^*)

Hi 开发者们, 🏆InterSystems开发者社区中文版第二届技术征文大赛 🏆(←点击链接进入参赛页面,浏览所有参赛文章)正在进行中,我们为参赛作者们准备了丰富的奖品,来与您心仪的奖品见个面吧!点击此处了解活动详情。 1. 专家提名奖:活动期间发布文章且成功参赛后,由InterSystems专家评选得出 2. 开发者社区奖:活动期间发布文章且成功参赛后,由社区成员点赞评选得出 3. 入围奖:在征文大赛期间,所有在InterSystems开发者中文社区发布文章且成功参赛的其余用户都将获得特别奖励。 注意:以上示意图仅供参考,具体以实物为准。 欢迎投稿参赛! 快乐分享技术,期待您的大作!✨ 🏆InterSystems开发者社区中文版第二届技术征文大赛 🏆(←点击链接进入参赛页面,浏览所有参赛文章)
公告
Claire Zheng · 十一月 23, 2023

腾讯会议邀请:欢迎参加今晚19:00获奖作品线上分享会

🏆InterSystems开发者社区中文版第二届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)获奖名单已公布! 11月24日19:00-20:00,InterSystems开发者社区将举办“InterSystems第二届技术征文大赛线上分享会”,邀请参赛作者进行作品分享&点评、探讨热门话题,同期还将送出多份幸运奖品,欢迎参会! 特别提醒:今晚拼手速,赢取幸运奖品,请提前准备好自己的社区主页链接,以便快速填写(点击头像右上角进入个人主页,复制浏览器链接即可,如:https://cn.community.intersystems.com/user/claire-zheng) 会议主题:InterSystems开发者社区第二届技术征文大赛线上分享会会议时间:2023/11/24 19:00-20:00 (GMT+08:00) 中国标准时间 - 北京 点击链接入会,或添加至会议列表:https://meeting.tencent.com/dm/a7BNMvn2Sqx4 #腾讯会议:306-552-860 复制该信息,打开手机腾讯会议即可参与
文章
Claire Zheng · 一月 15

InterSystems第三次入围Gartner云数据库管理系统魔力象限,2023年荣膺“挑战者”称号

Gartner魔力象限是业内知名的分析报告,针对特定市场进行严谨、基于事实的研究后发布的魔力象限报告,可为用户提供全面视图,以便其了解在高速增长、差异化明显的市场中供应商的相对位置。在魔力象限中,供应商被定位在四个象限中:领导者(Leader)、挑战者(Challenger)、远见者(Visionary)和利基玩家(Niche Player)。 2023年年底,在 Gartner 2023年最新发布的“云数据库管理系统(Cloud DBMS)魔力象限”中,InterSystems再次荣膺“挑战者”(Challenger)称号,这是InterSystems第三次入围这一报告并得到认可(2022年“远见者”,2021年“挑战者”)。 Gartner此次评估面向包括InterSystems在内的19家云数据库管理系统供应商进行。我们相信,Gartner魔力象限“挑战者”这一定位,证明了InterSystems有能力挑战现状、推动创新,为市场提供独特的解决方案。 InterSystems IRIS数据平台提供的结缔组织(connective tissue)可将不同来源的分散数据转换为单一、完整的视图,从而在医疗保健、金融服务和供应链等关键市场中为具有关键数据需求的客户提供更好的结果。InterSystems提供了一种独特的智能数据编织方式,可提供高性能多模型和多工作负载数据库管理、智能数据服务、互操作性和分析能力。 IInterSystems数据平台主管Scott Gnau表示:“‘挑战者’这一称号证实了我们专注于创新并为客户提供价值的承诺。InterSystems是此次Gartner魔力象限中唯一的‘挑战者’,这足以说明我们不断超越,在云数据库管理方面取得的成功,InterSystems成功帮助企业在云中实现了数据集成、处理和分析。” 查看《2023云数据库管理系统魔力象限》免费副本:点击链接。 官方报道链接:Gartner® 推出2023年云数据库管理系统魔力象限™,InterSystems荣膺“挑战者”称号 ============ Gartner 免责声明:Gartner 不支持其研究出版物中描述过的任何供应商、产品或服务,也不建议技术用户只选择具有高评级或其他荣誉的供应商。Gartner研究出版物由Gartner研究机构的意见构成,不应被视为事实陈述。Gartner 不为本研究提供任何明示或暗示的担保,包括任何适销性或适用于特定用途的担保。 GARTNER和魔力象限(MAGIC QUADRANT)是 Gartner, Inc. 和/或其附属公司在美国境内和境外的注册商标,已获准用于此处。保留所有权利。
公告
jieliang liu · 十月 18, 2023

[视频] FHIR 上的临床警报和通知:将医疗保健行动引擎纳入工作流程

你好社区, 观看此视频,了解如何将 FHIR、CDS Hooks 和低代码医疗保健规则编辑器组合成一个易于使用、功能强大的平台,以帮助确保以最佳方式传递信息: ⏯ FHIR 临床警报和通知:将医疗保健行动引擎纳入 2023 年全球峰会工作流程 🗣演讲者:@Frank.Pandolfe,InterSystems 临床产品经理 订阅我们的Bilibili 频道InterSystems Developers以获取最新更新!
文章
Jingwei Wang · 六月 8, 2023

Embedded python 重新加载更新后的python模块

InterSystems IRIS中重新加载更新后的Python模块的方式和直接使用Python 重新加载模块的方式是一样的。 在Python3.4 之后到版本中,直接使用Python 重新加载模块的方式如下: import importlib ​ importlib.reload(module) 同样,在在InterSystems IRIS中重新加载Python模块的方式与其没有区别,示例如下: ClassMethod Hello() As %Status { Set sc = $$$OK Set sm = ##class(%SYS.Python).Import("sample") Set importlib = ##class(%SYS.Python).Import("importlib") do importlib.reload(sm) write sm.hello() Return sc } ​
文章
Claire Zheng · 五月 9, 2023

【视频】老卢问答:与其他亚太国家相比,中国医疗信息化发展有什么特色?

2023年4月,InterSystems亚太区总经理老卢(Luciano Brustia)回到了阔别三年多的北京,针对一些热门问题分享了自己的观点:北京在疫情前后有什么不同?InterSystems是如何进行本土化创新服务中国市场的?与其他亚太国家相比,中国医疗信息化发展有什么特色?医疗信息化未来的发展方向和趋势是什么?
文章
jieliang liu · 四月 17

[视频]了解HL7 FHIR 资源(Resources)的架构

各位开发者好 欢迎观看InterSystems Bilibili官方频道的最新视频 InterSystems Developers Bilibili: ⏯ Understanding the Structure of HL7 FHIR Resources 了解 HL7 FHIR 资源的结构。了解如何在 HL7 FHIR 网站上查看和阅读资源的树形表示法,从而了解资源中包含的不同数据元素。此外,还可了解如何查看 XML、JSON 或 Turtle 格式的资源,以及在哪里可以找到 FHIR 资源的通用建模语言 (UML) 图。 观看新视频!
问题
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执行的时候解密出来,这样操作的话,加密基本都行吧
问题
e Neo · 七月 31, 2023

VSCode 中InterSystems Server Manager 插件配置https方式连接提示Server Could not be accessed by ‘“_system”

vscode通过插件:intersystems Server Manager 连接测试开发环境,配置连接后无法使用 配置参数: "intersystems.servers": { "local": { "webServer": { "scheme": "http", "host": "127.0.0.1", "port": 52773 }, "test": { "webServer": { "scheme": "https", "host": "xxx.xxx.xxx.xxx", "port": 2443 }, "description": "test", "username": "_system" } 错误信息: Server Could not be accessed by ‘“_system” 看起来是_system用户没有通过vscode接入平台的权限,如果换成SuperUser之类的客户是否可以接入?
公告
Claire Zheng · 十一月 23, 2023

InterSystems开发者社区中文版第二届技术征文大赛获奖名单公布!

大家好! 终于到了宣布获奖名单的时间! 🏆InterSystems开发者社区中文版第二届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)已经结束,此次大赛收到了来自8名参赛者的12篇参赛文章,最终进入评选的文章为10篇,感谢大家的积极参与! 以下是获奖名单! 专家提名奖:活动期间发布文章且成功参赛后,由InterSystems专家评选得出 🥇第一名,姚 鑫,作品:浅谈一下个人基于IRIS后端业务开发框架的理解 🥈第二名,王喆 👀, 作品:IRIS自动安装集群--manifest(安装清单) 🥉第三名,Yuxiang Niu,作品:关于Cache中查看关键锁的几种方式 🏆第四名,liu bo,作品:通过自定义数据类型实现参数统一验证优化重构代码 开发者社区奖:活动期间发布文章且成功参赛后,由社区成员点赞评选得出 🥇第一名,Yongfeng Hou ,作品:IRISHealth在DBServer和ECPApp之间启用SSL/TLS安全双向认证加密通信 🥈第二名,Meng Cao ,作品:使用支持SSL的ODBC连接IRIS数据库 🥉第三名,water huang,作品:进程表 🏆第四名,haoyinhang Hao ,作品:通过XSL自动生成消息模型 恭喜获奖者! 感谢大家的积极参与! 奖品领取 请获奖者点击【获奖者信息提交】提交信息,以便我们及时与您联系奖品寄送事宜。 提醒:填写前请准备好自己的社区主页链接(点击头像右上角进入个人主页,复制浏览器链接即可,如:https://cn.community.intersystems.com/user/claire-zheng)
问题
郭 恩意 · 九月 5, 2023

执行SQL时报错504

执行SQL语句查询数据时,提示unexpected status code, unable to process HyperEvent:Gateway timeout(504) 您好,方便告知您的联系方式?我们会直接联系您处理问题。 黄嘉 InterSystems
公告
Michael Lei · 八月 7, 2023

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

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

搜索非结构化文本数据

亲身体验 SQL 搜索,它是 InterSystems IRIS® 数据平台中的一个工具,可让您快速搜索存储在 SQL 表中的大量非结构化文本数据(含练习,15m) 。
文章
Kelly Huang · 八月 2, 2023

在本地的K8s 上部署一台FHIR服务器

这是一个使用 IKO 在 k3d 上部署 iris-oauth-fhir 的示例。 * iris-oauth-fhir 是一个示例,用于部署带有 OAuth2 身份验证功能的 FHIR 服务器,InterSystems IRIS for Health 作为资源服务器,Google OpenId 则作为授权服务器。 * k3d 作为一个轻量级封装器,用于在 docker 中运行 k3s (Rancher Lab 的最小 Kubernetes 发行版) * IKO 是一个在 Kubernetes 上部署 InterSystems IRIS for Health 的工具。 2. 目录表 1. K3D + iris-operator + iris-oauth-fhir 2. Table of Contents 2.1. Prerequisites 2.2. Installation 2.2.1. Warning 2.2.2. Build iris-oauth-fhir image 2.2.3. Download k3d 2.2.4. Create a registry 2.2.4.1. add registry to hosts 2.2.4.1.1. mac 2.2.4.1.2. windows 2.3. Start the culster 2.3.1. Check the cluster 2.3.2. Install iris-operator 2.3.2.1. install helm 2.3.2.2. install iris-operator 2.3.3. Install iriscluster 2.3.3.1. What are we going to deploy? 2.3.3.2. Prepare the deployment for the data node 2.3.3.3. Prepare the deployment for the web gateway node 2.3.4. Deploy iriscluster 2.3.5. Deploy ingress 2.4. Easy scale 2.5. Quick init 2.6. Quick deployment 2.1 须知 Docker Git Helm k3d kubectl IKO 2.2 安装 2.2.1 警告 这将是很值得经历的一段漫长的过程,您将学到很多关于 Kubernetes 和 InterSystems IRIS for Health 的知识。 2.2.2 构建 iris-oauth-fhir 镜像 首先克隆下面这个存储库 git clone https://github.com/grongierisc/iris-oauth-fhir 然后按照 README.md 中的说明构建 iris-oauth-fhir 镜像。 接下来我们安装 k3d。 2.2.3 下载k3d curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash 2.2.4 创建一个注册表 我们必须创建一个注册表,因为目前 Docker Desktop 还没有将其内部注册表用作容器 ID 注册表。有一项实验性功能可将 Docker Desktop 注册表用作容器 ID 注册表,但目前还不稳定。因此,我们将使用 k3d 创建一个注册表。 k3d registry create registry.localhost --port 5000 该命令将在端口 5000 上创建一个注册表。我们将用它来推送图像。这是在 k3d 中使用图像的唯一方法。 现在,我们将把注册表添加到 hosts 文件中。这样,我们就能将其用作 DNS 名称。这一点很重要,因为我们将在部署中使用它。这个 DNS 名称对于我们的主机和 Kubernetes 都是一样的。 2.2.4.1 将注册表添加到主机中 2.2.4.1.1. mac sudo sh -c 'echo "127.0.0.1 k3d-registry.localhost" >> /etc/hosts' 2.2.4.1.2 windows Open Notepad as an administrator. Open the file C:\Windows\System32\Drivers\etc\hosts. Add the following line to the end of the file: 127.0.0.1 k3d-registry.localhost. Save the file and close Notepad. 2.3 启动群集 现在,我们将使用此命令行启动群集: k3d cluster create demo --servers 1 --agents 2 --volume $(pwd)/k8s/data:/var/lib/rancher/k3s/storage@all --registry-use k3d-registry.localhost:5000 -p "8081:80@loadbalancer" -p "4443:443@loadbalancer" --api-port 6550 --volume "$(pwd)/k8s/config/traefik-config.yaml:/var/lib/rancher/k3s/server/manifests/traefik-config.yaml" 有哪些选项 --servers 1 will create one server node, server nodes are the master nodes. --agents 2 will create two agent nodes, agent nodes are the worker nodes. --volume $(pwd)/k8s/data:/var/lib/rancher/k3s/storage@all will mount the k8s/data folder to the cluster. This is where we will store our data. --registry-use k3d-registry.localhost:5000 will use the registry we created before. -p "8081:80@loadbalancer" -p "4443:443@loadbalancer" will expose the port 8081 and 4443 to the host. This is where we will access our cluster. --api-port 6550 will expose the port 6550 to the host. This is where we will access the Kubernetes API. --volume "$(pwd)/k8s/config/traefik-config.yaml:/var/lib/rancher/k3s/server/manifests/traefik-config.yaml" will mount the k8s/config/traefik-config.yaml file to the cluster. This is the configuration file for the ingress controller. This will configure the ingress controller to allow traefik to route the data on the secure port without verification of the certificate. # k8s/config/traefik-config.yaml apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: traefik namespace: kube-system spec: valuesContent: |- globalArguments: - "--serversTransport.insecureSkipVerify=true" 2.3.1 检查群集 为了让你了解 Kubernetes 集群的样子,下面是一个示意图: kubectl get nodes 你应该看到如下的内容 NAME STATUS ROLES AGE VERSION k3d-demo-server-0 Ready control-plane,master 10m v1.21.2+k3s1 k3d-demo-agent-0 Ready <none> 10m v1.21.2+k3s1 k3d-demo-agent-1 Ready <none> 10m v1.21.2+k3s1 这意味着集群已准备就绪。现在,您拥有了一个包含一个主节点和两个工作节点的 Kubernetes 集群。 2.3.2 安装 iris-operator 我们现在开始安装 iris-operator。iris-operator是一个 Kubernetes 操作器,用于在 Kubernetes 上部署 InterSystems IRIS for Health。它可在 WRC 或 InterSystems Container Registry 上获取。我们将使用 3.6.6.100 版本。 例如,如果容器注册表有 IKO,可以使用此命令行: docker pull containers.intersystems.com/intersystems/iris-operator-amd:3.6.6.100 现在,我们将标记这个image,将其推送到注册表中: docker tag intersystems/iris-operator-amd:3.6.6.100 k3d-registry.localhost:5000/intersystems/iris-operator-amd:3.6.6.100 继续推送 docker push k3d-registry.localhost:5000/intersystems/iris-operator-amd:3.6.6.100 要安装 Iko 操作员,我们将使用 helm。Helm 是 Kubernetes 的软件包管理器。可在here下载。 2.3.2.1 安装 helm curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh 2.3.2.2 安装 iris-operator helm install intersystems k8s/iris_operator_amd-3.6.6.100/chart/iris-operator 要检查 operator 是否正在运行,可以使用此命令行: kubectl --namespace=default get deployments -l "release=intersystems, app=iris-operator-amd" 你应该看到👇🏻的内容 NAME READY UP-TO-DATE AVAILABLE AGE intersystems-iris-operator 1/1 1 1 2m 2.3.3 安装 iriscluster 2.3.3.1 我们要部署什么 我们需要部署👇🏻的架构 One data node One web gateway node 正是我们在这个 docker-compose 文件中看到的内容: # docker-compose.yaml version: '3.6' services: iris: image: iris-oauth-fhir-iris:latest build: context: . dockerfile: Dockerfile restart: always ports: - 1972 - 8083:52773 - 53773 volumes: - ./:/irisdev/app/ - ./data:/data environment: - ISC_CPF_MERGE_FILE=/irisdev/app/common.cpf - ISC_OAUTH_SECRET_PATH=/irisdev/app/misc/auth/secret.json - ISC_DATA_DIRECTORY=/data/iris webgateway: build: context: ./webgateway args: link: 'iris' port: '52773' image: proxyiris:latest ports: - "8080:80" - "4443:443" volumes: - ./webgateway/CSP.ini:/opt/webgateway/bin/CSP.ini - ./webgateway/httpd-csp.conf:/usr/local/apache2/conf/extra/httpd-csp.conf 几个注意的点: 我们在数据节点中使用了 iris-oauth-fhir-iris:latest 镜像。 该镜像使用三个环境变量: ISC_CPF_MERGE_FILE 用于合并 common.cpf 文件。 ISC_OAUTH_SECRET_PATH 用于设置秘密文件的路径。 ISC_DATA_DIRECTORY 用于设置数据目录。 网络网关节点使用 proxyiris:latest 映像。 该镜像使用两个volumes: CSP.ini 用于配置 CSP 应用程序。 httpd-csp.conf 用于配置 apache 服务器。 因此,在 Kubernetes 部署中,我们必须做同样的事情。 这意味着我们必须 数据节点 向数据节点提供 common.cpf 文件。 同样也要提供 secret.json 文件,以配置 OAuth2 身份验证。 数据目录将作为volume加载。 对于网络网关节点: 向网络网关节点提供一些 CSP.ini 文件。 同样,httpd-csp.conf 文件用于配置 apache 服务器。 2.3.3.2 准备数据节点的部署 为了向数据节点提供 common.cpf 文件,我们将使用配置映射。配置映射是用于存储配置文件的 Kubernetes 对象。我们将使用本版本库中的 common.cpf 文件。 下面是配置映射的示意图: 要创建配置映射,我们将使用以下命令行: kubectl create cm iriscluster-config --from-file common.cpf 为了向数据节点提供 secret.json 文件,我们将使用一个secret。secret是用于存储敏感数据的 Kubernetes 对象。我们将使用该版本库中的 secret.json 文件。 要创建secret,我们将使用以下命令行: kubectl create secret generic iriscluster-secret --from-file misc/auth/secret.json 要将数据目录挂载为volume,这将是自动的。我们将使用 IrisCluster 定义拓扑部分的存储字段,并将其作为默认设置。 我们仍需将 iris-oauth-fhir-iris:latest 映像推送到注册表。我们将使用与之前相同的命令行: docker tag iris-oauth-fhir-iris:latest k3d-registry.localhost:5000/iris-oauth-fhir-iris:latest docker push k3d-registry.localhost:5000/iris-oauth-fhir-iris:latest 2.3.3.3 准备网络网关节点的部署 网络网关节点有点不同,因为我们不会使用 proxyiris:latest 映像。我们将使用 intersystems/webgateway:2023.1.1.380.0-linux-amd64 映像。该镜像可从 InterSystems Container Registry. 上获取。该镜像是原始 Web 网关镜像。 原始网络网关镜像与 proxyiris 镜像有何不同? proxyiris 已用自签证书预配置了 https。 因此,我们必须配置网络网关使用 https。为此,我们将使用一个secret。secret是一个用于存储敏感数据的 Kubernetes 对象。我们将使用该版本库中的 tls.crt 和 tls.key 文件。 要创建secret,我们将使用以下命令行: kubectl create secret tls tls-secret --key k8s/tls/tls.key --cert k8s/tls/tls.crt 好消息是,我们无需配置 CSP 应用程序和 apache 服务器。我们将使用 IrisCluster 定义中拓扑部分的 applicationPaths 和 alternativeServers 字段,并将它们作为默认设置。 在 docker-compose.yaml 文件中,我们必须配置 CSP.ini 文件和 httpd-csp.conf 文件。在 Kubernetes 部署中,我们不需要这样做,因为我们无法提前知道数据节点的 IP 地址。但我们仍然需要告诉 IKO 连接到数据节点的登录名和密码。为此,我们将使用一个secret。secret是一个用于存储敏感数据的 Kubernetes 对象。我们将使用该版本库中的 iris-webgateway-secret 文件。 要创建secret,我们将使用以下命令行: kubectl create secret generic iris-webgateway-secret --from-literal='username=CSPSystem' --from-literal='password=]]]U1lT' 我们仍然需要将 intersystems/webgateway:2023.1.1.380.0-linux-amd64 映像推送到注册表中。我们将使用与之前相同的命令行 docker tag containers.intersystems.com/intersystems/webgateway:2023.1.1.380.0-linux-amd64 k3d-registry.localhost:5000/intersystems/webgateway:2023.1.1.380.0-linux-amd64 docker push k3d-registry.localhost:5000/intersystems/webgateway:2023.1.1.380.0-linux-amd64 2.3.4 部署 iriscluster 现在,我们将安装 IrisCluster。IrisCluster 是一种 Kubernetes 自定义资源,用于在 Kubernetes 上部署 InterSystems IRIS for Health。它定义在 k8s/config/iris-sample.yaml 文件中。 # k8s/config/iris-sample.yaml ## uncommented fields deploy one InterSystems IRIS data server ## WARNING: default password is not reset, to do so include ## configSource below ## include commented fields for purposes described; see documentation at ## https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=AIKO_clusterdef_sample ## update image tags (from ":tag") before using; see list of available images at ## https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_containerregistry apiVersion: intersystems.com/v1alpha1 kind: IrisCluster metadata: name: sample spec: ## provide InterSystems IRIS license key if required # licenseKeySecret: # name: iris-key-secret ## specify files used to customize the configurations of ## InterSystems IRIS nodes, including passwordHash parameter ## to set the default password, securing InterSystems IRIS configSource: name: iriscluster-config ## provide repository credentials if required to pull images # imagePullSecrets: # - name: iris-pull-secret ## provide VolumeSource specifications for certificates for each desired TLS feature ## "common" enables all TLS features, but each particular feature's property is given priority over "common" tls: # common: # secret: # secretName: tls-certs # mirror: # csi: # driver: secrets-store.csi.k8s.io # readOnly: true # volumeAttributes: # secretProviderClass: "my-provider" webgateway: secret: secretName: tls-secret ## specify platform-specific storage class used to allocate storage ## volumes (default: use platform-defined class) # storageClassName: iris-ssd-storageclass ## select update strategy (default: RollingUpdate) # updateStrategy: # type: RollingUpdate ## create external IP address(es)for the cluster ## ("type: LoadBalancer" and "externalTrafficPolicy: Local" are required) # serviceTemplate: # spec: # type: LoadBalancer # externalTrafficPolicy: Local ## define persistent volumes (to be mounted by "volumeMounts:" in node definitions) # volumeClaimTemplates: # - metadata: # name: extra-disk # spec: # accessModes: # - ReadWriteOnce # resources: # requests: # storage: 2Gi ## define ephemeral volumes (to be mounted by "volumeMounts:" in node definitions) volumes: - name: auth-config secret: secretName: iriscluster-secret ## topology: defines node types to be deployed; only "data:" is required topology: data: image: k3d-registry.localhost:5000/iris-oauth-fhir-iris:latest ## set enviroment variable for the container podTemplate: spec: env: - name: ISC_OAUTH_SECRET_PATH value: /auth/secret.json ## deploy a sharded cluster of data nodes and (optionally) compute ## nodes; if not included, "data:" definition in "topology:" deploys ## a single data server, "compute:" adds application servers # shards: 2 ## deploy mirrored data nodes or data server (default: nonmirrored) # mirrored: true ## override default size and other attributes of predefined storage ## volumes for data nodes (additional volume names: storageWIJ, ## storageJournal1, storageJournal2); can also be included in ## "compute:" definition # storageDB: # resources: # requests: # storage: 10Gi # storageClassName: my-storageclass ## constrain nodes to platform-specific availability zones (can be ## included in other node definitions) # preferredZones: # - us-east1-a # - us-east1-b ## mount volumes defined in "volumeClaimTemplates:" (persistent) and "volumes:" (ephemeral) volumeMounts: - mountPath: "/auth" name: auth-config ## deploy webgateway (web server) nodes webgateway: image: k3d-registry.localhost:5000/intersystems/webgateway:2023.1.1.380.0-linux-amd64 type: apache replicas: 1 applicationPaths: - /csp/sys - /fhir/r4 alternativeServers: LoadBalancing loginSecret: name: iris-webgateway-secret ## deploy System Alerting and Monitoring (SAM) with InterSystems IRIS # sam: # image: containers.intersystems.com/intersystems/sam:tag ## deploy InterSystems API Manager (IAM) with InterSystems IRIS # iam: # image: containers.intersystems.com/intersystems/iam:tag 内容太多了!别担心,我们一一做解释 让我们从 configSource 部分开始: ## specify files used to customize the configurations of ## InterSystems IRIS nodes, including passwordHash parameter ## to set the default password, securing InterSystems IRIS configSource: name: iriscluster-config 这是我们之前创建的配置映射。我们将在这里找到 common.cpf 文件。 接下来是 tls 部分: ## provide VolumeSource specifications for certificates for each desired TLS feature ## "common" enables all TLS features, but each particular feature's property is given priority over "common" tls: webgateway: secret: secretName: tls-secret 这是我们之前创建的secret。我们将在这里找到 tls.crt 和 tls.key 文件。 接下来是volumes部分: ## define ephemeral volumes (to be mounted by "volumeMounts:" in node definitions) volumes: - name: auth-config secret: secretName: iriscluster-secret 这是我们之前创建的secret。我们将在这里找到 secret.json 文件。 IrisCluster 定义了如何在 Kubernetes 上部署 InterSystems IRIS for Health。重要的部分是拓扑部分。该部分定义了要部署的节点。在本例中,我们将部署一个数据节点和一个网络网关节点。 让我们看看数据节点的定义: ## topology: defines node types to be deployed; only "data:" is required topology: data: image: k3d-registry.localhost:5000/iris-oauth-fhir-iris:latest ## set enviroment variable for the container podTemplate: spec: env: - name: ISC_OAUTH_SECRET_PATH value: /auth/secret.json volumeMounts: - mountPath: "/auth" name: auth-config 图像字段定义了要使用的图像。我们将使用之前构建的映像。podTemplate 字段定义 Kubernetes pod 模板。env 字段定义要在容器中设置的环境变量。我们将使用该环境变量来设置将创建的秘密文件的路径。podTemplate 相当于 docker-compose.yaml 文件中的 podTemplate。volumeMounts 字段定义了要挂载到容器中的卷。我们将挂载之前创建的秘密。 现在让我们看看网络网关节点的定义: ## deploy webgateway (web server) nodes webgateway: image: k3d-registry.localhost:5000/intersystems/webgateway:2023.1.1.380.0-linux-amd64 type: apache replicas: 1 applicationPaths: - /csp/sys - /fhir/r4 alternativeServers: LoadBalancing loginSecret: name: iris-webgateway-secret 图像字段定义了要使用的图像。类型字段定义要部署的网络网关类型。我们将使用 apache。副本字段定义要部署的网络网关的数量。我们将部署一个。applicationPaths 字段定义路由到网络网关的应用程序路径。我们将把 /csp/sys 和 /fhir/r4 路由到网络网关。alternativeServers 字段定义要使用的替代服务器。我们将使用 LoadBalancing。loginSecret 字段定义连接网关和数据节点的登录名和密码。 要部署 IrisCluster,我们将使用以下命令行: kubectl apply -f k8s/config/iris-sample.yaml 要检查 IrisCluster 是否正在运行,可以使用此命令行: kubectl get iriscluster 几分钟后,可以看到👇🏻这些信息 NAME SHARDS MIRRORED STATUS AGE sample Running 2m16s 要了解 IrisCluster 的详细信息,可以使用此命令行: kubectl describe iriscluster sample 要检查 pod 是否正在运行,可以使用此命令行: kubectl get pods 几分钟后,可以看到👇🏻这些信息 NAME READY STATUS RESTARTS AGE intersystems-iris-operator-amd-87c955c9c-4zmrj 1/1 Running 0 44m sample-data-0 1/1 Running 0 4m19s sample-webgateway-0 0/1 ContainerCreating 0 17s 要获取 pod 的详细信息,可以使用以下命令行 kubectl describe pod sample-data-0 2.3.5 部署 ingress 现在,我们将部署一个ingress。ingress 是一个 Kubernetes 对象,用于将流量路由到正确的 pod。我们将使用 k8s/config/ingress.yaml 文件。 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress namespace: default spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: sample-webgateway port: number: 443 该ingress将把流量路由到端口为 443 的 sample-webgateway 服务。 要部署ingress,我们将使用以下命令行 kubectl apply -f k8s/config/ingress.yaml 要检查ingress是否正在运行,可以使用此命令行: kubectl get ingress 要测试整个过程,可以使用以下命令行: curl -k https://localhost:4443/fhir/r4/metadata 恭喜您!已成功的在 Kubernetes 上部署了 iris-oauth-fhir。 2.4 Easy Scale 如果要创建一个新租户,可以使用 iris-demo.yaml 文件。 基本上,它与 iris-sample.yaml 文件相同,只是改变了租户的名称。 你可以使用此命令行进行部署: kubectl apply -f k8s/config/iris-demo.yaml 您可以使用新的 ingress 将流量路由到新租户。 apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: strip-prefix namespace: default spec: stripPrefix: prefixes: - /sample - /demo --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress namespace: default annotations: traefik.ingress.kubernetes.io/router.middlewares: default-strip-prefix@kubernetescrd spec: rules: - http: paths: - path: /sample pathType: Prefix backend: service: name: sample-webgateway port: number: 443 - path: /demo pathType: Prefix backend: service: name: demo-webgateway port: number: 443 新增两条路线 /sample to route the traffic to the sample-webgateway service. /demo to route the traffic to the demo-webgateway service. 您可以缩放 Compte 节点,但需要License Key。 2.5 快速 init Tag images docker tag iris-oauth-fhir-iris:latest k3d-registry.localhost:5000/iris-oauth-fhir-iris:latest docker tag containers.intersystems.com/intersystems/webgateway:2023.1.1.380.0-linux-amd64 k3d-registry.localhost:5000/intersystems/webgateway:2023.1.1.380.0-linux-amd64 docker tag intersystems/iris-operator-amd:3.6.6.100 k3d-registry.localhost:5000/intersystems/iris-operator-amd:3.6.6.100 Push image docker push k3d-registry.localhost:5000/iris-oauth-fhir-iris:latest docker push k3d-registry.localhost:5000/intersystems/webgateway:2023.1.1.380.0-linux-amd64 docker push k3d-registry.localhost:5000/intersystems/iris-operator-amd:3.6.6.100 2.6 快速部署 删除 cluster k3d cluster delete demo 创建 cluster k3d cluster create demo --servers 1 --agents 2 --volume $(pwd)/k8s/data:/var/lib/rancher/k3s/storage@all --registry-use k3d-registry.localhost:5000 -p "8081:80@loadbalancer" -p "4443:443@loadbalancer" --api-port 6550 --volume "$(pwd)/k8s/config/traefik-config.yaml:/var/lib/rancher/k3s/server/manifests/traefik-config.yaml" 安装 iris-operator helm install intersystems k8s/iris_operator_amd-3.6.6.100/chart/iris-operator 创建配置和Secret kubectl create cm iriscluster-config --from-file common.cpf kubectl create secret generic iriscluster-secret --from-file misc/auth/secret.json kubectl create secret tls tls-secret --key k8s/tls/tls.key --cert k8s/tls/tls.crt kubectl create secret generic iris-webgateway-secret --from-literal='username=CSPSystem' --from-literal='password=]]]U1lT' 部署 IrisCluster: kubectl apply -f k8s/config/iris-sample.yaml 部署 Ingress kubectl apply -f k8s/config/ingress.yaml
公告
Claire Zheng · 三月 26

相聚青岛|InterSystems诚邀您共赴2024 CHINC之约,即日起可预约展会Demo咨询

2024年3月29日-3月31日,由国家卫生健康委医院管理研究所主办、《中国数字医学》杂志社有限公司承办的“2024中华医院信息网络大会(CHINC)”将在青岛国际会展中心(红岛馆)举办。InterSystems诚邀您莅临展会,我们带来了内容丰富的Demo演示,包括:InterSystems IRIS 2024.1新特性、 InterSystems IRIS矢量存储和矢量查询、InterSystems FHIR数据资产化解决方案,以及InterSystems IRIS医疗版互联互通套件解决方案。 2024 CHINC期间,InterSystems在合作伙伴东华医为展位(B3馆-A02)设立Demo演示区,即日起即可预约现场Demo咨询,欢迎点击【此处】注册预约。 Demo演示详情 Demo演示: InterSystems IRIS 2024.1新特性 欢迎点击【此处】注册,预约Demo咨询 矢量查询 快速联机备份 (EAP) 多超级服务器端口SuperServer Ports FHIR R4 and R5 Object Model Generation IRIS for Health 支持 Smart on FHIR 2.0.0 FHIR查询的性能提升 新的监控指标 嵌入式Python BPL editor 灵活的Python版本设置 Demo演示: InterSystems IRIS矢量存储和矢量查询 欢迎点击【此处】注册,预约Demo咨询 InterSystems IRIS 提供全SQL的矢量存储和基于矢量相似度矢量查询能力 让业务数据无需迁移到其它平台就可以矢量化存储和查询 进一步通过集成矢量化语言模型、生成式语言模型,利用本地数据实现检索增强生成 Demo演示: InterSystems FHIR数据资产化解决方案 欢迎点击【此处】注册,预约Demo咨询 数据作为生产要素推动数字经济已成为我国国策。要让数据成为生产资料参与交易,则需满足两个条件:其一是建立数据生产、流通、消费环节中数据语义的一致性,使数据质量可被控制,数据价值可被度量;二是对数据进行按需加工,形成品类众多的半成品、预制件,以便适应各类业务场景的需要。也即:交易双方应对数据的含义和价值达成共识,这是能够交易的前提——这也正如在中国制造业高速发展的三十年中,标准化部件和预制件之于大规模生产的作用一样。 数据资产清单就是一种有助于在交易双方建立共识、进一步计量计价的有力工具。在医疗行业,FHIR可以成为语言基础,而SQL Builder则提供了FHIR数据资产清单。因此,“FHIR 存储库+SQL builder”能够构成盘活数据资产价值的解决方案。 InterSystems作为深耕医疗行业40余年的专业厂商,在IRIS for Health(IRIS医疗版)数据平台中,借助HL7 FHIR标准提供的语义基础,推出了集FHIR存储库、SQL Builder、FHIR API等功能于一体的医疗行业数据资产解决方案,用于满足医疗数据资产化的业务需要。 在本次解决方案展示中,我们将演示如何基于FHIR进行数据资产盘点,如何按需投放资产支撑数据集需求和数据应用,一遍盘活已成规模的行业数据。包括:1)使用SQL Builder投射SQL数据,在SQL上进一步支撑以数据集为基础的业务(数据集交易或BI),其中按需投放、最小化原则是重要的规约,而IRIS提供了这两种规约的直接支持。2)使用API支撑的业务,不仅仅是使用CRUD操作,FHIR的Search操作对于支撑CDSS等业务具有重要意义。 Demo演示: InterSystems IRIS医疗版互联互通套件 欢迎点击【此处】注册,预约Demo咨询 InterSystems IRIS医疗版互联互通套件是一个全面的解决方案,提供了一整套工具和标准,旨在支持互联互通成熟度测评和通过测评之后的数据利用。它提供了满足互联互通成熟度测评的符合性基础,包括数据元与值集标准以及基于互联互通规范的69个服务和53个电子病历共享文档。此外,该套件还赋能数据利用,能够将电子病历共享文档转换成FHIR资源并存储,通过FHIR SQL Builder实现FHIR资源到SQL表的转换,从而支持数据分析,这一功能打通了互联互通和FHIR生态系统,促进了医疗数据的流动和分析。 更多活动|答问卷,领取《FHIR白皮书》! 由HL7中国委员会主持撰写的《FHIR白皮书》包含FHIR的设计路线与版本、基本用法、核心定义解读与适配、FHIR的发布实施、本地化方法、国外典型实践和案例、国内案例、基于FHIR的参考架构等丰富的内容。欢迎点击【此处】答问卷,领取《FHIR白皮书》!