文章
· 九月 21, 2023 阅读大约需 4 分钟
通过自定义数据类型实现参数统一验证优化重构代码

前言

对于第三方接口进行交互的时候,往往需要大量的进行参数合法性校验。以前的方法就是对每个参数进行验证。如下截图:
image

上图的会存在大量的if else if else..,如果字段很多,那导致一个方法存在大量的验证的代码,那我们考虑是否可以进行统一的验证参数的合法性。

思路

平时建立类的时候我们可以写参数MAXLEN=100,TRUNCATE=1 是否截取等,那找找这些参数的定义地方。如截图:


那我们想要定义自己的参数,该如何定义呢?根据面向对象设计原则之一:

13 1
1 139
InterSystems 开发者社区汇聚了 19,784 位出色的开发者
InterSystems IRIS 程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
文章
· 三月 21 阅读大约需 2 分钟
IRIS 向量搜索

这是在 IRIS 中完全运行向量搜索演示的尝试。
没有外部工具,您需要的只是终端/控制台和管理门户。
特别感谢Alvin Ryanputra作为他的软件包iris-vector-search的基础
灵感和测试数据的来源。
我的软件包基于 IRIS 2024.1 版本,需要注意您的处理器功能。

我尝试用纯 ObjectScript 编写演示。
仅描述向量的计算是在嵌入式Python中完成的

计算 2247 个记录的 384 维向量需要时间。
在我的 Docker 容器中,它正在运行 01:53:14 来完全生成它们。

1 1
0 57
文章
· 十一月 25, 2021 阅读大约需 8 分钟
精华翻译文章:什么是智慧医院数字孪生?

关于 "智慧医院 "的真正内涵,有很多误解在流传。术语 "智慧Smart "已经成为 "自动化 " "数字设备 "的同义词。然而,事实是,增加技术、设备和传感器并不一定能使建筑或者医院变得'智慧'。而且,在某些情况下,数字创新被强加于医院,而没有真正考虑到其效果。

这种情况导致了一系列的复杂性和矛盾。例如,一方面,人们对医院采用数字技术的期望越来越高,但另一方面,人们越来越担心数字医疗解决方案正在创造更多离散的、孤岛的生态系统。同样,尽管医院面临着实现实时医疗系统的更大压力,但往往受制于其运营模式的孤岛性质或围绕各种医疗信息系统的互操作性问题。

这些相互冲突的压力表明,需要一种更协同、更集成、更综合、更全面的数字化转型方法--一种将系统整合在一起并从各个角度考虑影响的方法。

智慧医院数字孪生的出现,证明了这一技术为解决这些日益严峻的挑战提供了可行的手段。

在过去的几年里,数字孪生已经有了很大的发展,成为一项值得期待的技术。然而,尽管数字孪生被炒得沸沸扬扬,但对于数字孪生是什么(不是什么)以及它是否能实现其承诺,仍然存在相当大的困惑。像许多新技术一样,数字孪生正在 "幻觉破灭 "中挣扎并且在某些情况下被错误地描述。

在本文中,我们将通过回答这六个关键问题来正面解决这种困惑。

1 1
0 607
问题
· 四月 29, 2022
Cache 动态 SQL 分页

我想知道是否有更好的方法来使用动态SQL对数据集进行分页,而不是我下面使用的方法。问题是,当潜在的数据池变大时,这段代码就会变慢,以至于无法使用。在分析下面的每一行代码时,似乎速度变慢与最初的rset.%Next()迭代有关。 有没有什么不需要子查询/%VID的可用方法,比如简单的LIMIT/OFFSET?

我的代码类似于:

s sql=##class(%SQL.Statement).%New()

s query="SELECT *,%VID FROM (SELECT prop FROM table WHERE prop=x) WHERE %VID BETWEEN 1 AND 100"

s sc=sql.%Prepare(query)

s rset=sql.%Execute()

while rset.%Next() {.....

0 1
1 327
文章
· 五月 7, 2022 阅读大约需 3 分钟
一个新库引发的血案

我们的一位客户五一期间向使用IRIS搭建的数据流推送一家三甲医院数年的历史数据,导致实施的同事们经历了一系列噩梦,包括但不限与:

1. 由于未通知实施团队有这样规模的数据推送,数据推送过程与全库备份任务重叠。尽管实例和数据流正常运行,但备份任务与数据流争抢IO,导致备份任务不能在预期时间内完成,实施童鞋五一加班处理问题。

2. 为了节省磁盘空间,服务器上部署了定期删除IRIS备份文件的任务,原本能够保持一周的全备+增量备份,但在本次数据暴增的情况下,新的备份尚未完成而旧的全备已被删除,导致问题发生时没有可用于恢复的备份。

3. 由于这次数据推送前未进行数据质量校验,推送的数据全部不合规,但已经历了较长的数据流进行处理全部入库;同时由于备份文件已被删除,无法通过恢复数据库的方法回滚,导致实施童鞋不得不逐条从生产环境三个库的数百张表中挑出问题数据逐一删除,从五一放假结束至今还未完成善后工作。大家可以设想一下,如果备份还在,那么恢复备份就可以了。

因此,我们希望再次提醒各位在前线奋斗的亲们:

1. 善待你的备份。尽管对于大型医院或医疗集团来说,两周的全备+增量备份策略下,备份文件会占据数个TB的存储空间。但在需要回滚时,这几个T的空间能救命。

3 1
0 102
文章
· 九月 28, 2022 阅读大约需 3 分钟
使用嵌入式Python生成数据流

Hi Developers,

嗨,各位开发者们:

各位都知道,Python是一个庞大而强大的生态系统,包含了成千上万的库和包,特别是在数据科学方面。

因此,我想首次尝试使用IRIS最近的一项功能--嵌入式Python,简单地导入一个名为datetime的Python库,生成带有时间戳成分的数据,并在InterSystems IRIS for Health Data Platform中持久化。同样的方法在IRIS数据平台上也可以使用。

1 1
0 116

vscode通过插件:intersystems Server Manager 连接测试开发环境,配置连接后无法使用

配置参数:

"intersystems.servers": {

"local": {

"webServer": {

"scheme": "http",

"host": "127.0.0.1",

"port": 52773

},

"test": {

"webServer": {

"scheme": "https",

"host": "xxx.xxx.xxx.xxx",

"port": 2443

},

"description": "test",

0 1
0 165

从发布InterSystems IRIS®数据平台2022.3开始,InterSystems修改了许可证强制执行机制,以包括REST和SOAP请求。由于这种变化,在升级后,使用REST或SOAP的非处理器核数的许可证环境下,用户可能会遇到更高的许可证消耗。要确定此警报是否适用于您的InterSystems许可证,请按照下面链接的FAQ中的说明进行操作。

0 1
0 67

本地库 在打开studio、studio编译类、关闭studio等操作系统卡死,关闭后连接超时。

打开cconsole.log报错日志,提示***严重的磁盘读写错误,I/O错误***,对数据库做了一致性检查,也未发现错误,必须重启电脑或者force库后恢复使用。

请问是什么问题造成的。。。

0 1
0 233
问题
· 二月 24, 2022
问题转发

请教各位老师:

Cache数据日志怎么读取?

如果是想写代码去读取,应该怎么操作?如果是不知道数据日志在哪,应该在哪可以获取?

0 1
0 144
我需要在当前命名空间下创建一系列的只读类,并限制除_system之外的所有用户都只有读取权限,无法在studio中编译,请问我应该如何操作呢?
我的目的是可以在工程的项目分支中管理这些类,并通过发布方式持续升级这部分类文件。
但是这些类的内部逻辑有可能会需要维护人员能够知晓其中的功能和实现方式,所以不能通过MakeDeployed来解决这个问题
我现在知道可以通过设置database的读写属性来解决这个问题,但是这样就需要额外新建一个database并maping到当前命名空间下。采取这种方式处理时有一个重大的缺点,即在执行代码发布过程中,需要停库,并且停库时间可能会在半个小时左右,这个我无法接受。
0 1
0 127

医院目前即将使用iris2023.1;里面包含了%External.Messaging.KafkaClient 类,需要设置kafka的链接,发送kafka消息,然后断开链接,能否跟springboot 一样;自动配置,kafka的链接交给iris来管理,保持长链接,不要断开;直接使用%External.Messaging.KafkaClient 发送消息;

0 1
0 75