第四十五章 配置第三方软件以与 InterSystems 产品结合使用

产品通常在与非 工具一起运行的环境中运行,我们的产品与此类工具之间的交互可能会产生有害影响。 关于最佳、可靠部署配置的指导假定我们的产品可以在不受第三方工具干扰的情况下进行部署。例如, 发现用于安全、系统监控或病毒扫描的软件可能会影响我们产品的安装、性能和功能。对于直接与属于 产品的一部分或被 产品使用的文件进行交互的工具(例如病毒扫描程序)尤其如此。

了解客户面临的业务、合规性和其他要求会影响有关在给定环境中运行哪些软件以及如何配置此类软件的决策。一般来说, 建议我们产品的服务器端安装通过物理安全和隔离来保护。这种保护应该减少对其他工具的需求,或者至少减少它们运行的频率。

病毒扫描仪观察:

  1. 为了交付经过病毒检查的软件, 产品在经过消毒的环境中交付给我们的客户,并通过提供校验和进行验证。
  2. 性能影响。

[对策] 出于扫描目的,排除以下文件和目录:

3 0
0 65
文章
· 十一月 30, 2022 阅读大约需 5 分钟
HL7v2到底是什么?!

HL7(Health Level 7)是一套技术规范,用于医院信息系统(HIS)之间临床、财务和管理数据的计算机互交换。这些规范被不同程度地被纳入美国(ANSI)和国际(ISO)正式标准的语料库中。

HL7的L7表示它是在OSI模型的第7层,换句话说,在应用层运行的标准。这意味着HL7不需要考虑交换的安全性,也不需要考虑信息传输的安全性(这一点由较低层次的层来保证,例如用于安全的SSL/TLS或用于数据传输的TCP)。更准确地说,第7层支持终端用户进程和应用的通信,以及面向用户的软件应用的数据展示。作为OSI模型的最高层,也是最接近最终用户的层,第7层提供特定的应用功能,如识别通信伙伴和它们之间的服务质量,确定资源可用性,考虑隐私和用户认证,以及同步通信,并将应用与OSI模型的较低层连接起来。

回到HL7标准,HL7第二版标准(也称为Pipehat)最初创建于1989年,但目前仍在使用并定期更新,形成了2.1、2.2、2.3、2.3.1、2.4、2.5、2.5.1、2.6、2.7、2.7.1、2.8、2.8.1、2.8.2和2.9版本。v2.x标准是向后兼容的(例如,基于2.3版本的信息将被支持2.6版本的应用程序所理解),在更高的版本中,你会看到一些字段是专门为它而留的。

3 0
1 460
文章
· 四月 24, 2022 阅读大约需 10 分钟
在ObjectScript中调用Java程序 —— 一个国密算法的案例

尽管IRIS和HealthConnect拥有全面的互操作特性,但在实际工作中,还是有可能遇到需要使用遗留类库,dll SDK等方式与外部应用通信的情况。例如IRIS中并没有内嵌国密算法SM2、SM3和SM4,而开源社区中不乏通过Java、Python和C++等语言完成的具体实现。本文就将以调用SM4的Java实现为例展示ObjectScript程序与第三方语言通信的过程。

Github地址:https://github.com/LinZhuISC/javademo.SM4

跨编程环境调用设计要点

在开始实际操作之前,希望读者先针对整个调用过程中的主调方和被调方思考两个现象:

3 1
1 267
文章
· 二月 4, 2021 阅读大约需 7 分钟
案例: 建立只能使用SQL的用户

上一篇:
IRIS中的权限管理

在上一篇文章中,我们介绍了IRIS中的权限控制体系。在本文中我们将以一个常见的实施需求为例介绍如何使用IRIS的权限配置出一个只能使用SQL的用户。

需求的分解

和所有用户需求一样,当用户提出一个需求时,除其语义显式的含义之外,还需分析其是否具有没有明确说明的含义。
对于一个只能使用SQL的用户这样一个需求,即应当结合平台的特征分解成为功能需求:
具有一个合法,可通过用户名和密码使用IRIS的用户
该用户的数据库权限
- 确认项:可以使用SQL访问所有数据库还是某几个特定的数据库?
该用户的SQL权限
- 确认项:对于特定的数据库,是否可以执行所有的DDL?
- 确认项:对于特定的数据库,是否对每一张表都可以执行Select、Update等所有的DML
该用户的程序权限
- 确认项:用户是否可以通过Portal登录并管理IRIS?

3 3
1 258
文章
· 十二月 18, 2023 阅读大约需 2 分钟
镜像备机长时间宕机的处理

最近在多家现场都遇到了备机长时间宕机导致镜像日志写满磁盘的问题。在这里我将对这个问题发生的原因、发生后的处理、和如何预防这类问题发生进行一些讨论。

问题的发生一般始于一些原因导致的主机(如,01)宕机,进而触发镜像的主备切换。切换后备机(如,02)成为主机,并无缝接管业务。由于业务不受影响,如果不注意监控环境的话,很可能现场技术人员长时间都注意不到镜像的备机(01)是宕机状态。

备机长时间宕机会导致如下问题:

1. 这种情况下如果主机(02)再次遇到问题宕机,镜像将无法发挥其高可用性,无法保持业务稳定运行。

2. 主机(02)产生的镜像日志将无法同步到备机(01)。未同步的日志将一直被保存在主机(02)上不被删除。长此以往镜像日志磁盘将被写满,同样导致主机(02)宕机。

问题发现时切记不要手动从文件夹直接删除主机(02)上的镜像日志。未同步的日志一旦手动删除,镜像将无法自动同步,需要重做主备镜像。

问题发现时如果主机(02)还未宕机,此时尝试解决备机(01)问题,启动备机(01),等待镜像自动同步即可。同步完成之后镜像日志将可以被定时任务定时清除。如果遇到较为复杂的情况,现场请第一时间联系您的软件供应商,软件供应商将协同系联软件全球响应中心一起来解决您遇到的具体问题。

3 0
0 62

一、背景

1.1 我遇到了几个项目,他们的接口服务器崩溃了。 项目上希望尽快恢复服务器。他们的服务器在局域网上运行,他们不能使用git,服务器中有多个命名空间运行不同的服务,而且通常只有一台平台服务器。

1.2 如果消息中有字符流类型的属性,消息搜索页面不支持使用字符流属性进行过滤,因此很难找到想要的消息。

1.3 其他同事可能会更新服务器上的代码,代码中可能有些错误。

2.挑战

2.1 如何快速恢复?

2.2 如何支持字符流属性过滤消息?

2.3 如何在编译类时自动备份?

3.解决方案

1.编译时自动导出为备份文件

首先,我们定义一个名为“SYS.base”的类,它只有一个名为“ CLSBAKPATH”的参数,并设置它的值

3 1
0 115
文章
· 三月 6, 2022 阅读大约需 3 分钟
从 Ensemble 迁移到 IRIS for Health

我们所有的工作环境都是Ensemble 2017.2。但我们最近将迁移到IRIS for Health 2021.1版本。这是一个复杂的过程,但经过仔细考虑,我们找到了实现这一目标的方法。

我们有一个开发服务器和两个生产服务器的镜像,采用Failover模式。我们有40多个名称空间在使用中,有些有HL7集成,有些有Soap服务、Rest服务、文件处理......什么都有点。我们需要确定向IRIS的迁移不会出现问题,最重要的是,我们需要不惜一切代价避免服务中断。因此,我们必须做的第一件事是建立一个计划。

2 0
1 103
文章
· 九月 14, 2022 阅读大约需 6 分钟
第三十二章 管理许可(五)

第三十二章 管理许可(五)

Identifying Users

IRIS 许可系统识别不同的用户并为每个用户分配一个许可单元。用户由许可证用户 ID 标识,该 ID 可以是 IP 地址、用户名、Web 会话 ID 或其他标识符,具体取决于用户的连接方式。

由单个用户启动或为单个用户启动的多个进程共享一个许可证单元,最多可达每个用户的最大进程数。如果进程数超过此最大值,则会发生转换 IRIS 开始为该用户 ID 的每个进程分配一个许可单元。系统假设如果与用户 ID 关联的进程数超过最大值,则多个用户正在通过中介(例如防火墙系统)访问 IRIS,因此需要额外的许可证单元。 (由 Job 命令启动的进程计入调用该命令的用户 ID 下。)

2 0
0 50
文章
· 十月 10, 2022 阅读大约需 4 分钟
IRIS镜像状态监控

在生产环境中IRIS通常以故障转移集群的形态被部署,而集群中各故障转移成员的镜像状态将决定该集群在故障发生时是否能够顺利切换保障业务不中断。因此,成员状态通常也是运维团队需要巡检或监控的目标。

尽管IRIS内部API提供了丰富的集群配置、成员状态监控等一系列接口,但除Portal上的镜像监视器外,并没有特定的接口便于从外部系统访问(如进行企业级监控集成时),也没有整合好的监控接口可用与获取镜像的健康状态。但在IRIS上开发一个REST接口暴露镜像状态数据并不困难,如下所示:

2 0
0 132
文章
· 六月 8, 2023 阅读大约需 7 分钟
没有虚拟 IP 地址的数据库镜像

++ 更新:2018 年 8 月 1 日

使用内置于 Caché 数据库镜像的 InterSystems 虚拟 IP (VIP) 地址有一定的局限性。特别是,它只能在镜像成员驻留在同一网络子网时使用。当使用多个数据中心时,由于增加了网络复杂性( 此处有更详细的讨论),网络子网通常不会“延伸”到物理数据中心之外。出于类似的原因,当数据库托管在云端时,虚拟 IP 通常无法使用。

负载均衡器(物理或虚拟)等网络流量管理设备可用于实现相同级别的透明度,为客户端应用程序或设备提供单一地址。网络流量管理器自动将客户端重定向到当前镜像主服务器的真实 IP 地址。自动化旨在满足灾难后 HA 故障转移和 DR 升级的需求。

2 0
0 68
文章
· 六月 19, 2023 阅读大约需 5 分钟
IRIS通过SNMP发送警告通知的操作

上篇文章IRIS, Caché监控指导 - 警告和告警 发出后收到要求介绍一下发送SNMP通知的具体操作,这里介绍一下。

我省去了SNMP的原理,这个有需要的可以网上查找。这里只做一个配置的操作:测试怎么从一个Windows上安装的IRIS实例发送IRIS Alert给另一台Linux服务器。

第一步: 配置 Windows SNMP

因为安全原因,Windows 10不再默认安装中启动SNMP,用户需要手工安装SNMP启动服务。以下两个文章是古老的Window 2003和新的Windows 10中配置SNMP的安装,给各位做个参考。

2 0
1 125
文章
· 一月 7, 2021 阅读大约需 2 分钟
认识Global Masters 倡导中心,从这里开始!

亲爱的社区用户,您好! 我们诚挚邀请所有社区成员加入InterSystems Global Masters倡导中心,以便了解最新动态,获取对开发者社区)的贡献积分,并获得奖励!请浏览本文并了解如何加入,有哪些福利可以期待!

点击此处:现在加入


▶️ 什么是 Global Masters?

Global Masters 是一个游戏化平台,您可以在其中完成与InterSystems技术相关的挑战(任务),赢取徽章和积分,并用积分兑换各种奖励!

2 0
0 148
文章
· 九月 19, 2022 阅读大约需 3 分钟
第三十七章 在 UNIX®、Linux 和 macOS 上使用 IRIS(二)

第三十七章 在 UNIX®、Linux 和 macOS 上使用 IRIS(二)

在 UNIX® 上启动

IRIS 实例使用以下资源来控制启动、停止和创建新进程:

  • install-dir\mgr 目录中的 iris.ids 文件。
  • 共享内存。

守护进程资源锁

IRIS 使用建议文件锁定来防止同一实例在不同机器上的多次启动。使用咨询文件锁定,单个锁定文件(在本例中为 install-dir/mgr 目录中的文件 ilock)可用于独占锁定多个资源。控制进程、写入守护进程和日志守护进程分别锁定锁定文件的一个单独部分。如果 ilock 文件的这一部分已被锁定,则启动将终止。不同守护进程持有的锁称为守护进程资源锁。

文件锁由进程持有,直到进程终止。因此,如果持有任何锁,则表明某个节点上的某个守护进程正在运行。但是,它并不表示实例是否健康并正常运行。

2 0
0 70
文章
· 九月 30, 2022 阅读大约需 2 分钟
第二章 Caché 服务器页面简介 - 你应该知道

第二章 Caché 服务器页面简介 - 你应该知道

你应该知道什么

要高效使用 CSP,应该熟悉以下内容:

  • Caché objects and ObjectScript

  • HTML

  • JavaScript

  • SQL

CSP Samples

Caché 附带一组示例CSP 页面。要查看这些:

2 0
0 79
文章
· 十一月 5, 2022 阅读大约需 7 分钟
Caché实现SM4分组密码算法

0. 算法概述

SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。

1. 密钥及轮密钥

密钥长度为128比特,表示为MK=(MK(0),MK(1),MK(2),MK(3)),其中MKi(i=0,1,2,3)为字。
轮密钥表示为(rk(0),rk(1),...,rk(31)),其中rk(i)(i=0,...,31)为32比特字。轮密钥由秘钥生成。

密钥及轮密钥

2 0
0 300
文章
· 五月 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

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

2 0
2 242
文章
· 三月 17 阅读大约需 12 分钟
生成式大语言模型和检索增强生成

近来生成式大语言模型掀起了革命性的AI浪潮。生成式大语言模型是什么原理?我们怎么在业务中利用它?

一. 大语言模型的工作原理

生成式大语言模型是生成式人工智能底层的机器学习模型,是一种用于自然语言处理的深度学习模型。

人工智能、机器学习与大语言模型的关系如下图:

1.1 为什么我们称之为大语言模型?

大语言模型的“大”体现在多个方面:

2 0
0 309
文章
· 十二月 31, 2022 阅读大约需 10 分钟
HL7 ADT消息的类型和ADT^A04的例子

在上一篇文章中,我们讨论了标准 HL7v2 的起源、结构和消息类型。现在让我们看一下最常用的消息类型之一及其结构示例。我说的是 ADT。

HL7 ADT 消息(入院、出院、转院)用于在医疗机构传达基本患者信息、就诊信息和患者状态。 ADT 消息是使用最广泛且容量最大的 HL7 消息类型之一,因为它为许多触发事件提供信息,包括患者入院、注册、取消、更新、出院、患者数据合并等。

2 0
0 681
文章
· 一月 31 阅读大约需 21 分钟
用Java开发互操作产品 - PEX

InterSystems IRIS、Health Connect和上一代的Ensemble提供了优秀的互操作架构,但即便有低代码开发能力,很多开发者还是希望能用自己的技术栈语言在InterSystems的产品上开发互操作产品。

考虑到互操作产品本身的开放性要求和各个技术栈背后庞大的生态价值,InterSystems IRIS和Health Connect提供了Production EXtension (PEX)架构,让开发者使用自己的技术栈语言来开发互操作解决方案。目前PEX支持Java、.net、Python。

这里我们介绍使用Java利用PEX进行互操作产品的开发。

一 InterSystems IRIS上使用Java开发的基础

在进入PEX主题前,需要简单介绍一下Java在InterSystems IRIS上开发的各种技术选项,因为PEX也是以这些技术选项为基础的。

2 0
1 75
文章
· 十月 12, 2022 阅读大约需 3 分钟
第十四章 CSP 中的 HTTP 请求 - CSP.Page 类

第十四章 CSP 中的 HTTP 请求 - CSP.Page 类

CSP 服务器上,所有 HTTP 请求都通过调用由类中的 %CSP.Page 定义的方法来处理。类中的 %CSP.Page 从不直接处理请求本身;它只是定义了处理 HTTP 请求所需的接口。实际的事件处理的 %CSP.Page 的子类完成(手动创建或作为处理 CSP 源文件的结果)。

%CSP.Page 的子类永远不会被实例化;也就是说,不会在对象中创建 %CSP.Page%CSP.Page 定义的方法都是类方法,不需要对象即可调用。正如我们将看到的,这些方法所需的任何状态信息都由 CSP 服务器管理的其他对象(例如%CSP.Request 和对象中的 %CSP.Session)提供。

2 0
0 54
文章
· 六月 12, 2023 阅读大约需 2 分钟
使用 Synthea 生成 FHIR 测试数据

文章相关视频参见Synthea生成FHIR测试数据,以及FHIR服务器加载FHIR资源文件

1. 什么是Synthea

Synthea是一个开源软件包,可以模拟生成患者就诊数据。他的github地址在这里

生成的就诊模版从最初的模拟美国前十种常见病、前十种慢性病到现今超过90种不同的模型。详细模型参见这里

基于当前版本,Synthea的特性包括:

2 0
1 115

3.1 InterSystems IRIS内码与多语言支持

3.1.1 InterSystems IRIS内码与字符集转换

InterSystems IRIS的内码是UTF-16,因此它支持Unicode多语言字符集。对于其它字符编码,例如UTF-8、GB18030、Big 5,它会自动进行转码。例如对于简体中文,它将GB18030输入数据转换为UTF-16,或者将UTF-16数据转换为GB18030输出。

2 0
0 212