文章
· 四月 17, 2022 阅读大约需 3 分钟
在IRIS容器里添加VSCode

在IRIS容器里添加VSCode

设置可重复的开发环境的最简单的方法之一是使用容器。我发现在快速迭代时,在我的开发环境容器里托管一个vscode实例是非常方便的。因此,我创建了一个快速的容器脚本,将一个基于浏览器的vscode添加到IRIS容器中。这应该适用于大多数2021.1以上的容器。我的代码库可以在这里找到

带VSCode 且预连接好的InterSystems IRIS 容器

0 0
0 257
文章
· 五月 15, 2022 阅读大约需 7 分钟
InterSystems 最佳实践之 掌握 %SYSTEM.Encryption 加密类

InterSystems IRIS对加密、解密和哈希操作有很好的支持。在%SYSTEM.Encryption(https://docs.intersystems.com/iris20212/csp/documatic/%25CSP.Documatic.c...)类中,有市场上主要算法的类方法。


IRIS算法和加密/解密类型

正如你所看到的,这些操作是基于密钥的,包括3个类:

0 0
0 256
文章
· 五月 12, 2021 阅读大约需 11 分钟
InterSystems 数据平台和性能 - 第 5 篇 使用 SNMP 进行监控

InterSystems 数据平台和性能 - 第 5 部分 使用 SNMP 进行监控

在之前的帖子中,我展示了如何使用 pButtons 收集历史性能指标。 我首选 pButtons 是因为我知道它随每个数据平台实例(Ensemble、Caché、...)一起安装。 不过,还有其他方法可以实时收集、处理和显示 Caché 性能指标,以进行简单的监视,或进行更重要的并且复杂得多的运营分析和容量计划。 最常见的数据收集方法之一是使用 SNMP(简单网络管理协议)。

SNMP 是 Caché 向各种管理工具提供管理和监控信息的标准方式。 Caché 在线文档包含了 Caché 和 SNMP 之间接口的详细信息。 虽然 SNMP 应该可以直接与 Caché 配合工作,但仍有一些配置技巧和陷阱。 我经历了很多次错误的开始,并且在 InterSystems 其他同事的帮助下,才让 Caché 与操作系统 SNMP 主代理建立对话,所以我写了这篇帖子,希望您可以避免同样的痛苦。

在本帖中,我将介绍如何为 Red Hat Linux 上的 Caché 设置和配置 SNMP,您应该能够对其他 *nix 版本使用相同步骤。 我使用 Red Hat 写这篇文章是因为在 Linux 上进行设置更棘手一些;在 Windows 上,Caché 会自动安装一个 DLL 来与标准 Windows SNMP 服务连接,所以应该更容易配置。

0 2
1 256
文章
· 一月 10, 2021 阅读大约需 11 分钟
使用规范优先的方式开发REST API

在本文中,我想谈一谈规范优先的 REST API 开发方式。

传统的代码优先 REST API 开发是这样的:

  • 编写代码
  • 使其支持 REST
  • 形成文档(成为 REST API)

规范优先遵循同样的步骤,不过是反过来的。 我们先制定规范(同时兼做文档),然后根据它生成一个样板 REST 应用,最后编写一些业务逻辑。

这是有好处的,因为:

  • 对于想要使用你的 REST API 的外部或前端开发者,你总是有相关且有用的文档
  • 使用 OAS (Swagger) 创建的规范可以导入各种工具,从而进行编辑、客户端生成、API 管理、单元测试和自动化,或者许多其他任务的简化
  • 改进了 API 架构。 在代码优先的方式中,API 是逐个方法开发的,因此开发者很容易失去对整体 API 架构的跟踪,但在规范优先的方式中,开发者被强制从 API 使用者的角度与 API 进行交互,这通常有助于设计出更简洁的 API 架构
  • 更快的开发速度 - 由于所有样板代码都是自动生成的,你无需编写代码,只需开发业务逻辑。
  • 更快的反馈循环 - 使用者可以立即查看 API,并且只需修改规范即可轻松提供建议
    让我们以规范优先的方式开发 API 吧!
0 0
0 256
文章
· 三月 25, 2021 阅读大约需 8 分钟
将 Python ODBC 连接到 IRIS 数据库 - 第 2 条快速笔记

关键字:PyODBC,unixODBC,IRIS,IntegratedML,Jupyter Notebook,Python 3

目的

几个月前,我简单谈到了关于“将 Python JDBC 连接到 IRIS”的话题。我后来频繁提起它, 因此决定再写一篇 5 分钟的笔记,说明如何“将 Python ODBC 连接到 IRIS”。

在 Windows 客户端中通常很容易设置 ODBC 和 PyODBC,不过我每次在 Linux/Unix 风格的服务器中设置 unixODBC 和 PyODBC 客户端时,都会遇到一些麻烦。

有没有一种简单连贯的方法,可以不安装任何 IRIS,在原版 Linux 客户端中让 PyODBC/unixODBC 针对远程 IRIS 服务器运行?

0 0
0 255
文章
· 九月 25, 2022 阅读大约需 78 分钟
IRIS与Caché的23种设计模式

IRIS的23种设计模式

第一章 Caché 设计模式 简单工厂模式

定义

  • 简单工厂模式属于创建型模式,又可称为静态工厂模式,这是由一个工厂对象决定创建出哪一种产品类的实例

使用场景

  • 工厂类负责创建的对象比较少
  • 客户只需知道传入工厂类的参数,而无须关心创建对象的逻辑

优点

  • 使用户根据参数获得对一个的类实例,避免了直接实例化类型,降低了耦合性
  • 能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类:客户类往往有多个,如果不使用简单工厂,那么所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,所有的客户类都要进行修改

缺点

  • 可实例化的类型在编译期间已经被确定。
  • 如果增加新类型,则需要修改工厂,这违背了开放封闭原则
  • 子类多过不适合使用

示例

  • 用Caché 实现一个计算器控制台程序,要求输入两个数和运算符号。
17 2
1 255
文章
· 三月 11, 2021 阅读大约需 10 分钟
第八章 SQL修改数据库

第八章 SQL修改数据库

可以对现有的表使用SQL语句,也可以对相应的持久化类使用ObjectScript操作来修改InterSystems IRIS®数据平台数据库的内容。
不能修改定义为只读的持久类(表)。

使用SQL命令为维护数据的完整性提供了自动支持。
SQL命令是一个原子操作(全部或没有)。
如果表上定义了索引,SQL将自动更新它们以反映更改。
如果定义了任何数据或引用完整性约束,SQL将自动执行它们。
如果有任何已定义的触发器,执行这些操作将拉动相应的触发器。

插入数据

可以使用SQL语句或设置和保存持久化类属性将数据插入表中。

使用SQL插入数据

INSERT语句将一条新记录插入SQL表中。
可以插入一条记录或多条记录。

下面的示例插入一条记录。
它是插入单个记录的几种可用语法形式之一:

0 0
0 255
文章
· 十月 7, 2022 阅读大约需 4 分钟
第三方HA软件结合MIRROR使用方法探讨

在Cache 2018之前的版本中,数据库的高可用是通过第三方HA软件保障的,Cache数据库在2018以后及IRIS支持MIRROR技术,通过MIRROR可以保障数据库的高可用及数据的冗余,那么在新版本中,第三方HA软件与MIRROR是否可以同时使用以实现更高的数据库可用性?使用起来有哪些需要注意的?本文重点介绍探讨上述两个问题。

12 0
0 253

前面介绍了通过mirroring或shadow,使用journal日志过滤器的方式,在不改动数据模型的情况下实现InterSystems IRIS/Caché上的CDC能力。
但如果你可以修改InterSystems IRIS/Caché上的数据模型,也可以考虑使用DSTIME特性实现变更数据捕获。

DSTIME特性

DSTIME特性是InterSystems IRIS/Caché的嵌入式实时BI工具DeepSee用于跟踪数据变更的。
InterSystems IRIS和2011版之后的Caché,都支持DSTIME特性。它会自动记录数据库中SQL表记录或持久化对象的变更,并将变更记录写入持久化的多维数组^OBJ.DSTIME中。

0 0
0 251
文章
· 四月 11, 2021 阅读大约需 16 分钟
人月神话

人月神话

焦油坑

  1. 编程系统产品开发的工作量是供个人使用的,独立开发的构件程序的9倍。我估计软件构件产品化引起了3倍工作量,将软件构件整合成完成系统所需要的设计,集成和测试又强加了3倍工作量,这些高成本的构件在根本上是互相独立的。
  2. 编程行业“满足我们内心深处的创造渴望和愉悦所有人的共有情感”,其提供了五种乐趣:
  • 创建事物的快乐
  • 开发对其他人有用的东西的乐趣
  • 将可以活动,相互啮合的零部件组装成类似迷宫的东西,这个过程所体现出令人神魂颠倒的魅力。
  • 面对不重复的任务,不断学习的乐趣。
  • 纯粹的思维活动。
  1. 同样,这个行业具有一些内在固有的苦恼:

- 将做事方式调正到追求完美是学习编程的最困难的部分。
- 由其他人设定目标,并且必须依靠自己无法控制的事物,权威不等同于责任
- 任何创造性活动都伴随着枯燥艰苦的劳动,编程也不例外
- 人们通常期望项目在接近结束时,软件项目能收敛得快一些,然后,情况却是越接近完成,收敛得越慢。

0 1
0 251
文章
· 二月 16, 2023 阅读大约需 9 分钟
ChatGPT 为您创建消息转换?

A "big" or a "little" ask for ChatGPT?


几周前我尝试了 OpenAI GPT 的编码模型,看看它是否可以在医疗保健系统之间进行一些消息转换。它肯定可以,在相当大的程度上。

已经将近 3 周了,对于 ChatGPT 来说是很长很长的时间,所以我想知道它现在成长得有多快,以及它是否可以为我们做一些集成工程师的工作,例如它是否可以创建一个 InterSystems COS DTL将 HL7 转换为 FHIR 信息?

在不到一两分钟的时间内,我立即得到了一些答案。


测试

首先我想测试一下我是在和它背后的正确“人”说话


问题一:如何将HL7 V2.4报文转为FHIR STU3?


ChatGPT

1 2
0 250
文章
· 五月 4, 2023 阅读大约需 6 分钟
IRIS, Caché监控指导 - 警告和告警

当系统发生严重危机,一般错误,以及其他需要管理员关注的其他事件发生时, 管理员必须及时的收到系统发出的警告信息。

上篇文章中介绍了控制台日志。这是个文本文件,包含几乎所有的系统级别的错误信息,并且有严重级别的标识,那么使用工具来监控控制台日志文件,并给管理员发送通知是可行的方案吗?

当然。实际上,有些用户正是这样来管理Caceh'/IRIS的。他们有自己熟悉的监控工具,实时读取控制台日志,分析内容,并完成警告通知的发送。

这篇文章我来介绍的是Cache'/IRIS内置的处理警告的机制和配置方法。 通过把严重的错误和事件写入另一个文本文件alert.log,并配置邮件,SNMP, API接口发送通知,可以基本的实现caceh'/IRIS系统的警告通知工作。

Alerts.log

控制台日志中最严重的两个级别(级别2和3), 的记录会被写入另一个文本文件,名字是Alert.log。 默认存储于\installDir\mgr\路径。

  • 在操作门户中“系统>系统日志>控制台日志” ,你会发现 Alerts.log的内容会以红色的字体显示在最上方。比如下图中有2个严重级别的Alert。

2 0
0 249
文章
· 一月 11, 2021 阅读大约需 27 分钟
面向 Amazon Web Services (AWS) 的 InterSystems IRIS 示例参考架构

Amazon Web Services (AWS) 云提供广泛的云基础设施服务,例如计算资源、存储选项和网络,这些都非常实用:按需提供,几秒内就可用,采用即付即用定价的模式。 新服务可得到快速配置,且前期无需支出大量资金。 这使得大企业、初创公司、中小型企业以及公共部门的客户可以访问他们所需的基础设施,从而快速响应不断变化的业务需求。

更新日期:2019 年 10 月 15 日

0 0
0 246
文章
· 三月 25, 2021 阅读大约需 4 分钟
为什么 COVID-19 对机器学习也有危险?(Part I)

几个月前,我在 MIT Technology Review 读到一篇很有意思的文章,作者解释了新冠疫情如何给全球 IT 团队带来关乎机器学习 (ML) 系统的难题。

这篇文章引起我对 ML 模型部署后如何处理性能问题的思考。

我在一个 Open Exchange 技术示例应用 (iris-integratedml-monitor-example) 中模拟了一个简单的性能问题场景,并提交到 InterSystems IRIS AI Contest。 读完这篇文章后您可以去看看,如果喜欢,就请投我一票吧! :)

0 0
0 244

我们很高兴与你分享有趣的信息,以及告诉你为什么Python是好的,它被用在哪里。

其中使用最多的库是NumPy和Pandas。NumPy(Numerical Python)用来对大型数据集进行分类。它简化了数组上的数学运算及其矢量化。Pandas提供两种数据结构:系列Series(一个元素列表)和数据框架DataFrames(一个有多列的表格)。这个库将数据转换为数据框架,允许你删除和添加新的列,以及执行各种操作。

Python为数据分析项目提供了无数的工具,可以帮助完成任何任务。

0 0
0 243

Hi 开发者们!一年一度的 InterSystems IRIS 开发者大奖赛已启动!

我们非常高兴地邀请大家参加此次编程大赛——使用 InterSystems IRIS 数据平台构建开源解决方案!

🏆 InterSystems 2023 年度编程大奖赛🏆

时间: 2023年6月12日-7月9日(美国东部时间)

奖金池: 26,000 美元

2 2
1 242

亲爱的社区开发者们,大家好!

我们很高兴地宣布,新一轮InterSystems开发者竞赛开启了!

🏆 InterSystems 编程大赛:开发者工具 🏆

请提交具有如下特性的应用程序——能够加速开发、贡献更多高质量代码、帮助用户测试、部署、支持或监控基于InterSystems IRIS的解决方案。

间: 2021年3月29日- 4月25日

Total prize: $8,500

2 3
0 242

%SYS.Journal.Record 类有一个查询(query), List, 可以列出Journal文件中记录的数据修改历史。例如,要查询谁对global节点^QP(1,2)做过修改,可以使用如下代码。它查询Journal文件(输入参数pFilePath)中的global节点(输入参数pSearchGlobal)的操作:

2 0
2 241
文章
· 一月 20, 2021 阅读大约需 6 分钟
InterSystems IRIS医疗版2020.1 HL7基准测试

简介

最近完成了针对IRIS医疗版2020.1版本的性能及可扩展性基准测试,重点关注HL7v2的互操作性。本文介绍了在各种工作负载下观察到的吞吐量,并提供了IRIS医疗版用作HL7v2消息传输互操作性引擎时的系统常规配置和调整准则。

基准测试模拟了与实际环境接近的工作负载(详细信息请参见“工作负载说明和方法”部分)。本次测试的工作负载包括HL7v2患者管理(ADT)和生命体征结果(ORU)数据,并包含数据内容转换和路由。

IRIS医疗版2020.1版本可以表明,采用第二代Intel®Xeon®可扩展处理器和Intel®Optane™SSD DC P4800X系列SSD存储的商用服务器,每天的持续消息吞吐量超过23亿条(入站和出站总量),与此前的Ensemble 2017.1 HL7v2吞吐量基准测试相比,扩展性提高了一倍多。

1 2
0 238