InterSystems 开发者社区汇聚了 17,845 位出色的开发者
InterSystems IRIS 程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
文章
· 十一月 16, 2023 阅读大约需 17 分钟
浅谈一下个人基于IRIS后端业务开发框架的理解

浅谈一下个人基于IRIS后端业务开发框架的理解

现状

由于国内使用基于M语言IRIS平台几乎都在医疗行业。医疗系统又非常的庞大和复杂。前期由于快速占领市场,系统数量越来越多,到了临界点后就产生了质变,所以前期基于功能的线性开发注重效率,所以导致大量的产品业务代码有如下集中情况:
- 系统交互乱如麻,各系统的交互关系变成了网状。
- 系统规模庞大,内部耦合严重,牵一发而动全身,后续修改和扩展困难,开发效率低。
- 关键功能逻辑复杂,容易出现问题,出现问题后很难排查和修复,开发成本高。
- 功能越来越多,导致系统复杂度指数级上升。

- 重复造轮子,相似的功能不断重复开发。

image

如上图所示,这仅仅是展示了五个模块之前的交互,在此基础上继续增加模块则复杂度成指数级上升,并且如果每个模块之间如果没有做好接口管理,维护起来也是地狱级别。

8 1
0 115

我可以从AIX命令行提示符运行以下命令,而不会出现任何问题

-bash-2.05b$ echo t
t
-bash-2.05b$ echo œ
œ

当我从内部Cache调用时,我遇到了问题。

USER>D $ZF(-1,"echo t")
t

USER>D $ZF(-1,"echo œ")

D $ZF(-1,"echo œ")
^
<TRANSLATE>

我正在使用Cache 2017.2。有人可以帮忙吗?

谢谢你。

0 1
0 117

Hi colleagues!

Is there a way to export globals in XML if I have the access to Management Portal or any other web app?

Currently, it gives the option to export into gof format only.

Hi 同事们好!

是否有办法通过管理门户或任何其他的web app以XML的形式导出globals?

目前,它只提供了导出为gof格式的选项。

0 1
0 98

万能的社区我在cache中创建一个视图时遇到了麻烦,其查询方式为:

SELECT column1, column2, column 3
FROM table
WHERE
(column1, columnn 2) IN (SELECT c1, c2 FROM table2 GROUP BY c1)
ORDER BY column1

我认为问题出在where子句上,因为它不能取两列: .

具体错误信息为: [SQLCODE: <-1>:<Invalid SQL statement>] [%msg: < ) expected, , found^ (column1,>]

请问如何解决? 谢谢!

0 1
0 118
文章
· 十月 26, 2022 阅读大约需 3 分钟
运行池大小配置的解读

“池大小”(PoolSize)设置的值决定了一个组件的作业的量和启动方式。在这篇文章中我们将具体讨论对于不同类型的组件来说“池大小”设置的可能值和这些值所代表的含义。

Pool Size = 1

对于所有的组件来说,运行池大小为1的含义都是一样的: 该组件有且只有一个作业,单独运行该组件的代码,顺序处理发送到该组件的消息(FIFO)。

Pool Size > 1

对于业务进程(BP)和业务操作(BO)来说,当运行池大小大于1时,该组件将运行多个作业(作业数=运行池大小设置数)。每个作业都只运行该组件的代码,但消息处理的顺序将被打乱。将运行池的大小设为大于1的值可以在一定程度上提升组件处理消息的性能,但是每个作业的性能还是受限于系统资源的,所以并不是说组件的性能可以随着运行池的大小增加而无限提升。

对于轮询类业务服务(Polling BS)来说,当运行池大小大于1时,该服务也将运行多个作业(作业数=运行池大小设置数)。但这种配置会导致多个进程对轮询结果产生竞争(race condition),所以一般情况下轮询服务不应将运行池大小设为大于1的数值。

1 1
0 141
文章
· 五月 9, 2023 阅读大约需 5 分钟
接收从 PACS 到 IRIS for Health 的 DICOM 消息

在上一篇文章中,我们看到了如何捕获位于我们服务器上一个文件夹中的DICOM类型的文件,以及如何将它们发送到PACS软件(在我们的案例中是ORTHANC开源解决方案)进行存储和咨询。那么,在这篇文章中,我们要处理的是相反的动作。

在我们的例子中,我们将配置我们的IRIS for Health Prodcution,以接收从我们的PACS通过TCP/IP发送的图像。要做到这一点,我们必须包括一个标准EnsLib.DICOM.Service.TCP类的业务服务,它将允许我们配置接收端。让我们来看看这个配置:

如您所见,我们已经声明了将监听的端口,通过该端口将接收从 PACS 发送的图像。我们还配置了本地 AET (Application Entity Title,应用实体名称)(IRIS) 和将向我们发送 DICOM (ORTHANC) 的 PACS,请记住这些字段是强制性的,并且将用于检查发送和接收 DICOM 消息的有效性。不要忘记必须从 DICOM 设置菜单配置和关联两个 AET:

1 1
0 136
文章
· 七月 25, 2023 阅读大约需 3 分钟
第二章 HL7 架构和可用工具

第二章 HL7 架构和可用工具 - HL7 模式和消息概述

HL7 模式和消息概述

InterSystems 产品可以处理和传递 HL7 消息,而无需使用架构来解析它,但将架构与消息关联允许执行以下操作:
- 解析消息并访问以下字段值:
- 数据转换
- 路由规则
- 自定义 ObjectScript 代码
- 验证消息是否符合架构。

每个 HL7 消息均由消息类型标识,该消息类型在 MSHMessageType 字段 (MSH:9) 中指定。一些消息类型共享相同的消息结构。例如,在HL7版本2.3.1中,用于预先接纳患者的ADT_A05消息具有与ADT_A01接纳消息相同的结构。该架构指定 ADT_A05 消息具有结构类型 ADT_A01

0 1
0 56

问题:

1、EnableVSSBackup这个参数在哪里设置?

2、Cache是否有自己的writer,如果有,怎样查到,叫什么名?

3、实现Cache的全量增量备份,使用VSS是否是最佳实践?

4、是否有Cache全量增量备份的实践案例,以供参考?

————————————————————————————————————————————————————————————————————————————————

我参考这篇官方文档,在启动应用时EnableVSSBackup会默认设置为1,但是我在配置或者应用界面中并没有看到这参数。

0 1
0 104

最近遇到一个问题,需求是把大量的数据写入到第三方数据库oracle,目前用的是 EnsLib.SQL.OutboundAdapter 方案,但是感觉队列很容易卡死,不知道是什么原因。然后想换成 set res = ##class(%ResultSet).%New("%DynamicQueryGW:SQLGW") 这种方式执行插入和更新。但是它返回的错误是网关调用失败,我希望得到具体的错误,我用这个对应额sql语句去 navicat执行就能提示出明确的错误!有大佬处理过类似的问题吗?有更好的方案吗?

0 1
0 102
文章
· 七月 4, 2023 阅读大约需 11 分钟
小实验--生成式AI和 FHIR 结合

这是个实验项目,使用OpenAI API与FHIR资源和Python相结合来回答医疗行业的用户提问。

项目想法

生成式人工智能,如OpenAI上提供的LLM模型, 已被证明在理解和回答高层次问题方面具有显著能力。他们使用大量的数据来训练他们的模型,因此他们可以回答复杂的问题。

他们甚至可以使用编程语言,根据提示创建代码 --我不得不承认,让我的工作自动化的想法让我感到有些焦虑。但到目前为止,似乎这是人们必须要习惯的事情,不管你喜不喜欢。所以我决定做一些尝试。

0 1
0 99
文章
· 十一月 20, 2023 阅读大约需 2 分钟
通过XSL自动生成消息模型

前言

在日常工作中经常会遇到大量的接口开发需求,对于没有IRIS开发经验的同事来说很不友好,需要求助于公司开发人员来做接口开发,对项目联调进度多少会有些影响,本文站在没有IRIS开发经验的工作人员角度来阐述一下如何利用xslt转换文件自动生成接口联调所需要的Message模型。

基本思路是首先定义一套通用的数据模型,用来接收定义消息所需要的基础属性,包括类名,请求&响应(对应继承Ens.Request&Ens.Response),节点名称、节点长度、是否必填、默认值、字段约束等等。

10 1
0 75
02/21/24-18:32:48:515 (7568) 3 InterSystems IRIS Internal Failure

Access Violation (0xC0000005) occurred at 00007FFF3DE9C4E8
Process = 00001D90 Thread = 0000203C
Exception Count=1 b_msyslog=0 b_DumpVar=0 b_DumpVar2=0
b_GRelease=0 b_GRelease2=0 b_DeqRes=0 b_DeqRes2=0
Job Type = CSP server
ContextFlags = 0010005F Registers:
RAX=00007FFF3DE9C4E8 RBX=000000C2E5554800 RCX=000000C2E7AFFC00
RDX=000000C2E7B00000 RSI=00000000FFFFFFC0 RDI=00000000000003FF
RSP=000000C25CEBD2F8 RBP=0000000000000000 R8 =0000000000000001
R9 =00007FFF3DE60000 R10=000000C2E7AFFC00 R11=000000C2E7AFFC00
0 1
0 30
文章
· 三月 3, 2021 阅读大约需 1 分钟
欢迎大家来投票啦!!!

这是我们团队参加的第一届InterStstems编程竞赛! 快来看看投票给我们!

超额预订管理系统结合了酒店业的独特条件,例如房价,订购渠道,客户需求等。 本系统使用机器学习算法(例如:KNN / ES-RNN ...)来准确预测酒店的每日未入住和入住率,并进一步与收益结合以找到最佳的最大客房销售量,从而精准增加酒店的边际收益。

1 1
0 64