#InterSystems IRIS

0 关注者 · 940 帖子

InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。

文章 Lilian Huang · 六月 23, 2022 2m read

InterSystems许可证是指InterSystems发放的电子或纸质版的产品许可证,内容包括许可证订购日期、产品描述等。

激活码/License KeyInterSystems随许可证发放的许可软件激活码。通常情况下,客户收到的是电子许可证。

以下是一些许可证,激活码/License key常见咨询问题参考:

  1. 收到电子许可证后,如何获取纸质版许可证?

纸质版许可证或是安装介质盘,可通过合作伙伴或是致电原厂核验许可证信息后获取。

  1. 如需申请WRC支持,需要

申请准备:

  • WRC账号,如无请通过WRC联络信息申请WRC账号
  • 故障问题描述
  • 许可证或激活码/License key
  • 最终客户名称 

WRC全球响应中心联络信息:

  1. 如何查询您的授权文件客户名和授权密钥?
0
0 601
公告 Michael Lei · 六月 22, 2022

Hi 社区,

这是海外工程师做的一个纯浏览器的代码编辑器CloudStudio. 欢迎大家下载试用:

GitHub 下载:

https://github.com/SeanConnelly/CloudStudio

InterSystems 应用市场下载:https://openexchange.intersystems.com/package/CloudStudio

到Discord 讨论区:https://discord.gg/ZnvdMywsjP
 

Docker 支持与在线Demo:

要求

已安装 git 和 Docker desktop .

安装

Clone/git 把 repo 导入任何本地目录

git https://github.com/rcemper/Dataset-OEX-reviews.git

启动IRIS容器:

docker-compose up -d --build

如何测试

http://localhost:42773/cloudstudio/CloudStudio.Index.cls

或使用在线Demo 

Demo 视频:https://www.youtube.com/watch?v=Am6QAvrPPPg

0
0 262
文章 Lilian Huang · 六月 14, 2022 3m read

这篇文章是上一篇文章的延续https://cn.community.intersystems.com/post/首次使用intersystems-iris-互操作性-一个production是什么?

在上一篇文章:https://cn.community.intersystems.com/post/首次使用intersystems-iris-互操作性-一个production是什么?  我们查验了什么是Production. 我们运行了示例代码,并在Visual Trace 页面查验了如何将流动消息的内容引入进Production中。

本文将回顾消息messages的概念和定义,和消息如何在系统集成所需的开发内容中用于组件之间发送和接收数据。

在创建 一个Message消息之前,让我们回顾一个案例研究。

0
0 289
文章 Frank Ma · 六月 13, 2022 2m read

这是一个在InterSystems IRIS中用python和objectscript建立的对比测试。

测试目的是比较在python和objectscript中从BP到BO来回发送一千条请求/消息的速度。

更多信息,请访问 https://github.com/LucasEnard/benchmark-python-objectscript

重要提示 : 这里用的是python, graph objectscipt和objectscript从一个BP到一个BO来回发送1000条消息的时间,单位是秒。

字符串信息是由十个字符串变量组成。

对象信息由十个对象变量组成,每个对象都是它自己的int、float、str和List(str)。

消息字符串 1000条消息来回的时间 (秒)
Python BP 1.8
BPL 1.8
ObjectScript 1.4
消息对象 1000条消息来回的时间 (秒)
Python BP 3.2
BPL 2.1
ObjectScript 1.8

行中函数的时间是列中函数的x倍 :

消息字符串 Python BPL ObjectScript
Python 1 1 1.3
BPL 1 1 1.3
ObjectScript 0.76 0.
0
0 159
文章 Frank Ma · 六月 13, 2022 6m read

孕产妇风险可以通过一些医学界众所周知的参数来测量。这样,为了帮助医学界和计算机系统,特别是人工智能,科学家Yasir Hussein Shakir发布了一个非常有用的数据集,用于训练检测/预测孕产妇风险的机器学习(ML)算法。这份出版物可以在最大和最知名的ML数据库Kaggle上找到,网址是 https://www.kaggle.com/code/yasserhessein/classification-maternal-healt….

关于数据集

由于缺乏怀孕期间和怀孕后的孕产妇保健信息,许多孕妇死于怀孕问题。这在农村地区和新兴国家的中下层家庭中更为常见。在怀孕期间,应时刻注意观察,以确保婴儿的正常成长和安全分娩 (来源: https://www.kaggle.com/code/yasserhessein/classification-maternal-healt…).

数据是通过基于物联网的风险监测系统,从不同的医院、社区诊所、孕产妇保健机构收集而来。

  • Age(年龄): 妇女怀孕时的年龄,以岁为单位。
  • SystolicBP (收缩压): 血压的最高值(mmHg),这是怀孕期间的另一个重要属性。
  • DiastolicBP(舒张压): 血压的较低值(mmHg),这是怀孕期间的另一个重要属性。
0
0 440
文章 Frank Ma · 六月 13, 2022 10m read

肾脏疾病可以从一些医学界熟知的参数中发现。这样,为了帮助医学界和计算机系统,特别是人工智能,科学家Akshay Singh发表了一个非常有用的数据集,用于训练肾脏疾病检测/预测方面的机器学习(ML)算法。这份出版物可以在最大和最知名的ML数据库Kaggle上找到,网址是https://www.kaggle.com/datasets/akshayksingh/kidney-disease-dataset&#12…;

关于数据集

该肾脏疾病数据集有以下元数据信息(来源:https://www.kaggle.com/datasets/akshayksingh/kidney-disease-dataset):

  • 它有400行,有25个特征,如红细胞、足部水肿、糖等等。
  • 其目的是对病人是否患有慢性肾脏病进行分类。
  • 分类是基于一个名为 "classification "(分类)的属性,属性值是 "ckd"(慢性肾脏病)或 "notckd"(不是慢性肾脏病)。
  • 数据集作者对数据集进行了清洗,包括将文本映射为数字和其他一些变化。在清洗之后,数据集作者做了一些EDA(探索性数据分析),然后将数据集分为训练和测试两部分,并在上面应用模型。据观察,最初的分类结果并不令人满意。因此,数据集的作者没有放弃有Nan(非数)值的行,而是用lambda函数将其替换为每一列的模式。
0
0 270
文章 姚 鑫 · 五月 12, 2021 4m read

第五章 管理全局变量(一)

管理门户提供管理全局变量的工具,系统类提供执行某些相同任务的方法。本章介绍如何使用这些工具。

一般建议

与ObjectScript命令SETMERGEKILL和其他命令一样,这里描述的工具提供了直接访问操作全局变量的权限。如果通过全局访问删除或修改,则会绕过所有对象和SQL完整性检查,并且没有撤消选项。因此,在执行这些任务时要非常小心,这一点很重要。(查看和导出不会影响数据库,并且是安全活动。)

使用本章中介绍的工具时,请确保以下事项:

  • IRIS使用哪些全局变量。并不是所有这些都被视为“系统”全局变量-也就是说,即使没有选中“系统”复选框,它们中的一些也是可见的。其中一些全局变量存储代码,包括的代码。
  • 确保知道应用程序使用哪些全局变量。

即使应用程序从不执行任何直接全局访问,应用程序也会使用全局变量。请记住,如果创建持久类,则它们的数据和任何索引都存储在全局变量中,全局变量的名称基于类名(默认情况下)。

“全局变量”页简介

管理门户包括全局页面,该页面允许管理全局。在此页上,可以执行以下操作:

  • 在该全局的行中选择View以检查它。
  • 在该全局的行中选择编辑以对其进行修改。
  • 选择导出以导出全局变量。
  • 选择导入以导入全局变量。
  • 选择删除以删除全局变量。
  • 选择查找以查找全局变量中的值。

此页还包括用于查看例程和类的选项;此处不讨论这些选项。

1
0 187
文章 Michael Lei · 六月 11, 2022 2m read

在检查我们的^pButtons(在IRIS中改名为^SystemPerformance)性能监控工具的文档时,一位客户告诉我。"我理解所有内容,但我希望它能更简单......更容易定义配置文件,管理它们等等"。

在这次会议之后,我认为尝试为其提供一些更简单的人机界面是一个不错的试验。

这方面的第一步是在现有的pButtons例程上包裹一个基于类的API。

我还能够添加一些更多的 "功能",比如显示当前正在运行的配置文件,它们剩余的运行时间,以前运行的进程等等。

下一步是在这个API的基础上添加一个REST API类。

有了这个工件(pButtons REST API),人们就可以在上面建立一个比较时髦的用户界面。

举个🌰: -

0
0 268
文章 Jingwei Wang · 九月 28, 2021 5m read

本文档介绍了如何在 InterSystems IRIS®数据平台中使用 Java 网关(Gateway)与 Java 组件进行互操作。在本文中,您将首先创建一个示例 JAR 文件。然后,您将在 InterSystems IRIS 管理门户(Management Portal)中创建并启动 Java  网关(Gateway)。您将以编程方式导入创建的示例 JAR 文件。最后,您将在 ObjectScript 中创建并操作一些代理类(proxy class)和对象(object)。

为了让您体验 Java 网关(Gateway ),而又不陷入细节困境,我们保持了简单的探索。这些活动被设计成只使用默认设置和功能,这样您就可以熟悉功能的基本原理,而不必处理那些离题或过于复杂的细节。当您把 Java 网关(Gateway)引入您的生产系统时,您可能需要做一些不同的事情。请确保不要把这种对 Java 网关(Gateway )的探索与真实的情况相混淆!本文档末尾提供的参考资料将使您对在生产中使用 Java 网关(Gateway)的情况有一个很好的了解。

要浏览所有的技术概要(First Look),包括下面描述的可以在免费的社区版(Community Edition)实例上执行的那些,请参见InterSystems 技术概要

2
0 280
文章 Hao Ma · 一月 30, 2021 4m read

IIS在Windows Server里是默认安装,在Windows7和Windows10里面需要用户到"控制面板>程序"里面找到"Turn Windows features on or off"的设置来启动。 本文假设IIS已经在用户的服务器上启动,并且正常工作。

通常情况下,当IRIS安装在Windows系统时,用户会在同一台机器上使用IIS,很少有单独安装一台IIS服务器给远程IRIS提供Web服务器的,当然这样也绝无问题。

有两个软件包可以安装CSP Gateway。一个是IRIS的安装包。在IRIS的安装过程中, 如果有IIS正在工作, 那么安装程序会自动的安装CSP Gateway。 2018年以前的Ensemble或者Cache'的版本的安装过程中会跳出一个询问框,让用户选择是否"安装CSP网关。。。”。而后来的版本大多不做询问而自动为用户做了选择。 如果需要强制安装或者不安装CSP Gateway,那么需要在安装中选"Customer Component"设置。

另一个软件包是单独的CSP Gateway安装包,

3
0 534
文章 Qiao Peng · 六月 8, 2022 7m read

01

智慧医院的本质


什么是智慧医院?

国家卫健委提出建设智慧医院的目的是要不断增强人民群众的获得感,要求医院的流程更便捷、服务更高效、管理更精细,主要聚焦于三大领域,面向医务人员的智慧医疗、面向患者的智慧服务以及面向管理的智慧管理。

如果从技术角度进行高度抽象,我们把智慧医院的本质浓缩为一点,就是为智慧的科学决策以及基于科学决策的业务执行闭环。在现实世界里,我们要从真实业务(调查研究)中获得决策依据,同时还要有决策的方法,把决策应用在现实世界上,来影响和改变现实世界。

02



科学决策的三个阶段

第一个时代是人工决策时代。我们医疗行业就是望闻问切,我们能拿到的数据非常有限,所以属于一个数据饥渴的时代。我们通过有限的数据来进行决策,非常容易落入我们经常批判的“三拍”型决策,“拍脑袋决策、拍胸脯保证、拍屁股走人”。显然这个决策效率不是很高。

人工决策时代:“数据稀缺”时代的决策

第二个时代是信息化时代。我们有了很多数据,能够把部分现实世界来进行数字化表达,我们也通过信息辅助人工决策进行智能决策,例如通过药品知识库推动合理用药,通过人工智辅助影像判断等等。

然而我们依旧面临着很多数据问题。首先是数据还不够完整,经常无法获取需要的数据,数据模型也不能完全表达医院的实际业务;其次,我们也还是会遇到很多数据来源问题(我们常常不知道该信任哪一份数据)、数据的关联性、实时性等问题。

0
0 876
文章 Michael Lei · 六月 7, 2022 3m read

我今天遇到了一个有趣的ObjectScript用例,有一个通用的解决方案,我想与大家分享。

用例:

我有一个JSON数组(在本例中具体而言是一个来自Jira的问题数组),我想在几个字段上进行聚合--例如,类别、优先级和问题类型。然后,我想把聚合的数据编平化到一个简单的列表中,其中包含每个组的总数。当然,对于聚合来说,使用一个本地数组的形式是有意义的,即:

agg(category, priority, type) = total

这样,对于输入数组中的每一条记录,我可以只用:

Do $increment(agg(category, priority, type))

但是一旦我做了聚合,我想把它变成一种更容易迭代的形式,比如一个整数下标的数组:

summary = n
summary(1) = $listbuild(total1, category1, priority1, type1)
.
0
0 287
文章 Michael Lei · 六月 7, 2022 3m read

绕过ODBC使用ObjectScript访问远程系统

这是一个在 IRIS 2020.1 和 Caché 2018.1.3 上工作的代码示例
不会与新版本保持同步
也不会获得 InterSystems 提供的支持服务!   

我们经常会遇到这样的情况,由于各种原因ODBC是访问一个远程系统的唯一选择。如果你只需要检查或改变表,这就足够了。但你不能直接执行一些命令或改变一些Global。

特别感谢@Anna Golitsyna 启发我发表此文。

这个例子提供了3种 SQLprocedure 方法来实现访问远程系统这个目的,如果其他的访问方式被阻止,通常是被一些防火墙阻止。

  • SQLprocedure Ping() 返回 Server::Namespace::$ZV 并允许检查连接
  • SQLprocedure Xcmd(<commandline>,<resultvar>)  执行你提交的命令行,并返回一个存放在你命名的变量中的结果。
  • SQLprocedure Gset(<global>,<subscript>,<value>,<$data>)  允许你设置或删除一个Global节点 。参数<global> 是远程命名空间中的GlobalName,包括前导符;例如'^MyGlobal'  (注意:sql 用单引号!)
0
0 196
文章 Jingwei Wang · 六月 6, 2022 2m read

Object Script(六)

ObjectScript中的变量是没有类型的,也就是说,它们没有一个指定的数据类型,可以接受任何数据值。

ObjectScript支持以下几种类型的变量:

1. 本地变量 :只有创建它的进程可以访问的变量,当该进程终止时,改变量将自动删除。一个本地变量可以从任何命名空间访问。

示例:

     SET str = "A string"

2. 进程私有的全局变量 : 只有创建它的进程可以访问的变量,并且在进程结束时不再存在。一个进程专用的全局变量可以从任何命名空间访问,因为它与命名空间无关。进程私有的全局变量对于临时存储大数据值特别有用。在许多情况下,它们可以替代Mgr/Temp目录的使用,在进程终止时提供自动清理。

示例:

       SET ^||flintstones(1)="Fred"

       SET ^||flintstones(2)="Wilma"

3. 全局变量 : 一个存储在InterSystems IRIS数据库中的持久性变量。一个全局变量可以从任何进程中访问,并且在创建它的进程终止后仍然存在。全局变量是针对个别命名空间的。

示例:

SET ^myglobal = "This is a global stored in the current namespace"

4.

0
0 195
文章 Jingwei Wang · 六月 6, 2022 1m read

Object Script(五)


  • 在类中定义属性

Property PropName as Classname(PARAM1=value,PARAM2=value) [ Keywords ] ;
Property SSN As %String(PATTERN = "3N1""-""2N1""-""4N") [ Required ];

  • 创建函数示例

Studio创建:

将下段代码填写入建好的类中:

ClassMethod FindPatient(id As %String) As HIS.Patient
{ 
 Set patient= ##class(HIS.Patien).%OpenId(id)       
 Quit patient
}

Terminal 调用:

set p = ##class(HIS.Patient).
0
0 268
公告 Michael Lei · 六月 2, 2022

InterSystems 正式发布 InterSystems IRIS, IRIS for Health, & HealthShare Health Connect 2022.1

InterSystems很高兴地宣布,InterSystems IRIS数据平台、InterSystems IRIS for Health和HealthShare Health Connect的2022.1版本现在已经发布(GA)。

发布亮点

平台更新

InterSystems IRIS 数据平台 2022.1 扩大了包括以下新的和更新的操作系统的生产环境支持::


  • Windows Server 2022
  • Windows 11
  • AIX 7.3
  • Oracle Linux 8 

我们也很高兴地宣布我们同时支持用于开发环境的MacOS 12 (Monterey)苹果 M1 和 Intel 芯片集。

0
0 362
文章 Michael Lei · 六月 2, 2022 1m read

IRIS Interoperability互操作性/HealthConnect(前身是Ensemble)有许多内置的适配器。但是没有一个接收邮件的服务或适配器。我洗的了一个电子邮件服务,通过SMTP接收邮件,这些邮件可以被传递到电子邮件操作。

现在我想对一个使用电子邮件操作向外部邮件服务器发送邮件的Production进行负载测试。邮件服务器团队不希望我向他们发送成千上万的信息。

我创建了iris-mail应用程序来替代邮件服务器。我更新了电子邮件操作中的服务器和端口设置。外发的邮件被发送到替代的邮件服务器,我能够计算出iris-mail中收到的邮件数量,并将其与邮件操作发送的邮件数量进行比较。

应用程序的源代码:https://openexchange.intersystems.com/package/iris-mail

0
0 157
文章 Michael Lei · 六月 1, 2022 6m read

糖尿病可以从医学界熟知的一些参数中发现。这样,为了帮助医学界和计算机软件系统,特别是人工智能软件,美国国家糖尿病和消化道及肾脏疾病研究所发布了一个非常有用的数据集,用于训练糖尿病检测/预测的机器学习算法。这份出版物可以在最大和最知名的ML数据库Kaggle上找到,网址是https://www.kaggle.com/datasets/mathchi/diabetes-data-set&#12290;

该糖尿病数据集有以下元数据信息(来源:https://www.kaggle.com/datasets/mathchi/diabetes-data-set)&#65306;

  • 怀孕:怀孕次数
  • 葡萄糖: 口服葡萄糖耐量试验中2小时的血浆葡萄糖浓度 Plasma glucose concentration a 2 hours in an oral glucose tolerance test
  • 血压: 舒张压(mm Hg)
  • 皮肤厚度: 肱三头肌皮褶厚度(mm)
  • 胰岛素: 2小时血清胰岛素(mu U/ml)
  • BMI: 体重指数 (体重 kg/(身高 m)^2)
  • 糖尿病血统函数: 糖尿病血统函数(它提供了一些关于亲属中的糖尿病史以及这些亲属与病人的遗传关系的数据。这种对遗传影响的测量使我们了解到一个人可能有的遗传风险与糖尿病的发病有关--来源:https://machinelearningmastery.
0
0 259
文章 Michael Lei · 六月 1, 2022 1m read

InterSystems Production 监控是管理门户中的一个页面,用于显示当前运行的Production监控信息。我喜欢这个页面的样子,但这并不适合所有人。

2022年5月13日,我在开发者社区上看到这个帖子。

https://community.intersystems.com/post/creating-custom-monitoring-page

我同意马克的观点,Production监控很复杂。我想创建一个更漂亮干净的监控页面。

我开始着手制作一个利用类方法提供Production数据的 CSP(Cache Server Page)页面。

我与马克分享了我的第一次尝试。他根据自己的想法定制了这个页面。我喜欢他对页面的布局,使其在视觉上更有吸引力。我把他的设计整合到我的应用程序Production监控中。

我看到马克对业务服务的显示进行了过滤,只显示需要注意的服务。他在页面的底部添加了服务器的名称和它的镜像状态。

你可以在Open Exchange和当前的竞赛中找到我的Production监控器的应用。

https://openexchange.intersystems.com/package/production-monitor

0
0 166
文章 Michael Lei · 五月 30, 2022 1m read

我的团队在在红帽OpenShift容器平台上运行IRIS互操作性解决方案。我想在数据被存储在Mirror的数据pods中的情况下,测试运行中的webgateway pods和计算节点 pods能处理多少消息。

为了增加测试难度,我部署了多个feeder容器,并在每个feeder上安排了任务,以在同一时间发送大量的消息。为了进入下一阶段的测试,我希望有多种类型的测试文件可以按需使用。我创建了test-data应用程序,能够请求生成大量的多种类型的文件。

我早期的一些测试依赖于复制一个样本文件和处理它。这在一次只复制一份的情况下效果不错。为了获得同一样本文件的许多副本,MakeFile函数获取一个样本文件、保存其副本、并以唯一的时间戳进行重命名。MakeFiles函数有一个参数,用于确定要制作的文件数量。

我找到了一个样本文件,它的输入和输出都是带分隔符和固定符的。我把它包含在我的应用程序中,并添加了一个转换来操作测试数据文件。在这种情况下,我把测试文件中的识别ID号替换成在一个类方法中生成的识别ID号,并且是随着文件而递增的。

我想在处理后审查测试文件中的数据,我喜欢看到一系列有顺序的数字,而不是一系列随机数字。

具体代码下载:https://openexchange.intersystems.com/package/test-data

0
0 113
文章 Lilian Huang · 五月 26, 2022 2m read

#Open Exchange

您可能已经看到邀请分享您的 Open Exchange 应用程序的演示:Share a Demo of Your Open Exchange Application
它背后的服务——InterSystems Online Demo Server (ODS)——这不是什么新事物

作为奖励积分,我在 21 年 3 月的 InterSystems 开发者工具大赛:InterSystems Developer Tools Contest 中第一次看到它。
在后来的比赛中成为一个固定的奖励项目。实际是#24。
到今天,我们已经看到 OEX 中列出了 80 个可在 ODS 上使用的软件包:80 packages listed in OEX as available on ODS 

对我来说,开发人员的优势是显而易见的:

  • 给予您的“客户”直接访问您产品的渠道。
    • 视频也是一个很好的推广工具。
    • 但是您知道使用自己的产品并没有那么令人印象深刻。
  • 您的 Docker 容器是在“规范”安装中构建的。
    • 毫无疑问,Docker 是一个令人印象深刻的工具。
    • 在 Win、MAC 和 Linux 上有各种可能会让人头疼的版本。
    • 我跳过关于特殊功能和设置的个人赘述。
    • 您的“客户”可以节省时间来快速查看您提供的方案。
    • 您可以确定他会看到您计划让他看到的内容。
0
0 177
文章 Frank Ma · 五月 24, 2022 6m read

让我们假设我们已经将一个数据源连接到Adaptive Analytics,创建了一个项目并在那里添加了表。

现在我们来准备Adaptive Analytics的工作。首先,我们需要从表中选择数据,使其可用于未来的报告。要做到这一点,我们需要从表的列中创建维度。创建维度通常是为了将我们的数据分解成不同的类别,例如用户住在哪个城市,或者购买是在哪个月进行的。然而,没有什么可以阻止我们从数字数据中创建维度,这样我们就可以在Intersystems Reports Designer中对它们应用函数。

创建维度的工具位于界面的右侧,如下图所示。要创建一个新的维度,右击位于 "过滤器 "(Filter)行右侧的汉堡包按钮,选择 "创建维度 "(Create Dimension),如图所示。

将出现以下窗口:



在创建了一个维度后,你可以使其具有层次性。要做到这一点,在左边表格的尺寸上双击鼠标左键,进入层次结构编辑器。

通过点击层次结构旁边的三个点,我们可以在层次结构中创建一个新的维度。在菜单中,维度可以在层次结构中向上/向下移动。由于层次结构的存在,我们可以制作不同层次的数据细节。例如,我们可以指定有多少人从国家、地区、城市访问过该网站。

你可以使用维度来创建表之间的关系。要做到这一点,你需要使用鼠标左键拖动表的所需字段,并将其放到所需的高亮维度中。链接创建窗口将出现。点击保存,我们的连接就准备好了。

0
0 183
文章 Frank Ma · 五月 24, 2022 5m read

同事们,大家好

在这篇文章中,我将告诉你我们如何将报告生成时间从28分钟减少到1分钟。让我告诉你我们是如何实现这一目标的

我希望,如果有必要,你将能够为自己重现同样的结果。这篇文章里有一些有用的链接,所以要读到最后。

让我们开始吧。

报告

我们使用Adaptive Analytics和InterSystems Reports Server为一家公司做报告。以前,这个报告是以DeepSee的屏幕截图形式生成的。总的来说,这并不坏,但它花费了大量的时间,而且看起来不是很可读。该报告本身由12页组成,为PDF格式。

一般来说,数据不是太大,不会使报告的生成花费很多时间

源数据

然而,在撰写本文时,有一个表包含11,330,263行。不是那么关键,但它造成了延迟。即使是计算行数的查询也需要近30秒

最初,系统的交互方案是这样的:

Atscale创建了自己的数据缓存,这导致了性能的提高。

Logi使用自己的数据缓存,这稍微加快了报告的开发速度。

但总的来说,这仍然导致了报告在28分钟内形成的事实。

鉴于报告只有12页,这个速度还是很慢的。

我们甚至故意添加了新的标签,并将报告中的小部件复制到那里,以便在开发或调试时不需要生成整个报告。也许这就是在Logi上开发时的一种日常技巧,或者说是一种正常的开发方法。

0
0 228
文章 Michael Lei · 五月 23, 2022 1m read

大家是不是经常遇到以下情况:

  • 系统有 bug 但是无法在本地复现
  • 你需要在受影响的实例中运行几行代码
  • 能完整访问系统管理门户,但是没有终端或者管理控制台, 也不能访问 Studio, Atelier 或者 VSCode
  • 你要怎么运行你的几行代码来测试???
0
0 255
文章 Michael Lei · 五月 20, 2022 29m read

本文向你推荐一些使用IRIS创建REST API应用程序的模式。

注:所有源代码在https://github.com/yurimarx/movie

类模式到REST应用

首先,请看我对创建IRIS API应用程序所需类的建议:

  • IRISRESTApplication: CSP.REST 类会作为中央控制者来控制业务服务处理的所有REST请求和响应.
  • BusinessService: 具有业务主题的类实现。它可以使用一个或多个持久化域类来持久化和查询业务主题要求的数据。
  • Persistent Domain: 管理SQL表的持久化类.

环境准备

  • VSCode;
  • Docker Desktop;
  • InterSystems ObjectScript Extension Pack.

示例应用的类图

我将创建一个电影目录应用程序来演示文章中建议的模式:

Note: 感谢IRIS API 模版应用 https://openexchange.intersystems.com/package/iris-rest-api-template . 这是本教程的基础.

搭建样本应用

1. 在你的文件系统中创建一个movie文件夹。在一个新的VSCode窗口中打开这个文件夹。

2. 在movie 文件夹中创建Dockerfile 文件来在Docker container实例中运行IRIS社区版.

0
0 283
公告 Michael Lei · 五月 18, 2022

所有人现在可以在 https://evaluation.intersystems.com下载IRIS和IRIS for Health社区和企业版 。

客户以及潜在客户都可以尝试我们最新最强的功能,包括一些还没有发布的新特性。

如何访问:

对于潜在客户,只要选择名称中带有"(预览)"的选项,就可以下载预览软件。

对于客户和InterSystems员工--只需拨动预览复选框,这将包括可用版本菜单下拉中的预览软件:

更多资源:

https://community.intersystems.com/post/introducing-evaluation-service-community-edition-downloads 

https://community.intersystems.com/post/intersystems-evaluation-service
 

有任何问题欢迎拨打 4006019890 或咨询您的ISC客户经理。

0
0 429
文章 Michael Lei · 五月 17, 2022 3m read

在这篇文章中,我们将使用docker和 参数配置文件模版 这一新特性来运行IRIS集群且轻松配置好。

在 UNIX® 和 Linux 上,您可以使用声明式参数配置合并文件来修改默认的 iris.cpf。合并文件是一个部分 CPF,在实例启动时为任何数量的参数设置所需的值。CPF 合并操作对每个实例只起一次作用。

我们的集群架构非常简单,它将由一个主节点(Node1)和两个数据节点(检查所有可用角色)组成。不幸的是,docker-compose不能部署到几个服务器上(尽管它可以部署到远程主机上),所以这对本地开发分片的数据模型、测试等很有用。如果是生产的InterSystems IRIS集群部署,你应该使用ICM云管理器IKO K8S调度器

0
0 183