文章 Michael Lei · 十二月 7, 2022 11m read

Intersystems IRIS for Health 对 FHIR 行业标准提供了出色的支持。主要特点是:
1.FHIR 服务器
2. FHIR数据库
3. REST 和 ObjectScript API 用于 FHIR 资源(患者、问卷、疫苗等)的 CRUD 操作

本文演示了如何使用这些功能,并展示了用于创建和查看表单类型的 FHIR 资源的Angula前端。

第 1 步 - 使用 InterSystems IRIS for Health 部署您的 FHIR 服务器

要创建 FHIR 服务器,您必须将以下说明添加到 iris.script 文件中(来自:https://openexchange.intersystems.com/package/iris-fhir-template

0
0 143
文章 Michael Lei · 十二月 5, 2022 2m read

血糖控制不佳与流产、入住 NICU、手术分娩和妊娠期较短的风险增加有关。尤其危险的是那些先前患有糖尿病的人,他们将受益于在受孕前维持接近正常的血糖。所有 DIP 患者都将从早期转诊到糖尿病服务中受益。如果要降低相关并发症、围产期死亡率和孕产妇发病率,重点将放在 DIP 的早期发现和有效治疗上,以实现血糖正常。糖尿病的早期诊断、生活方式管理和治疗将降低高血糖并发症的发生率和严重程度。

妊娠期糖尿病患者的血糖控制和妊娠结局:一项回顾性研究

连续血糖监测(CGM) 是一种全天候自我监测血糖水平的方法,这意味着用户可以在高血糖和低血糖发生时捕捉(并采取行动)。

与标准护理相比,CGM 改善了产妇糖化血红蛋白水平,降低了剖宫产率和新生儿出生体重。然而,不仅要监测血糖水平,还要跟踪异常症状并及时预约医生,这样才能提高生下健康婴儿的机会。

我们希望引入全新的医疗保健解决方案,让糖尿病诊断变得更简单、更复杂。我们相信,我们在实施 FHIR 和 IRIS 系统以处理和存储医疗数据方面的创新方法可以防止患者患上与妊娠糖尿病相关的许多进一步病症。 DiaBro将使医生能够更加关注追踪妊娠糖尿病的危险因素,并在患者病情发生致命变化时迅速采取行动。

0
0 155
文章 Michael Lei · 十一月 2, 2022 1m read

门为医疗行业打造,深度整合国内外医疗行业标准,专有技术服务医疗行业44年,可能是全球最早从事医疗信息化的公司;

耕细做打磨数十年的稳定、可靠、易用、可扩展的数据平台;

色鲜明,不唯技术、终生负责、以解决客户问题为核心的特色企业文化;

一代混合一体化架构,一个平台同时支持混合事务处理、传统架构、容器化、云原生等多种应用场景;

0
0 64
文章 Michael Lei · 十月 31, 2022 3m read

众说周知,EPIC 是电子病历厂商中当之无愧的领导者,本文让我们看看EPIC是如何玩转FHIR的,并进一步了解其互操作性方法、资源和API工具。

几十年来,EPIC和其他主要的EHR供应商一直在围绕着互操作性作斗争,有时候互相容忍,有时也得接受(开放接口)。

今天,大多数电子病历厂商已经针对市场和监管的压力采取了行动,采用FHIR API标准,扩大病人对医疗记录的访问。

但在早期,EPIC和其他竞争对手争先恐后地抢占市场份额,为了成为院内系统的主导者,与其他厂商分享数据、给别人提供数据访问似乎是自我毁灭。

那么今天,EPIC在FHIR API、SMART on FHIR 应用市场、患者访问和互操作性战略方面的立场如何? 以下是关于EPIC在FHIR API和互操作性上提供的简单介绍和链接。

EPIC 在FHIR API和互操作性上的战略和资源

EPIC互操作性的方法和选择

大多数EPIC集成的重点是通过EPIC系统提供扩展访问,但不一定与其他厂商共享。

Epic提供了以下几种连接方式(https://www.epic.com/interoperability/ehr-interoperability-from-anywhere):

0
0 531
文章 Michael Lei · 十月 27, 2022 1m read

WinterCorp 性能测试报告摘要

  • InterSystems的性能测试方法用来衡量 "许多运行状态下数据库应用的关键构件 "是有效的。
  • 与AWS Aurora MySQL、MariaDB、Microsoft SQL Server、Oracle和PostgreSQL相比,InterSystems IRIS显示出 "巨大的性能优势"。
  • InterSystems IRIS的插入速度是其他系统的1.7到9倍。InterSystems IRIS的数据速率是1.1到600倍。在插入率和查询率的组合上,没有其他系统在性能上能接近于InterSystems IRIS。
  • InterSystems IRIS的效率是AWS Aurora MySQL的2.7到3.1倍,而且随着集群中节点数量的增加,效率优势也越来越大。
  • 在整个三到五分钟的集群测试中,InterSystems IRIS插入的记录在插入后很快出现在查询中。

图1. 每vCPU每秒查询对比(InterSystems IRIS vs AWS Aurora MySQL,1-4 查询节点)

图2. 单节点插入/查询速度对比(InterSystems IRIS vs AWS Aurora MySQL vs MS SQL Server)

0
0 125
文章 Michael Lei · 十月 10, 2022 2m read

Kong提供了一个开源的配置管理工具(用Go语言编写),称为decK(即声明式Kong,declarative Kong)。

  • 通过deck ping检查deck是否能识别你的Kong Gateway安装
deck ping   
Successfully connected to Kong!
Kong version:  2.3.3.2-enterprise-edition
  • 通过deck dump把 Kong Gateway 配置导出到一个叫 "kong.yaml" 的文件
deck dump
  • 修改kong.yaml文件后, 通过 deck diff 显示区别
0
0 91
文章 Michael Lei · 十月 10, 2022 3m read

Hi 大家好,

我最近开始学习InterSystems IRIS 的互操作性,我发现官方文档对理解它的工作原理很有帮助,尽管我自己在实现它时仍有一些困难。在我的同事的帮助下,我成功地创建了一个系统的Demo,并从实践中学习。因此,我决定写一下文章,分享我得到的帮助,来帮助更多的其他人。

介绍

首先,让我们掌握一些基本概念:

  • 互操作性 - 这个词的含义并不像它的发音那样复杂--它基本上是把各种信息从一个系统带到另一个系统的“魔术”
  • 业务主机 - 如果把互操作性比作是魔术,那么业务主机Business Host就是魔术师的魔法帽--业务主机里有能够识别和接收信息的业务服务Business Service/BS,并将其作为消息发送给业务流程BP或业务操作BO。业务操作执行所需的操作(顾名思义)并传递信息。业务流程控制着消息的流动:它们定义了消息的去向(基于你所选择的任何东西)以及它是如何被传递的。
  • 适配器 - 适配器是一些我们可以用来识别和操作我们可能要处理的各种信息的类。在实践中,我们把它们作为参数和(可选)属性来访问其方法和属性

准备搭建Production

从简单的开始比较容易--让我们先想想服务和操作--比如说你有一个接收一种信息的服务,它很容易被我们唯一的操作所识别。

当生产的目的和它的部分非常清楚时,开发就比较容易。如果你愿意,画一张图或写下你希望它完成的步骤可能会有帮助。

例如:

0
0 128
文章 Michael Lei · 九月 24, 2022 2m read

亚太地区的医疗数字化环境正在快速发展。在不断增长的消费者需求、快速发展的技术和更复杂的护理需求的驱动下,医疗机构正面临着提供数字优先、无缝、可持续的医疗服务的压力。

网络攻击不断增加、人们对安全问题的关注也越来越多、不断上升的医疗成本,以及数据的爆炸性增长,医疗机构正在转向数字医疗技术,以希望把复杂的事情变得简单。

在2022年,哪些趋势正在塑造亚太地区医疗服务的未来?哪些机会是成熟的创新?医疗行业领导者如何确保他们的组织能够做好准备来利用新出现的机会?

趋势一  不断增长的数据量带来了复杂性

在我们寻找新的方法来利用数据的同时,数据量继续上升,越来越多的数据被综合起来,以建立有意义的联系并提供可指导行动的洞察。

趋势二  人工智能在医疗领域的应用加速

随着医疗行业在人工智能成熟度方面赶上其他行业。数据既是一个关键的成功因素,也是人工智能成功应用的一个障碍。
趋势三  互操作性解决方案释放数据的真正力量

随着部署互操作性解决方案的成本降低,在组织内部和外部,实现真正的互操作性的梦想也在逐步实现。

趋势四  远程医疗服务转向虚拟护理模式

远程医疗从一个在院外提供割裂的医疗服务转向一个更全面的、综合的虚拟护理模式。

趋势五 医疗物联网(Internet of Medical Things,IoMT)的崛起

随着IoMT市场价值的稳步增长,我们面临着的 "数据洪水",可能会影响我们释放这项技术的价值。

0
0 132
文章 Michael Lei · 九月 15, 2022 5m read

Spring Boot 是最常用来创建 REST API 和微服务的 Java 框架。 它可用于部署 Web 应用程序、可执行 Web 应用程序或桌面自包含应用程序,其中应用程序和其他依赖项打包在一起。 Spring Boot 允许执行许多功能,请参见:

注:要了解有关 SpringBoot 的信息,请参见官方网站 - https://spring.io/quickstart

要创建具有一个或多个微服务的 Web api 应用程序,可以使用 Spring IDE for Eclipse/VSCode,并使用向导配置上述将在应用程序中使用的技术,请参见:

您可以选择技术并创建项目。 所有技术都将通过 maven 导入。 它就像一个可视化的 zpm。

所创建的项目有一个类用于为应用程序提供支持,其中包含所有所需内容(Web 和应用程序服务器,以及所有依赖项、微服务概念)。

此项目的完整源代码在以下 open exchange 项目中: https://openexchange.intersystems.com/package/springboot-iris-crud

首先要配置 IRIS JDBC 驱动程序和 IRIS Hibernate 支持,为此,请将 jar 文件复制到 resources 文件夹,请参见:

打开 pom.xml 以配置这些 jar 文件的依赖项,请参见:

0
0 787
文章 Michael Lei · 九月 15, 2022 4m read

关于微服务架构(MSA)的IRIS定位的初学者指南。MSA在企业级Java世界中的能见度越来越高,因此,了解这股热潮背后的内容是至关重要的。我尝试着写下我的观点并与大家分享。

背景

首先,我必须承认。今年初夏,我的同事要求我收集一些关于匈牙利开发的医疗产品的信息。当我从相关公司得到反馈时,发现该产品是一个模块化系统,基于微服务架构(MSA)。好的。什么是MSA?在网上做了简短的研究,阅读了一些WIKI网页后,我得出结论:啊哈,又是一个 "架构"。我们可以用IRIS在 "架构层面 "遵守 "任何架构"--至少 "在某种程度上"。但也有一些恼人的地方。这让我对MSA有了更多的了解。到目前为止还不错,但是REST不是这篇文章的主要话题吗?MSA和REST之间的关系是什么?我访问的几乎每个网站都在例子中使用了RESTful网络服务。这让我有点怀疑。但总的来说,我赞同对MSA的一般总结:它是SOAP但做得很好。特别是因为有一些关于 "内聚 "和 "耦合 "的句子,我完全不明白。那么,如果MSA只是 "SOAP做得好",为什么我没有看到SOAP的例子?为什么这些例子(几乎)都是RESTful?

0
0 301
文章 Michael Lei · 九月 15, 2022 6m read

如果你读了我之前介绍QEWD微服务的文章,希望你会渴望了解如何使用它们。  所以在这篇文章中,我将解释你需要知道的东西,以便开始使用。

如果你在QEWD资源库中,你会发现目录: 

  https://github.com/robtweed/qewd/blob/master/example/jwt

在我之前关于JSON网络令牌(JWTs)和QEWD的文章中,我用这个示例应用程序来解释如何使用JWTs。  这个示例应用程序还演示了如何设置一个简单的微服务,在这种情况下是一个处理用户认证的服务。  所以,现在让我深入了解一下这个例子应用程序的这方面内容。

如果你想使用QEWD微服务,你也必须使用JWTs--它们提供了一种方法,用户的认证和会话可以被多个独立的QEWD服务器交叉通信和处理。  因此,请看一下启动文件:

   https://github.com/robtweed/qewd/blob/master/example/jwt/startup_file/q…

你会看到,它将QEWD配置为使用JWT,并定义了用于签署和加密JWT的加密字符串:

           jwt: {
            secret: 'someSecret123'
          },

而且,你可以看到如何定义微服务:

0
0 157
文章 Michael Lei · 九月 13, 2022 1m read

医疗科技市场正处于强劲的演变之中。Gartner的医疗科技的波浪图展示了这些技术是什么,非常好地反映了医疗行业的数字化趋势。

其中很多技术都可以使用InterSystems的技术(ISC Health Tech)来实现:

知情同意管理使用InterSystems Healthshare Stack来做患者主索引和知情同意管理。

0
0 95
文章 Michael Lei · 九月 13, 2022 12m read

  

Globals是InterSystems IRIS的数据持久性的核心。它很灵活,允许存储JSON文档、关系数据、面向对象的数据、OLAP立方体和自定义数据模型,例如思维导图。要了解如何使用globals来存储、删除和获取思维导图数据,请遵循以下步骤:

1. 把repo Clone/git到任意本地目录

$ git clone https://github.com/yurimarx/global-mindmap.git

2. 在该目录下打开Docker 终端并执行:

$ docker-compose build

3. 启动 IRIS 容器:

$ docker-compose up -d

4. 访问 http://localhost:3000 来使用思维导图的前端并创建类似以上的思维导图

本例子的源代码

存储数据 (更多请访问: https://www.npmjs.com/package/mind-elixir):

0
0 236
公告 Michael Lei · 九月 12, 2022

如果你在你发布在应用市场上的应用程序中使用代码质量分析器,这将显示在Open Exchange上。

1. 在Open Exchange 应用市场主页面,你可以过滤所有通过ObjectScript质量测试的应用程序

2. 在公众的应用页面(例子),你会在信息框中看到:

3. 在你管理应用程序的页面上,你会看到质量检查状态。

没有数据 - 如果质量检查没有安装在你的 repo 中
通过 - 如果代码通过了测试
失败--如果测试失败。这不会显示在公共应用程序页面上。

现在你可以在Open Exchange社区的objectscriptQuality上找到要添加到你的 repo中的文件。

0
0 108
文章 Michael Lei · 九月 12, 2022 1m read

针对InterSystems开发者社区的分析。使用InterSystems IRIS BI (DeepSee)、Power BI和Logi Report Designer制作的项目,可视化并分析InterSystems 开发者社区上的成员、文章、问题、答案、观点和其他内容和活动。

你可以看到自己的活动、文章和问题。跟踪你的贡献如何改变开发者社区。

使用IRIS BI、Adaptive Analytics、InterSystems Reports、Tableau和Power BI分析关于你和你朋友的统计数据。

该项目包含预配置的IRIS和Atscale在Docker容器中的部署以及BI系统的项目文件。

更多细节信息请见相应应用的README。

这个项目也支持在线部署,你可以在这里查看。

0
0 79
文章 Michael Lei · 九月 12, 2022 1m read

Hi 我在线部署了一个demo演示:

https://production-monitor.demo.community.intersystems.com/csp/user/EnsPortal.ProductionConfig.zen?PRODUCTION=dc.Demo.Production#

我更新了几个设置(文件路径和URL),并将调度类切换到dc.rest.GenericService。

我从文件服务重新发送了消息。我看到授权Auth和API服务都收到了消息。

API进程(还)没有返回所需的响应。更多内容请继续关注...

0
0 117
文章 Michael Lei · 八月 31, 2022 2m read

背景Background 

大多数网站都有一个 "Fav.ico "文件,用于设置网页的图标。大多数用户有多个环境,开发、测试和生产环境。通常情况下,你很难一眼就看出你在哪个环境中。如果能直观地通过图标看到你所处的版本和环境,可以提供更好的用户体验。在这个例子中,所有的实例都被命名为 "ENSEMBLE"。注意,这是在2022.1上使用的IRIS FOR HEALTH。 

默认图标是 IR

在这篇文章中,我们将把标识改为类似于以下的内容:

图标文件

图标文件安装在你的安装文件夹csp/broker/portal中 

  1. 创建一个名为Archive的文件夹放在该文件夹中 
  2. 复制并粘贴ISC_IRIS_icon.ico到这个文件夹,对旧图标进行备份 
  3. 使用一个图标编辑器。我使用了在线创建和编辑ICO文件| RedKetchup,因为它很容易使用,并且有简单的文本选项。 
  4. 将.ico文件复制到你的本地文件,并打开它(Icon-> Open)

5. 采取铅笔工具。清除任何旧的字母(提示:改变铅笔大小可以更容易操作)。

6. Click test. Set colour. Play around with the font. DON'T FORGET TO PRESS APPLY 

7. 保存图标. 

0
0 128
文章 Michael Lei · 八月 19, 2022 2m read

我很高兴与大家分享我第一次使用docker容器版本的IRIS for Health的经验,以探索你对使用或试用的兴趣,利用docker容器的优势,它是轻量级的,易于部署。本文将通过使用Renan Lourenco编写的名为ENSDEMO的GitHub仓库的实施步骤。

设置IRIS for Health社区版docker容器环境的步骤:

  1. 启动运行Docker
  2. 下载docker 镜像image

docker pull containers.intersystems.com/intersystems/irishealth-community:2022.2.0.304.0

  1. 从GitHub 克隆源repository

git clone https://github.com/OneLastTry/irishealth-ensdemo

  1. 改一下文件目录.
  2. 从docker-compose.yml建立容器镜像

docker-compose build

  1. 运行你的容器

docker-compose up -d

在我最初的尝试中,我无法下载irishealth community:2022.2.0.304.0的确切版本,因为它在ENSDEMO的最初发布中已经发生了变化。修复方法是,当试图从InterSystems容器注册表拉出docker镜像时,在注册表中拉出最新的可用标签。

2
0 447
文章 Michael Lei · 八月 18, 2022 2m read

Hi 社区的朋友们,大家好!

有时我们需要以编程方式自动将CSV数据从文件或者UR网址L导入到InterSystems IRIS。我们希望创建具有适当数据类型的类并导入数据。

我在Open Exchange上发布了一个模块csvgen,它正是这样做的。

如果你只需要将CSV文件导入IRIS,你可以这么做:

USER>do ##class(community.csvgen).Generate("/usr/data/titanic.csv",,"Data.Titanic")

Class name: Data.Titanic
Header: PassengerId INTEGER,Survived INTEGER,Pclass INTEGER,Name VARCHAR(250),Sex VARCHAR(250),Age INTEGER,SibSp INTEGER,Parch INTEGER,Ticket VARCHAR(250),Fare MONEY,Cabin VARCHAR(250),Embarked VARCHAR(250)
Records imported: 891
USER>

或者你的CSV文件在互联网上, 例如GitHub上面的新冠疫情数据 你可以这样获得数据:

0
0 367
文章 Michael Lei · 八月 9, 2022 23m read

在这篇文章中,你可以访问InterSystems开发者社区中与学习InterSystems IRIS最相关主题的文章库。找到按机器学习、嵌入式Python、JSON、API和REST应用、管理和配置InterSystems环境、Docker和云、VSCode、SQL、分析/BI、全局、安全、DevOps、互操作性、Native API排列的顶级发表的文章。快来享受学习的乐趣吧!

机器学习

机器学习是建立先进的数据分析和自动化人工活动的一种必要的技术,具有很好的效率。它可以创建认知模型,从现有的数据中学习,并根据其自我调整的算法进行预测、概率计算、分类、识别和 "非创造性 "的人类活动的自动化。

在所有情况下,InterSystems IRIS作为一个数据平台和环境来创建、执行、提供和使用这些机器学习模型。IRIS能够从SQL命令(IntegratedML)中使用ML,使用嵌入式Python和PMML(预测模型标记语言)来执行ML。你可以在以下文章中查看它的功能:

1
0 210
文章 Michael Lei · 八月 9, 2022 2m read

下面是一个ObjectScript片段,它允许为InterSystems IRIS创建数据库、命名空间和Web应用程序:

	set currentNS = $namespace
	
	zn "%SYS"
	
	write "Create DB ...",!
	set dbName="testDB"
 	set dbProperties("Directory") = "/InterSystems/IRIS/mgr/testDB"
 	set status=##Class(Config.Databases).Create(dbName,.dbProperties)
	write:'status $system.Status.DisplayError(status)
	write "DB """_dbName_""" was created!",!!
	
	
	write "Create namespace ...",!
	set nsName="testNS"
	//DB for globals
	set nsProperties("Globals") = dbName
	//DB for routines
	set nsProperties("Routines") = dbName
	set status=##Class(Config.Namespaces).Create(nsName,.nsProperties)
	write:'status $system.Status.DisplayError(status)
	write "Namespace """_nsName_""" was created!",!!
	
	
	write "Create web application ...",!
	set webName = "/csp/testApplication"
	set webProperties("NameSpace") = nsName
	set webProperties("Enabled") = $$$YES
	set webProperties("IsNameSpaceDefault") = $$$YES
	set webProperties("CSPZENEnabled") = $$$YES
	set webProperties("DeepSeeEnabled") = $$$YES
	set webProperties("AutheEnabled") = $$$AutheCache
	set status = ##class(Security.Applications).Create(webName, .webProperties)
	write:'status $system.Status.DisplayError(status)
	write "Web application """webName""" was created!",!
	
	zn currentNS
0
0 147
文章 Michael Lei · 八月 9, 2022 1m read

在Caché基础课程中,同学们同时学习了Caché开发和ObjectScript语法。为了帮助大家完成练习,我们提供了ObjectScript快速参考(俗称 "小抄")。

它不是所有ObjectScript的参考资料! 它是学生在课程中使用的ObjectScript命令和函数的列表,以及对象、集合等的常用语法。它还包含一些有用的宏。

我们正在为开发者社区提供一个pdf版本。

0
0 412
文章 Michael Lei · 八月 9, 2022 1m read

不久前,GitHub推出了在浏览器中快速运行VSCode的功能,可以在任何仓库中运行。 在任何仓库或拉动请求上按下 . 键,或将URL中的.com换成.dev,就可以直接进入浏览器中的VS Code环境。

这个VSCode是桌面版的轻型版本,完全基于浏览器。由于这个原因,它对允许以这种方式工作的扩展插件有限制。让我介绍一下VSCode-ObjectScript扩展的新版本1.2.1,它现在支持在浏览器模式下运行。

0
0 272
文章 Michael Lei · 八月 9, 2022 1m read

有时,有必要从主机操作系统的Shell(即你的ObjectScript程序所在的地方)执行命令,以启动程序、操作系统服务、安排crontasks以及其他活动。为此,该语言有一个叫做$ZF(-100). 的实用程序:

$ZF(-100,flags,program,args)

其中flags是你想执行的命令的类型。在我们的例子中,标志是"/ SHELL",用于在主机操作系统上执行shell命令。

Program是要执行的程序或服务的名称。

Args是传递给程序的执行参数。

一个例子是在提示符下打印一些内容,例如:

$ZF(-100,"/SHELL","echo","https://www.intersystems.com/")

如果你的程序依赖于改变当前目录,要运行该程序,在调用前使用以下命令:

Do ##class(%SYSTEM.Process).CurrentDirectory("/path/")
0
0 322
文章 Michael Lei · 八月 9, 2022 1m read

在测试你的代码时,你经常会遇到需要检查对象的实际内容。无论是使用 ZWRITE 还是 $system.OBJ.Dump()

你会得到一个简单的属性图片,"--- 属性值---"

而 "--- swizzled references ---" 更容易让人混淆 

用“--- calculated references ---" 你只是被留在了后面。

0
0 332