清除过滤器
公告
Claire Zheng · 六月 15, 2022
Hi 开发者们,你或许已经知道了,今年InterSystems全球峰会线下会议再次开启!我们非常期待能在现场见到诸位!
然而,并不是所有的开发者社区成员都有机会参加(我也是!)所以我们决定制作一个很酷的视频收集来自社区成员们问候🎥 无论身在何方,让我们一同以虚拟方式来参加这次伟大的盛会吧!🌏
⬆️要求:您录制一句2-3秒的短视频,视频内容是向我们的社区成员说 “Hi From your country (来自XX的问候,英语视频最佳)”,然后将视频上传至 这里 ,这样,我们可以把来自各地的许多视频剪辑在一起,在2022年全球峰会上展示。您也可以通过开发者社区联系我,将视频直接分享给我。
截止日期:美东时间6月18日(周五)
期待见到你!
公告
Claire Zheng · 六月 23, 2022
嗨,开发者们!欢迎加入第二届InterSystems技术写作大赛!
🐍 InterSystems技术写作大赛:Python 🐍
6月20日至七月20日 延长至7月31日,在社区撰写一篇利用InterSystems技术使用Python的文章,主题自定。
🎁 撰文即得奖 我们为每一位参与此次写作大赛的作者准备了一份特殊礼品!
🏆 优秀文章大奖 AirPods Max; Apple Watch SE; Apple HomePod mini / Apple Pencil
奖品
1. 每个人都是InterSystems技术文章竞赛的赢家! 任何在比赛期间写文章的用户都会得到特别的奖励:
🎁 InterSystems Branded Apple AirTag
🎁 InterSystems Branded Rubik's 9-Panel Cube
2. 专家选择奖 – 文章将由InterSystems的专家进行评判:
🥇 一等奖: Apple AirPods Max
🥈 二等奖: Apple Watch SE
🥉 三等奖: Apple HomePod mini / Apple Pencil
或者另选:获奖者可以从低一级的奖品中进行选择(比如,一等奖获得者可以选择二等奖和三等奖的礼品)
3. 开发者社区奖 – 点赞最多的文章。 获胜者将有机会从以下奖品中选择一个。
🎁 Apple Pencil
🎁 Apple HomePod mini
请注意:
每位作者只可以获得某一类别奖项一次(即:获奖者最多可以获得两个奖项:一个来自专家评选,一个来自和社区点赞)
当出现票数相当的平手情况时,将以专家评判投票数作为最终票数高低的判断标准。
谁可以参加?
任何开发者社区成员(InterSystems的员工除外)。 创建一个账户!
比赛时间
📝 6月20日 - 7月20日(美东时间): 文章发布与投票时间
在这段时间内发表一篇文章。 DC成员可以用 "赞 "为发表的文章投票--在社区奖中投票。
注意:越早发表文章,就越有时间收集专家和社区投票。
有什么要求?
❗️ 任何在比赛期间写的文章,只要满足以下要求,就能自动参加比赛:
文章必须与通过InterSystems技术使用Python(内嵌Python或Python API)相关。
文章必须为英文撰写。
文章必须是100%的新文章(可以是现有文章的延续)。
不允许翻译其他社区的现有文章。
文章发布时必须带着tag: Python/ Embedded Python (具体看您的主题)。
文章篇幅不低于 750单词 (链接和代码不计入字数限制)。
同一作者可以发布多篇文章。
不同作者可以发布同一主题的文章。
🎯 最新:额外奖励
这次我们决定增加额外的奖金,将帮助您赢得奖金! 欢迎了解详情:
要求
奖励票数
详情
主题奖励
5
如果您的文章符合以下列出的建议主题,可以获得五张来自专家的投票 (vs 专家选出的第一名为3 票).
视频奖励
3
文章内容的呈现形式:在发布文章的同时制作说明视频。
讨论奖励
1
文章中有最有用的讨论,由InterSystems专家决定。 只有1篇文章可以得到这个奖励。
翻译奖励
1
文章发布后,在其他社区发布翻译版。
注意:每篇文章可获得一票。
新成员奖励
3
首次参加此次比赛的新成员,将获得三张专家票。
建议主题
以下是可以为您的文章增加额外奖励的主题列表:
#
主题
详情要求
1
对InterSystems数据平台有用的Python库
描述您使用哪些库在InterSystems平台上生成应用程序。
2
从互操作性角度谈嵌入式Python
来自互操作性的嵌入式Python探索如何从互操作性产品中利用嵌入式Python。
3
嵌入式Python:通过语言结构进行翻译
虽然我们的目标是实现无缝的嵌入式Python集成,但有一些技巧和技巧可以让事情顺利进行。 下划线方法、字典、列表等。 从ObjectScript调用Python特性的最佳方式是什么?
4
PEX for Python Examples
描述一个以python为中心的方法来利用InterSystems IRIS的能力。Native Python架构中的数据模型。
5
Native API for Python Examples
描述您使用哪些库在InterSystems平台上生成应用程序。
请注意:允许不同作者就同一主题进行创作。
➡️ 加入 InterSystems Discord 聊聊竞赛规则、奖励和您的想法吧!
期待您的大作! ✨
Important note: Prizes cannot be delivered to residents of Crimea, Russia, Belarus, Iran, North Korea, Syria, or other US embargoed countries.
文章
Michael Lei · 二月 8, 2022
说明
欢迎来到InterSystems广播站--数据点!在这一集里,我们和在线培训团队负责人Jenny Ames聊了聊InterSystems IRIS--稳定、灵活、可扩展、可互操作的数据平台,它为世界上许多最关键的核心应用提供支持。从它的多模型性质到它的集成引擎,再到它的医疗保健功能,在一次谈话中,有很多东西需要解读。
本期节目回放:https://datapoints.castos.com/episodes/1-what-is-intersystems-iris-jenny-ames
关于InterSystems广播站的更多信息,请访问https://datapoints.intersystems.com。
今天就试用InterSystems IRIS,请到https://www.intersystems.com/try,启动你的实例!
更多资料欢迎访问:https://gettingstarted.intersystems.com。
以下是本期对话中文全文。
德里克-罗宾逊 00:01 欢迎来到InterSystems 在线培训的播客。请确保在你最喜欢的播客应用程序上订阅播客,如Spotify、苹果播客、谷歌播放或Stitcher。你可以通过搜索 "数据点 "并点击订阅按钮来做到这一点。我是Derek Robinson,在今天的节目中,我将与InterSystems在线培训团队负责人Jenny Ames谈论InterSystems IRIS数据平台。
Derek Robinson 00:39 欢迎来到InterSystems在线培训广播站《数据点》第一集。我的名字是Derek Robinson。我是InterSystems公司的一名在线培训课程开发人员,我们学习服务部的所有人都对推出这个播客节目感到非常非常兴奋。我们有多集不同的节目将陆续推出,所以在你听完这一集后一定不要错过其他的节目。在这一集里,我将与Jenny Ames聊天。正如我在介绍中提到的,Jenny是在线培训团队负责人,她在我们的技术栈方面有超过10年的经验。因此,在我们的讨论中,我们将介绍InterSystems IRIS的基本情况,它的一些最佳功能是什么,以及她所看到的一些最佳使用案例。我们将概要地聊聊这个产品是什么,它的一些医疗行业的扩展是什么,以及它如何能够真正帮助你作为一个开发者的应用开发,开发数据驱动和数据密集型应用。闲话少说,下面是我对Jenny Ames的采访。
德里克-罗宾逊 01:36 欢迎Jenny Ames来到播客室,她是InterSystems在线培训服务的团队负责人。Jenny,你好吗?
珍妮-艾姆斯 嗨,德里克。我很好。你呢?
德里克-罗宾逊 好。我也很好。我们很高兴推出InterSystems广播站--数据点,并邀请你作为我们的首批嘉宾之一,在这里谈论InterSystems IRIS,以及它对于那些可能不知道的人来说是什么,还有对于那些有兴趣了解更多的InterSystems用户,以及我们技术栈的背景。首先,请您先介绍一下自己,让我们知道你在InterSystems是做什么的,你在这里工作了多长时间,以及你在InterSystems世界的经验?
Jenny Ames 02:07 当然,是的。所以我在2020年6月份刚刚庆祝了10年。前五年,我是一名培训讲师,培训我们大部分的产品。Caché、Ensemble、Health Connect以及大部分的HealthShare课程,我非常喜欢这些课程,但是一些生活上的变化意味着我想在这里多待一会儿,所以在过去的五年半里,我一直在做在线培训。
德里克-罗宾逊 02:33 不错。这真是太棒了。所以你显然非常适合我们今天要讨论的问题。那么,让我们从InterSystems IRIS数据平台是什么这个问题开始,好吗?您可以先为那些从未见过它的听众用一个概要性的例子或描述一下IRIS吗?然后我们可以更详细地去了解它的一些功能是什么。所以,如果我今天在电梯里看到你,问你什么是InterSystems IRIS,你会怎么回答?
Jenny Ames 02:58 好的,我喜欢把InterSystems IRIS分成三个主要部分。首先它是一个强大的数据库,可以存储、检索数据。它有一个内置的开发环境来构建业务逻辑。同时它也是一个集成引擎,所以你可以在不同的系统之间非常容易地分享数据,进行互联互通,有一些很好的用户界面UI可以帮助你快速地做到这一点,而无需太多的代码。你也可以定制它,因为我们有很好的数据库层面的支持。然后,它也是一个数据分析平台,你可以建立机器学习模型来显示仪表盘和分析数据,以真正使你的数据有意义,并且持续在这个基础上建立新的分析。我们还包含了自然语言处理NLP功能。可以分析大段的文本,找到积极的东西或总结文本。
Derek Robinson 03:52 是的。在今天,整合不断的信息流从各种不同的来源进入你的应用程序,这变得越来越重要,真实世界并不总是像传统的关系型数据库中那样严谨地定义属性和排列,那需要你知道所有的属性和一切,对吗?所以你总整体上总结了这三个方面。下面,让我们从数据库部分开始,因为我认为任何要建立一个数据密集型应用程序的应用开发者都需要从数据库开始,对吗?比如他们需要他们的数据在某个地方。那么,在进入其他功能之前,仅从数据库的角度来看,InterSystems IRIS与人们可以选择的其他数据库相比有什么区别?
Jenny Ames 04:30 是的,这是个好问题。首先,我们在InterSystems IRIS中内置了一些逻辑,所以你可以直接利用来建立业务。如果你熟悉Caché,这是我们已经推出一段时间的产品之一,IRIS里有一些新的东西是一些语言的互操作性部分,所以你仍然可以利用你其他用Java.net、Python或Node.js构建的应用程序,然后与InterSystems IRIS的数据库平台进行整合。但我想说的是,真正让它脱颖而出的特性是可靠性。我们在全球主流市场,比如医疗、金融,我们能成功的主要原因就是因为它的可靠性。这是因为我们拥有的可靠性和内置的安全性。
Derek Robinson 05:27 对,没错。因此,对于任何使用数据库来建立他们的应用程序和托管他们的数据并真正能够使用他们的数据的人来说,那里有一些好的元素和好的要求。还有一点,我想谈谈,我知道这与语言的互操作性有一点关系,当涉及到为你的数据库使用不同的模型时,也是模型的灵活性。我知道,当我们在活动中与开发人员交谈时,有时会让他们停下来说,等等,告诉我更多关于这个问题。所以,请给我一个快速的例子,描述一下InterSystems IRIS在数据库层面的多模型能力。
Jenny Ames 06:00 是的。因此,多模型......大多数数据库都选择支持一种模型,无论是对象型数据库还是关系型数据库。而我们认为,为什么要选择?通过对象访问或通过二维表来访问数据有不同的原因。从像Java这样的东西来看,它已经是一个对象模型。所以能够直接保存一个对象是一个巨大的好处,因为它既节省了开发者的时间,也节省了转化时间, 它不必将数据转化为关系型、转化为行就能够做到这一点。但是做一些事情,比如说,选择所有在一家公司工作的人,这种数据用关系型模型来做就真的很容易。因此,我们的设计理念,是使用对每项任务最有效的模型,然后将其全部整合到一个应用程序和平台中。
Derek Robinson 06:45 对。不需要为了解决同一问题或者问题中的不同变化而建立或重复不同的方法,这真的很酷。顺便说一句,沿着这个话题,我想未来的一集可能会涉及到更深层次的内容,即我们的Global和有效的工作方式。我想到了一两个人,他们会很好地解释InterSystems的这些概念,但要更多地讨论InterSystems和InterSystems产品的整体形象。我知道我们以前参加过一些活动,人们会看到我们的商标,看到我们的品牌,然后他们就把InterSystems归类到到医疗行业。对吗?看起来你们是一家医疗IT公司,所以这很酷。可以再跟我说说,为什么人们不应该因为我们做医疗行业把我们只归类在医疗行业?如果有人不在医疗行业领域,有什么理由让他们不应该立即认为InterSystems真的只是医疗信息IT软件?
Jenny Ames 07:38 是的。我们在医疗领域的成功是有原因的。同样,因为我们在InterSystems IRIS和其他产品中建立的可靠性、可扩展性和安全性。所以,是的,我们进入其他领域也是有原因的。因为这些功能在多个垂直领域真的很重要。比如,金融机构,你知道,钱对人们来说真的很重要,所以能够使用InterSystems IRIS和利用这些特性真的很重要。而且,就像我提到的,我在教室里的前五年,我已经看到了一些不同的使用案例,我认为我们的一些客户真的很酷。比如说有一家汽车制造公司,他们基本上是集成和处理汽车零件,并能够管理所有这些零部件数据。他们基本上从多个不同的警察辖区获取数据,这些数据以不同的格式存储,他们必须转换这些数据。把所有的数据用我们的产品管理起来,然后他们在此基础上建立了仪表盘,以便能够分析数据并利用数据本身做一些非常酷的事情。
Derek Robinson 09:00 有意思。是的,我认为你提到的最后一个用例可以作为深入讨论我们IRIS的互操作性功能的基础,对吗?我认为还有很多我们可以深入讨论的地方,比如你提到把数据转化为正确的格式。其中有一些转化是我们开始进入那些医疗行业功能的核心,也是我们在医疗行业中最需要的东西。那么,你对这部分还有什么要补充的吗?
Jenny Ames 09:26 是的。我们有一些内置的功能,在医疗等行业,一些预置的组件方面确实有帮助。但我们也一直在建立更多的功能,在那里你可以做一些事情,如记录映射器,无代码集成数据等等。但同样,你也可以完全定制它,以便能够使数据具有正确的格式。但是,互操作性实际上是让我最兴奋的功能。我真的很喜欢,我实际上有很多的乐趣,建立集成,玩这个,自己学习更多。但是,是的,我真的很喜欢InterSystems IRIS的这个功能。
Derek Robinson 10:00 是的。在使用案例之前,还有一件事......我们马上要讲到医疗行业,但是经常谈到的InterSystems IRIS的其他使用案例之一是欧洲航天局,它突出了InterSystems IRIS的一些可扩展性、可靠性和处理这些数据负载的巨大能力。 这是一个我们已经谈了很多的例子。你能给我们讲讲这个用例,这个例子,以及为什么它能有效地展示InterSystems IRIS的能力?
Jenny Ames 10:29 是的,欧空局使用了我们的一个产品,InterSystems IRIS也采用了其中最好的功能,非常酷。几年前有一个很好的演示,我去看了,就是他们在太空中放置的这个东西,它实际上非常小。比如你可以......你现在看不到我,但是它也许是足球大小,或者可能比它小一点。它基本上绘制了整个银河星系的地图,而且,你知道,对于亮度和速度以及所有这些不同的天体。然后它把这些数据带回来,让操作人员上分析这些数据,真正绘制银河系,这真的很酷。但是,是的,我认为这是一个非常漂亮的例子,因为它正在处理大量的数据,在“大数据”这个词被创造出来之前我们已经在做大数据,但这不是最酷的,最酷的是你拥有所有的数据能够真正发挥他们的作用。
德里克-罗宾逊 11:38 对。很好。作为对我们学习者的一点提示,要想更多地了解这些功能,一般来说,我们只是在谈论可扩展性和可靠性。在可扩展性方面,当涉及到横向扩展系统时,你真的可以看一下分片,以了解更多。我不想深究这个问题,因为我们会有关于这个问题的其他专题。对于可靠性来说,我们的可靠性是镜像技术,对吧?就像我认为你所提到的系统的可靠性,如果一个系统发生故障,也许这种镜像能力是InterSystems产品的特点之一。我有时会说IRIS,但我们谈论的确实是我们大部分的技术堆栈,这些技术对于那些可扩展性和可靠性的一些功能来说确实是最基本的。所以,在这里,我们要进入最后一个部分,也就是IRIS医疗版。InterSystems IRIS for Health是InterSystems IRIS的医疗扩展,是一个更强大的平台。请告诉我们InterSystems IRIS for Health在医疗领域的一些具体扩展功能。
Jenny Ames 12:46 是的。IRIS for Health是InterSystems的IRIS医疗版,它确实是专门为医疗行业打造的,所以它有许多预置的医疗行业特性,帮助你整合并真正为医疗行业环境建立整个数字化应用。它包括对HL7 v2等事务的预建支持,你可以根据事件引入不同的消息。我们有对FHIR的支持。有一个内置的FHIR资源库来管理所有的资源。如果你不熟悉这些术语,你可以百度一下,了解一下。实际上,我们也有一些关于它的课程,你可以参加。我们有对IHE的支持,所以我们的许多针对医疗行业的支持都是内置的,它使你更容易集成不同的数据和应用和更快搭建医疗行业应用程序。
德里克-罗宾逊 13:45 对。很好。我想说的是,珍妮提到的学习内容,即learning.intersystems.com,是我们的学习目录所在。我想这是在这些播客和所有东西的介绍中的一种。但是说到更多的学习和呼吁行动,我们在这里想谈的最后一件事是,我们一直在谈论InterSystems IRIS和InterSystems产品的整体情况。如果我们的一些听众很好奇,他们想了解更多的情况,人们如何才能尝试IRIS?
珍妮-艾姆斯 14:08 是的。我们有两个很棒的新东西可以使用。有一个 "试用IRIS实例"。这基本上是一个试用实例,你可以免费获得,如果你不注册,它可以使用24小时。但如果你注册了,你可以保留30天,这真的很不错。你可以亲身体验,里面有一些预制的样本。所以要访问这个网站,你可以去intersystems.com/try,右边有一个按钮,你可以开始编码。然后还有一个网站,实际上与此有关。在这个屏幕的左侧,有一个新的按钮,可以进入我们新的入门网站。所以,如果你去gettingstarted.intersystems.com,你可以直接去那里,同样,那里有练习和一些使用案例视频,所以你可以开始想象使用InterSystems IRIS的不同方式。
Derek Robinson 14:57 真棒!对于我们的听众,我们会把这些链接放在节目描述中,这样你就可以直接进入这些页面,无论是尝试页面还是入门页面,以真正了解InterSystems IRIS的情况。所以,Jenny Ames,今天的时间就先到这里,非常感谢你参加我们的节目,我们期待和您再次访谈。
Jenny Ames 很好。谢谢邀请!
Derek Robinson 15:16 所以再次感谢Jenny加入我们,就InterSystems IRIS和InterSystems IRIS for Health进行了一次内容丰富的谈话,最后还谈到了它对开发人员构建这些数据驱动型应用程序的最大帮助,他们可能需要与其他系统的互操作性,转换你在其他应用程序之间发送或接收的数据。拥有一个非常可靠的设置,如果有什么东西发生故障,或者你需要比你目前拥有的更大的规模,可以真正依靠它。因此,与Jenny就InterSystems IRIS进行了很好的讨论,并再次感谢她。就像我在介绍中提到的,我们在目录中还有很多集,您现在就可以听,然后随着我们的发展,就像我们在预告片中提到的,我们将寻求每月做一到两集,而且真的就像我们可以从我们的专家那里获取内容一样,这就是我们的计划,能够给你提供信息和有趣的讨论,帮助大家学习更多。所以,重要的事情说三遍,你可以到intersystems.com/try或gettingstarted.intersystems.com去试试InterSystems IRIS,至于一般的学习内容,可以到learning.intersystems.com去看看我们的全部目录,同样,在你喜欢的播客应用程序上搜索Data Points并点击订阅按钮。这样,每当我们有新的节目时,你就会收到每一集。再次感谢您的收听,我们将在InterSystems广播站《数据点》节目中再见。
本期节目回放:https://datapoints.castos.com/episodes/1-what-is-intersystems-iris-jenny-ames
关于InterSystems广播站的更多信息,请访问https://datapoints.intersystems.com。
今天就试用InterSystems IRIS,请到https://www.intersystems.com/try,启动你的实例!
更多资料欢迎访问:https://gettingstarted.intersystems.com。
公告
jieliang liu · 四月 20, 2022
开发者们好,
我们在Bilibili的”InterSystems中国“频道 发布了新的视频!
了解如何使用InterSystems IRIS Business Intelligence的Analyzer工具来创建在仪表板上显示的透视表。本视频展示了Analyzer工具的中心组件,并演示了如何构建一个透视表。
请欣赏并继续关注! 这个有字幕了,赞👍
文章
Weiwei Gu · 三月 14, 2022
大家好!
InterSystems IRIS有一个叫做互操作性Interoperability的菜单。
它提供了轻松创建系统集成的机制(适配器、记录图、BPM、数据转换等),因此不同的系统可以轻松地连接起来。
在数据中继过程中可以包括各种操作,比如:为了连接那些通常不连接的系统,可以根据目的系统的规格要求来接收(或发送)数据。另外,在发送数据之前,可以从另一个系统获取和添加信息。以及,信息可以从数据库(IRIS或其他)获取和更新。
为此,我们会撰写一系列的文章,将讨论以下主题,同时看一下示例代码,以帮助你了解它是如何工作的,以及在用互操作性整合系统时需要什么样的开发。
* How it works 它是如何工作的* What a Production is 什么是Production ?* Message 消息* Component Creation 组件的创建
* 1)Business Operations 业务操作
*2)Business Processes 业务流程*3) Business Services 业务服务
首先,介绍一下我们在这个系列中要使用的案例。
一家经营着一个购物网站的公司,目前正在改变其产品信息的显示顺序,以配合季节的变化。 然而,有些商品无论在什么季节都能卖得很好,而有些商品却在意想不到的时候卖得很好,这与目前改变顺序的显示规则不相符。 因此,我们研究了以当天的温度,而不是按季节来改变产品展示顺序的这种可能性。这就需要调查当时购买产品时的天气温度。 由于外部网络API可用于检查天气信息,我们计划在购买时收集这些天气信息,并在后来的审查数据库中登记。 这很简单,但你需要使用 "外部Web API "来收集信息,并且需要将获得的信息和购买信息结合起来,再在数据库中登记。 具体说明将在以后的相关文章中讨论(不包括创建网站)。也请大家持续关注查看! 至于我们这次使用的 "外部网络API",我们使用的是( OpenWeather的当前天气数据.)
(如果你想尝试一下,你需要注册一个账户并获得一个API ID)。
下面是一个REST客户端的GET请求的结果(我们将在所应用的互操作性机制中去运行这个请求)。

The JSON of the HTTP response is as follows:
```json
{
"coord": {
"lon": 135.5022,
"lat": 34.6937
},
"weather": [
{
"id": 803,
"main": "Clouds",
"description": "broken clouds",
"icon": "04d"
}
],
"base": "stations",
"main": {
"temp": 17.05,
"feels_like": 13.33,
"temp_min": 16,
"temp_max": 18,
"pressure": 1017,
"humidity": 55
},
"visibility": 10000,
"wind": {
"speed": 4.63,
"deg": 70
},
"clouds": {
"all": 75
},
"dt": 1611635756,
"sys": {
"type": 1,
"id": 8032,
"country": "JP",
"sunrise": 1611612020,
"sunset": 1611649221
},
"timezone": 32400,
"id": 1853909,
"name": "Osaka",
"cod": 200
}
```
在 下篇文章中,我们将再来讨论如何使用互操作菜单来实现系统集成。 [OpenWeather]: https://openweathermap.org/ 系列第一篇!
文章
Lilian Huang · 三月 30, 2022
这篇文章的目的是为了说明如何使用互操作菜单实现系统集成。
图片左侧窗口是接受外部系统发送信息的窗口。
信息接收方式种类很多,如定时监控指定目录来读取文件,定期查询数据库,输入且等待信息输出,或直接调用其他应用程序系统传送信息。
在系统集成配置中创建IRIS 互操作性菜单,接收到存储在一个对象中的信息被称为一条消息message(以下统称为消息)。消息被发送到组件component (以下统称为组件)中做后续处理。
使用所有接收到的信息或仅使用其中的一部分就能用来创建消息。
假设您要将信息中包含的消息发送给外部系统。这种情况下,需要将该消息发送给负责请求外网处理的组件(图右侧)。接收到消息的组件会请求外部系统对其进行处理。
此外,假设一条消息需要人工审查、数据转换或附加数据。这种情况下,消息会被发送到图表中间的业务流程管理组件(BPM),该组件负责协调处理业务流程。
消息用于在每个组件之间发送和接收数据。当发送或接收消息时,消息会被自动存储在数据库中。
由于消息存储在数据库中,因此在数据转换前后可以检查其差异性。在操作期间,或过程中间重新开始(重新发送),可以检查作为问题根源的消息。在开发、测试和操作的每个阶段可以验证正在使用的消息状态。
一个简单的系统集成图将分为三个部分(业务服务Business Service、业务流程Business Process和业务操作 Business Operation),如下图所示。
还有一个称为“生产Production”的定义,它存储有关要使用的组件信息(例如,连接信息)。
各组件功能如下:
业务服务Business Service
负责从外部源接收信息,创建消息,以及向其他组件发送消息。
业务流程Business Process
该功能在收到消息时被激活,并负责协调流程(按预先定义的顺序调用组件、等待响应、等待人工审核结果等)。
业务运营Business Operation
此功能在收到消息时被激活,会请求外部系统处理该消息。
消息是用于在组件之间发送和接收数据。
当收到一个消息时,业务服务以外的所有组件开启处理流程。
问题是,创建和使用此消息的目的是什么?
通过创建消息可获取中继到外部系统的数据并检索进入业务服务。
由于不是所有的外部系统都用相同类型的数据格式连接到 IRIS,并且要中继的内容各不相同,因此生产者可以根据信息自由定义消息类别。
有两种类型的消息:请求(= 请求消息)和响应(= 响应消息)。触发组件激活的消息被称为request(=请求消息),组件处理后响应的消息称为response(=响应消息)。
这些消息在考虑中继流程时会被设计。
在接下来的文章中,我们将使用一个案例来概述生产、消息和组件的创建。
上一篇链接,请参考:《首次使用InterSystems IRIS 》-让我们来使用互操作性!链接如下:https://cn.community.intersystems.com/post/%E3%80%8A%E9%A6%96%E6%AC%A1%E4%BD%BF%E7%94%A8intersystems-iris-%E3%80%8B-%E8%AE%A9%E6%88%91%E4%BB%AC%E6%9D%A5%E4%BD%BF%E7%94%A8%E4%BA%92%E6%93%8D%E4%BD%9C%E6%80%A7
文章
Lilian Huang · 三月 30, 2022
这篇文章是前面文章[首次使用InterSystems IRIS] 互操作性: 它是如何工作的?的延续。
在上一篇文章中,解释了互操作性菜单如何用于系统集成。
在本文中,我想解释如何用互操作菜单开发系统集成。
首先,您想创建什么样的业务流程? 请一边思考,一边开始以下内容。
Production(生产)
消息
组件
业务服务
业务流程
业务运营
Production被定义和用作指定系统集成所需的组件及存储组件的配置,这些配置通过管理门户界面使用(内部被存储为生产的类定义)。
例如,假设您正在创建一个业务服务,该服务定期处理放置在指定目录中的文件。 在这种情况下,有必要准确配置要监测的目录和要处理的文件。 一个生产就是预先准备好用于存储这些配置。
这些配置取决于发送和接收数据的组件所使用的适配器。
适配器是用于简化与外部系统连接的类,有些是协议特定的,如 Mail/File/SOAP/FTP/HTTP/SQL/TCP,有些是标准特定的,如 HL7。
有关适配器的更多信息,请参阅文档(protocol-specific adapters and adapters related to EDI documentation)
由于我们将必要的组件定义为Production,“启动Production”将启动系统集成,而“停止Production”将停止系统集成。
完成Production需要的开发是系统集成所需组件的创建,具体包括以下内容:
• 信息
• 组件(业务服务、业务流程、业务运营)
• 数据转换等。
上面的内容会在后面的文章中慢慢讲解。
首先,让我们使用Production示例来启动Production,并在检查配置的同时通过查询数据来检查消息处理的流程。
模版可以从这里下载https://github.com/Intersystems-jp/selflearning-interoperability。
如使用容器,请使用 git 克隆 下载示例代码,导航到克隆的目录,然后运行 docker-compose up -d 就这么简单!
请在此处参考流程here (创建容器需要一些时间)。
如果不使用容器,下载示例后新建一个命名空间,并将src文件夹下的所有类定义文件(extension .cls)导入创建的命名空间。
更多关于创建命名空间的过程,请参考本文this article.07:03之后的视频。
有关示例代码的更多详细信息,请参阅README。
准备就绪后,访问管理门户(更改 Web 服务器的端口号以匹配您的环境)。
http://localhost:52773/csp/sys/UtilHome.csp
进入管理门户 > 互操作性 > 配置 > 生产。
如果您使用的是容器以外的方法,请连接到您导入源代码的命名空间,访问[[配置] > [生产],,单击[打开] 按钮,选择[开始] > [生产],,然后单击 [开始] 按钮。
※ 如果您使用容器以外的东西,则需要进行一些初始设置。 请在尝试以下内容之前设置以下描述的内容contents described below。
生产页面将为每一个 “服务”、“流程”和“操作”组件显示为[● 组件名称] ]。
单击组件名称可更改屏幕右侧“设置”选项卡的内容。
例如点击Start.GetKionOperation(单击),显示如下。
组件有[HTTP Server] 和 [URL] 配置来连接Web API.
配置底部有一个 [appid] 字段,您可以在其中输入您获得的 API 密钥。
[appid] 附近有一个 [lang] 字段,设置为“ja”(“ja”=日语)。 [lang] 设置来自 OpenWeather 的响应语言。 如用英语,设置为“en”。
完成设置这些配置后,单击“应用”按钮。
如果您使用的是容器,则该配置完成。 欲了解更多信息,请点击here。
如果您正在尝试容器以外的其他配置
请提前做好以下两项设置:
1) 配置SSL客户端。
由于要连接的 Web API 将使用 HTTPS 进行通信,因此请提前在 IRIS 端配置 SSL 客户端。
为了匹配生产模版的设置,我们将使用名称 [openweather]。 生产中的设置如下:
单击管理门户 > [系统管理] > [安全] > [SSL/TLS 配置] > [新建配置] 按钮,在“配置名称”字段中输入“openweather”,然后单击“保存”按钮 结束。
2) 为 REST 创建一个基本 URL
在示例制作中,为使能够通过 REST 输入信息,我们已经进行了配置,基本 的URL for REST配置需要在 IRIS 端。
在生产示例中,我们将配置 /启动设置为基本 的URL。 由于 Start.REST 类存在于导入示例的命名空间中,因此我们将指定该类作为调度类,并添加 %All 作为应用程序角色,以在访问时省去身份验证。
管理门户 > 系统管理 > 安全 > 应用程序 > Web 应用程序路径 > 单击“创建新的 Web 应用程序”按钮。
在名称字段中,指定 /start; 在命名空间字段中,指定从中导入样本的命名空间; 在 Dispatch Class 字段中,指定 Start.REST; 在允许的身份验证方法字段中,选择“未Unauthenticated”,然后保存文件。
保存后,将 %All 角色添加到“application role ”选项卡上的应用程序角色中。
尝试发送数据
全部配置好后,尝试用业务服务通过 REST 发送信息并让它运行。
http://localhost:52773/start/weather/Takoyaki/Osaka
上面的例子是假设某人在大阪购买了“章鱼烧”的 URL。
运行后画面如下。
检查已发送到生产的消息。
在管理门户 > 互操作性 > 配置 > 生产中,单击以下服务:
选择屏幕右侧的“消息”选项卡,然后单击标题字段列下方的任意数字。 如果您没有看到它,请重新加载您的浏览器。
使用 Visual Trace 页面,您可以看到组件之间发送和接收的消息信息。 您可以看到天气信息是从 Web API 检索并在浅蓝色框架中发送回来的。
通过这种方式,您可以使用跟踪来查看当时正在发送和接收哪些数据以及以什么顺序。
在整篇文章中,我们已经确认了Production已经定义了需要的组件和参考示例代码设置的系统集成
我们还确认,我们可以使用 Visual Trace 页面按时间顺序参考通过 Production 的消息。
在下一篇文章中,我们将讨论创建此跟踪中显示的“消息”背后的概念以及如何实际定义它。
文章
姚 鑫 · 一月 20, 2023
# 第五十一章 使用 ^SystemPerformance 监视性能 - Apple macOS 平台的 InterSystems IRIS 性能数据报告
- `%SS` - 使用 `ALL^%SS` 命令在运行过程中采集了四个样本。
- `Configuration *` - 来自服务器的 `IRIS` 实例名称和主机名、完整的 `IRIS` 版本字符串、许可客户名称和许可订单号。
- `cpf file *` - 当前活动配置文件的副本。
- `irisstat -c` - 使用命令 `irisstat cache -p-1 -c-1 -e1 -m8 -n2 -N127` 在运行过程中以均匀的间隔采集四个样本。以下是对每个参数的简要说明:
- `-p-1`: 对进程表进行采样以包括进程和全局状态信息。
- `-c-1`: 对共享内存的计数器部分进行采样以显示日志、锁、磁盘和资源使用统计信息。
- `-e1: SYSLOG` 错误表。
- `-m8`: 文件表,其中包括所有 `IRIS.DAT` 文件及其属性。
- `-n2`: 网络结构表,包括本地到远程数据库的映射。
- `-N127`: 客户端和服务器连接的 `ECP` 统计信息。
- `irisstat -D` - 使用命令 `irisstat cache --f1 -D10,100` 在运行过程中以均匀的间隔采集八个样本。以下是对每个参数的简要说明:
- `-fl`: 基本标志。
- `-D10,100`: 在 `10` 秒的总采样周期内,每 `100` 毫秒对块碰撞进行采样。
- `ipcs *` - 进程间通信配置信息,包括共享内存、信号量和消息队列; `ipcs -a` 命令的输出。
- `license *` - 使用 `Decode^%LICENSE` 和 `counts^%LICENSE` 的 `IRIS` 许可使用信息。
- `macOS Info *` - 操作系统版本和硬件信息。 `sw_vers`、`uname` `-a、mount` 和 `netstat` 命令的输出。
- `mgstat` - 使用 `^mgstat` 实用程序在运行过程中获取 `IRIS` 特定数据。请参阅 `Monitoring Guide` 的 `Monitoring Performance Using ^mgstat` 部分。
- `Profile *` - 有关创建此日志的 `^SystemPerformance` 配置文件的信息。
- `ps:` - 使用命令 `ps -eflv` 在运行过程中以均匀的间隔采集四个样本。
- `sar -d` - 磁盘(块)设备吞吐量和延迟统计信息。
- `sar -g` - 页面输出率。
- `sar -n DEV` - 网络设备吞吐量。
- `sar -n EDEV` - 网络设备错误率。
- `sar -p` - 页入和页错误率。
- `sar -u` - CPU 使用统计。
- `sysctl -a *` - 内核和系统参数设置。
- `vm_stat *` - 内存页面信息。
公告
Michael Lei · 二月 8, 2023
InterSystems 宣布其首个开发人员预览版,作为2023.1 版开发人员预览计划的一部分。 2023.1 中添加了许多更新和增强功能,还有全新的功能,例如对列存储Columnar Storage 的生产就绪支持、使用Bulk FHIR 的能力以及对MacOS 13 Ventura的支持。当前的开发人员预览版可能不提供其中一些功能或改进。
未来的预览版本预计每两周更新一次,我们将在功能准备就绪时添加它们。请通过开发者社区分享您的反馈,以便我们共同打造更好的产品。
可以在下面的这些链接中找到初始文档。它们将在接下来的几周内更新,直到正式宣布发布(一般可用性 - GA):
InterSystems IRIS
InterSystems IRIS医疗版
HealthShare HealthConnect
此外,查看此链接以获取与此版本相关的升级信息。
与往常一样,扩展维护 (EM) 版本附带适用于所有受支持平台的经典安装包,以及 Docker 容器格式的容器映像。有关完整列表,请参阅支持的平台文档。
安装包和预览密钥可从 WRC 的预览下载站点或通过评估服务网站获得(使用标记“显示预览软件”以访问 2023.1)。
InterSystems IRIS 和 IRIS for Health 的企业版和社区版的容器镜像以及所有相应的组件都可以从新的InterSystems Container Registry Web 界面获得。有关 docker 命令的更多信息,请参阅这篇文章: 宣布 InterSystems Container Registry Web 用户界面。
此开发人员预览版的内部版本号为2023.1.0.185.0 。
有关可用图像的完整列表,请参阅ICR 文档。或者,所有容器镜像的 tarball 版本都可以通过 WRC 的预览下载站点获得。
文章
Hao Ma · 十一月 2, 2021
本文档解释了如何使用 Native API 从 Node.js 应用程序访问 InterSystems IRIS® globals。Native API 还允许您运行 ObjectScript 方法、函数和例程。在本文中,您将首先连接到 InterSystems IRIS。然后您将在 InterSystems IRIS 中设置和检索一个 global 节点的值,并在另一个 global 节点上进行迭代。您还将调用 InterSystems IRIS 类方法。所有这些活动都将在 Node.js 应用程序中执行。为了让您体验 Native API,而又不陷入细节的困境,本次探索特意设计得很简单。这些活动被设计成只使用默认设置和功能,这样您就可以熟悉功能的基本原理,而不必处理那些离题或过于复杂的细节。当您把 IRIS Native 引入您的生产系统时,您可能需要做一些不同的事情。本文档末尾提供的参考资料将使您对在生产中使 Native API 的情况有一个很好的了解。要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。
1 InterSystems IRIS 存储结构简介 InterSystems IRIS 提供了一种易于使用的方法来将数据存储在持久化多维数组中。global 是存储在物理 InterSystems IRIS 数据库中的命名多维数组。在应用程序中,globals 到物理数据库的映射基于当前命名空间,命名空间提供一个或多个物理数据库的逻辑统一视图。例如,要使用一个名为^Settings 的 global 将值 "Red"与键 "Color"关联起来,请使用 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础: 连接一个 IDE》)中的为您的实例描述的程序打开 InterSystems 终端(InterSystems Terminal),并输入以下代码:set ^Settings("Color")="Red"
您可以利用 globals 的多维特性来定义一个更复杂的结构:
set ^Settings("Auto1","Properties","Color") = "Red" set ^Settings("Auto1","Properties","Model") = "SUV" set ^Settings("Auto2","Owner") = "Mo"set ^Settings("Auto2","Properties","Color") = "Green"
有关 globals 的更多信息,请参见 Using Globals(《使用 globals》)。
2 探索 Native API for Node.js 此时,您已准备好试验 Native API 了。这个简短的演示将向您演示如何在一个简单的 Node.js 应用程序中使用 Native API。想试试 InterSystems Native API for Node.js 的在线视频演示吗?请查看 Node.js QuickStart(Node.js 快速入门)! 探索 Native API for Node.js
2.1 用前须知要使用该程序,您需要一个安装了您最喜欢的 Node.js IDE 的系统来运行,并需要一个运行中的 InterSystems IRIS 实例来连接。您对 InterSystems IRIS 的选择包括多种类型的已授权的和免费的评估实例;该实例不需要由您正在工作的系统托管(尽管它们必须相互具有网络访问权限)。有关如何部署每种类型的实例的信息(如果您还没有可使用的实例),请参见 InterSystems IRIS Basics: Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的 Deploying InterSystems IRIS(部署 InterSystems IRIS)。使用同一文档中的 InterSystems IRIS Connection Information(InterSystems IRIS 连接信息)和 Node.js IDE 中的信息,将 IDE 连接到您的 InterSystems IRIS 实例。
2.2 设置您的项目接下来,您需要使用 npm 来设置您的项目,npm 是和 Node.js 一起发布的 JavaScript 包管理器。作为这个过程的一部分,您将安装 Native API 模块 intersystems-iris-native。使用这个程序:1. 在命令提示符下,为演示创建一个名为 IRISNative 的新文件夹,并切换到该目录。 例如:
mkdir IRISNative cd IRISNative
2. 使用 npm 包管理器初始化新项目:
npm init
3. 按照提示,创建 package.json 文件。4. 要安装 IRIS Native API 模块:• 如果您的 InterSystems IRIS 实例安装在您正在工作的系统上,请输入命令
npm install --save <install-dir>\dev\nodejs\intersystems-iris-native
其中 <install-dir> 是安装 InterSystems IRIS 的目录, 例如 C:\InterSystems\myIRIS。• 如果您的实例没有安装在您正在工作的系统上,请按照以下步骤操作:a. 下载或克隆以下 repo 到您的 IDE 中:https://github.com/intersystems/quickstarts-nodejsb. 如果您已经下载了 repo,请解压。c. 切换到您刚刚克隆或下载的 repo 的 Solutions 目录,例如:
cd quickstarts-nodejs/Solutions
d. 要安装 IRIS Native API 模块,请输入:
npm install --save intersystems-iris-native
2.3 Native API 应用程序 现在您已经创建了项目,接下来您将创建一个小的应用程序,演示 Native API 的一些功能。1. 在您的 IDE 中,在 IRISNative 目录中创建一个新的源文件,将该文件保存为 IRISNative.js。 探索 Native API for Node.js
2. 将以下代码粘贴到 IRISNative.js 中, 将 InterSystems IRIS 实例的连接信息 替换为 connectionInfo 中的值。您可以指定所示的 USER 命名空间,也可以选择在实例上创建的另一个命名空间:
const irisnative = require('intersystems-iris-native')// Modify connection info based on environment let connectionInfo = {host: '127.0.0.1',port: 1972, ns: 'USER',user: '_SYSTEM', pwd: 'SYS'};// create database connectionconst connection = irisnative.createConnection(connectionInfo);//create IRIS instanceconst dbnative = connection.createIris();console.log('[1] Setting and getting a global');// setting and getting a global// ObjectScript equivalent: set ^testglobal("1") = 8888 dbnative.set(8888, 'testglobal', '1');// ObjectScript equivalent: set globalValue = $get(^testglobal("1")) let globalValue = dbnative.get('testglobal','1');console.log('The value of testglobal is ' + globalValue); console.log();console.log('[2] Iterating over a global');// modify global to iterate over dbnative.set(7777, 'testglobal', '1');dbnative.set(8888, 'testglobal', '2');dbnative.set(9999, 'testglobal', '3');let subscriptIter = dbnative.iterator('testglobal'); console.log('walk forwards');for ([key,value] of subscriptIter) { console.log('subscript='+ key +', value=' + value);};console.log();console.log('Iterate backwards a different way');let revIter = dbnative.iterator('testglobal').reversed(); let node = revIter.next();while (!node.done) {console.log('subscript='+ node.value[0] +', value='+ node.value[1]); node = revIter.next();}console.log();console.log('[3] Calling a class method');// calling a class method// ObjectScript equivalent: set returnValue = ##class(%Library.Utility).Date(5) let returnValue = dbnative.classMethodValue("%Library.Utility", "Date", 5); console.log(returnValue);// close connection connection.close();
示例代码分为三个部分:1. 第一部分展示了如何设置一个 global 的值以及稍后如何检索它。这部分里面执行的命令等同于 ObjectScript 的 SET 和 GET 命令。2. 第二部分展示了如何迭代 global 的子节点,类似于 $ORDER ObjectScript 函数。3. 第三部分展示了如何使用 Native API 从您的 Node.js 应用程序调用 ObjectScript 类方法。
注意: ObjectScript中的 Globals 以插入符号(^)开头。在使用 Native API 的 Node.js 应用程序中,这不是必需的。 了解有关 IRIS Native 的更多信息
2.4 运行练习现在您已经准备好运行演示应用程序了。如果示例执行成功,您应该会看到带有示例代码结果的打印输出:[1] Setting and getting a global The value of testglobal is 8888[2] Iterating over a global walk forwardssubscript=1, value=7777 subscript=2, value=8888 subscript=3, value=9999Iterate backwards a different way subscript=3, value=9999 subscript=2, value=8888 subscript=1, value=7777
[3] Calling a class method Apr 11, 2019
2.5 确认管理门户(Management Portal)中的变更接下来,使用以下程序在管理门户(Management Portal)中确认您的结果:1. 使用 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中为您的实例描述的 URL,在浏览器中打开您的实例的管理门户(Management Portal)。2. 如果您不在代码指定的命名空间中,请切换到该命名空间。3. 导航到 Globals 页面(System Explorer(系统资源管理器) > Globals)。您应该会看到示例代码中创建的 testglobal global。点击 View(查看)来查看其内容。 您应该会看到 global 的两个节点:^testglobal(1) = 8888 和^testglobal(2) = 9999。
3 了解有关 IRIS Native 的更多信息有关 IRIS Native、globals 和 InterSystems IRIS 的更多信息,请参见:• Using the Native API for Node.js(《使用 Native API for Node.js》)• Using Globals(《使用 Globals》)
公告
Claire Zheng · 三月 8, 2021
亲爱的社区开发者们,
InterSystems 编程大奖赛 圆满结束!这是一场令人难以置信的竞赛,参与的应用程序和开发者数量创下了记录!
谢谢大家的参与!现在是时候宣布获奖者了!
让我们把掌声送给这些开发者们!
🏆 专家提名奖(Experts Nomination)- 获奖者由我们特别挑选的专家团选出:
🥇 第一名,奖金 $6,000 获奖项目 e-intersystems-iris @Dmitry.Maslennikov
🥈 第二名,奖金 $3,000 获奖项目 iris-rad-studio @Henrique.GonçalvesDias
🥉 第三名,奖金 $2,000 获奖项目 HealthInfoQueryLayer @Botai.Zhang
🏆 社区提名奖(Community Nomination) - 获得总投票数最多的应用:
🥇 第一名,奖金 $3,000 获奖项目 HealthInfoQueryLayer @Botai.Zhang
🥈 第二名,奖金 $1,500 获奖项目 Dictionary comparison scheme of cache database @Weiwei.Yang
🥉 第三名,奖金 $500 获奖项目 vscode-intersystems-iris @Dmitry.Maslennikov
恭喜所有获奖者和参赛者!
感谢大家对本次大赛的关注和在本次大赛中付出的努力! 恭喜中国获奖者 @Botai.Zhang @Weiwei.Yang !
感谢 @jingqi.LIu @Deming.xu 的参与!
期待其他开发者更多的作品! 非常荣幸参与其中,对所有的开发者来说,很棒的平台!
文章
Jingwei Wang · 九月 16, 2022
连接前准备:
C++ 开发环境
InterSystems ODBC 驱动 (ODBC 驱动会随InterSystems IRIS安装包自动安装在服务器中)
Connection String
步骤:
Connection String:其中#include 用来导入需要使用的libraries,"Driver=InterSystems IRIS ODBC35;Host=localhost;Port=1972;Database=USER;UID=SQLAdmin;PWD=deployment-password;\0";是connection string。
#ifdef WIN32
#include <windows.h>
#endif
#include <sqlext.h>
#ifdef UNICODE
#include <sqlucode.h>
#endif
#include <stdio.h>
int main()
{
RETCODE rc; /* Return code for ODBC functions */
HENV henv = NULL; /* Environment handle */
HDBC hdbc = NULL; /* Connection handle */
unsigned char szOutConn[600];
SQLSMALLINT *cbOutConn = 0;
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER*)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
char connect_cmd[255] = "Driver=InterSystems IRIS ODBC35;Host=localhost;Port=1972;Database=USER;UID=SQLAdmin;PWD=deployment-password;\0";
rc = SQLDriverConnect(hdbc, NULL, (SQLCHAR*) connect_cmd, SQL_NTS, szOutConn, 600, cbOutConn, SQL_DRIVER_COMPLETE);
if (rc == SQL_SUCCESS)
{
printf("Successfully connected!!\n");
}
else
{
printf("Failed to connect to IRIS\n");
exit(1);
}
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc); /* Free connection handle */
SQLFreeHandle(SQL_HANDLE_ENV, henv); /* Free environment handle */
return 0;
}
文章
Claire Zheng · 十一月 7, 2022
作为开发者社区的一员,多年来我亲眼目睹了访问和共享数据的障碍是如何阻碍创新的。在与医疗科技领域的初创公司和大企业合作时,我看到了封闭的数据是如何阻碍了我们的合作,那种我们都意识到的对提供高质量医疗服务至关重要的合作。 随着我对FHIR®(快速医疗互操作性资源)标准的了解,我开始相信这是医疗创新的前进之路。我希望全世界的开发人员——包括我们全球InterSystems开发社区的1.1万余名开发人员——都能够充满激情地来了解如何使用FHIR推动数据驱动的医疗解决方案,来了解这种以前所未有的方式促进生态系统利益相关者之间合作的技术。 Sage Growth Partners的一项调查发现,医疗行业有一半的高管表示,数据集成和互操作性是实现其战略数据分析目标的最大障碍。只有20%的人对自己的数据充满信心。 他们渴望改变。其中约80%的高管表示,在整个组织内创建和共享高质量数据是他们的首要任务。一个全球性的运动正在呼吁更多的协作医疗,然而数据的缺陷阻碍了这一进程。 集成FHIR,就可以改变游戏规则。
协作医疗意味着协同IT
将医疗行业的利益相关者聚集在一起、交换信息和知识,毫无疑问将改善患者的结果。但是当你观察成功的协作医疗的背后,你会发现什么呢?
协同IT。这意味着实现健康信息的互操作性,无论是测试结果、报告患者监测数据、索赔信息还是电子健康记录(EHR)。随着医疗健康数据比以往任何时候都更加庞大和分散,从多个系统访问数据,以及从一个应用程序实时访问数据,能够使利益相关者更好地关注细节,并快速构建定制的医疗护理计划。
FHIR是医疗互操作性的未来
简单介绍一下背景知识:FHIR是一个全球互操作性标准,描述了机构间如何共享大约150种医疗健康“资源(Resource)”——例如药物、医疗设备数据、付款人信息以及跨EHR和其他系统托管的其他数据。
从去年开始,医疗计划必须允许成员通过使用安全FHIR Release 4 (R4) API的应用程序访问其医疗数据。这迎来了来自世界各地的开发人员的爆发式创新,开发人员能够构建FHIR应用程序、工具和技术,利用这一标准来促进协作医疗。
这惠及患者。现在,只需轻轻一划手指,患者就能轻松获取个人医疗健康信息,使用基于FHIR的应用程序编程接口(API)从移动设备上获取医疗健康数据。
用FHIR改变医疗
作为InterSystems开发者关系主管,我很自豪我们正在构建核心医疗IT的协作工具,帮助开发人员充分利用FHIR。InterSystems IRIS for Health(医疗版)、InterSystems HealthShare®和InterSystems IRIS云服务都利用FHIR来支持互操作性。 HL7 达芬奇项目(Da Vinci)是一项倡议,通过该倡议,医疗IT专家和行业领袖通过利用HL7 FHIR,在基于价值的医疗中改善跨社区数据共享。该项目侧重于在质量改进、覆盖率/减轻负担、成员访问、流程改进和临床数据交换方面取得成果。
看看正在进行和已经上市的产品,很明显,FHIR集成将改变医疗健康行业。当医疗服务提供者、支付方和医疗护理行业的其他人能够利用庞大的健康数据来改善患者的结果时,每个人都是赢家。
作者介绍
本文作者 Dean Andrews (社区ID: @Dean.Andrews2971 )是InterSystems数据平台开发者关系主管。他的团队管理着InterSystems开发者社区、黑客马拉松项目和创业加速器项目。Dean专注于为开发人员、创业公司和客户提供工具和信息,使他们能够在InterSystems技术上进行创新。Dean还是非营利组织HealthTech Build的顾问委员会成员,他是出版自己的专著,并且经常在行业活动中发表演讲。
原文链接可以点击此处查看:How Collaborative IT Can Unlock Collaborative Care
公告
Claire Zheng · 五月 31, 2023
Hi 开发者们!一年一度的 InterSystems IRIS 开发者大奖赛已启动!
我们非常高兴地邀请大家参加此次编程大赛——使用 InterSystems IRIS 数据平台构建开源解决方案!
🏆 InterSystems 2023 年度编程大奖赛🏆
时间: 2023年6月12日-7月9日(美国东部时间)
奖金池: 26,000 美元
主题
InterSystems Grand Prix 是我们的年度编程大赛,旨在寻找使用 InterSystems IRIS 的最佳应用程序。我们欢迎您提交任何主题的申请!
欢迎展示任何类型的 InterSystems IRIS API 或数据模型,提交以 InterSystems IRIS 为后端(API 或数据库)的任何应用程序。
欢迎您对去年在 InterSystems 竞赛系列中展示的应用程序进行改进,并将它们提交给大奖赛。
欢迎您提交 100% 全新的应用参与竞赛。
一般要求:
有效应用程序:100%全新的Open Exchange Apps或已有的应用程序(但有显著提升)。所有参赛者/团队提交的应用程序只有经过我们团队的审核之后才会被批准参赛。
该应用可以在 IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition上运行。
该应用需开源并在GitHub上发布。
该应用的README文件应为英文,包含安装步骤,并包含视频demo或/和应用程序如何运行的描述。
每位开发者最多可提交 3 个申请。
竞赛大奖:
1. 专家提名奖(Experts Nomination)- 获奖者由InterSystems专家团选出:
🥇第一名 - 7,000 美元
🥈第二名 - 5,000 美元
🥉第三名 - 3,000 美元
🏅第四名 - 2,000 美元
🏅第 五 名 - 1,000 美元
🌟第 六~十 名 - 200美元
🌟第 十一~二十 名 - 100美元
2. 社区提名奖(Community Nomination)- 获得总投票数最多的应用:
🥇第一名 - 3,000 美元
🥈第二名 - 2,000 美元
🥉第三名 - 1,000美元
✨ 所有获奖者都将获得Global Masters徽章!
注:如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖金
关键参赛节点:
🛠 应用开发&提交阶段:
2023 年 6 月 12 日(美国东部时间 00:00):竞赛启动。
2023 年 7 月 2 日(美国东部时间 23:59):提交截止。
✅ 投票时间:
2023 年 7 月 3 日(美国东部时间 00:00):投票开始。
2023 年 7 月 9 日(美国东部时间 23:59):投票结束。
注意:在整个参赛期间(开发与投票期间),开发者可持续编辑、提升其应用。
谁可以参加?
任何开发者社区的成员均可参加,InterSystems内部员工除外(InterSystems contractor员工可以参加)。还没有账号?现在来建一个!
👥 开发者可以组团 创建一个协作应用程序,组团限定人数为2-5人。
请注意,要在您的README文件中标注您的团队成员——社区用户profile
资源助力:
✓ InterSystems IRIS(初学者):
使用 InterSystems IRIS 构建服务器端应用程序
新手学习路径
✓ ObjectScript 包管理器 (ZPM) 初学者:
如何使用 InterSystems IRIS 的 REST 应用程序构建、测试和发布 ZPM 包
使用 InterSystems IRIS 和 ZPM 的封装优先开发方法
✓ 如何将您的APP提交给大赛:
如何在InterSystems Open Exchange上发布应用程序
如何把参赛APP提交给大赛
✓ IRIS 应用程序示例:
intersystems-iris-dev-template
iris-embedded-python-template
interoperability-embedded-python
isc-cloud-sql-python-demo
rest-api-template
integratedml-demo-template
iris-fhir-template
iris-fullstack-template
iris-interoperability-template
iris-analytics-template
需要帮助?
加入InterSystems' Discord server频道,或跟帖评论提出您的问题!
期待您的精彩提交!祝好运 👍
参加本次比赛,即表示您同意此处列出的比赛条款。请在继续之前仔细阅读它们。 往期国内作品展示一Intersystems IRIS平台队列监控组件 汇总了一下近年来InterSystems中文社区的成员们往期参赛作品——
iris_log_analytics @银行 郝
message_key_query @王喆
Student score query @yang shijie
IRIS-Database-and-Machine-Learning-Based-Approaches-for-Prediction-of-Spontaneous-Intracerebral-Hemo @Fatian Wu
AlertDashboard @John Pan
HealthInfoQueryLayer @Botai Zhang
Dictionary comparison scheme of cache database @Weiwei Yang
Create a unified hospital data extraction scheme based on IRIS for Health @Deming Xu
RESTFUL_API_For_Hotel_OverBooking_System @jingqi LIu
Intersystems IRIS platform queue trend monitoring component @yubo mao
文章
Lilian Huang · 三月 15, 2022
这篇文章的目的是为了说明如何使用互操作菜单实现系统集成。
图片左侧窗口是接受外部系统发送信息的窗口。
信息接收方式种类很多,如定时监控指定目录来读取文件,定期查询数据库,输入且等待信息输出,或直接调用其他应用程序系统传送信息。
在系统集成配置中创建IRIS 互操作性菜单,接收到存储在一个对象中的信息被称为一条消息message(以下统称为消息)。消息被发送到组件component (以下统称为组件)中做后续处理。
使用所有接收到的信息或仅使用其中的一部分就能用来创建消息。
假设您要将信息中包含的消息发送给外部系统。这种情况下,需要将该消息发送给负责请求外网处理的组件(图右侧)。接收到消息的组件会请求外部系统对其进行处理。
此外,假设一条消息需要人工审查、数据转换或数据附加。这种情况下,消息会被发送到图表中间的业务流程管理组件(BPM),该组件负责协调处理流程。
消息用于在每个组件之间发送和接收数据。当发送或接收消息时,消息会被自动存储在数据库中。
由于消息存储在数据库中,因此在数据转换前后可以检查其差异性。在操作期间,或过程中间重新开始(重新发送),可以检查作为问题根源的消息。在开发、测试和操作的每个阶段可以验证正在使用的消息状态。
一个简单的系统集成图将分为三个部分(业务服务、业务流程和业务操作),如下图所示。
还有一个称为“生产环境Production”的定义,它存储有关要使用的组件信息(例如,连接信息)。
各组件功能如下:
业务服务Business Service
负责从外部源接收信息,创建消息,以及向其他组件发送消息。
业务流程Business Process
该功能在收到消息时被激活,并负责协调流程(按预先定义的顺序调用组件、等待响应、等待人工审核结果等)。
业务操作Business Operation
此功能在收到消息时被激活,会请求外部系统处理该消息。
消息是用于在组件之间发送和接收数据。
当收到一个消息时,业务服务以外的所有组件开启处理流程。
问题是,创建和使用此消息的目的是什么?
通过创建消息可获取中继到外部系统的数据并检索进入业务服务。
由于不是所有的外部系统都用相同类型的数据格式连接到 IRIS,并且要中继的内容各不相同,因此生产者可以根据信息自由定义消息类别。
有两种类型的消息:请求(= 请求消息)和响应(= 响应消息)。触发组件激活的消息被称为request(=请求消息),组件处理后响应的消息称为response(=响应消息)。
这些消息在考虑中继流程时会被设计。
在接下来的文章中,我们将使用一个案例来概述产品、消息和组件的创建。