第四十五章 使用 ^SystemPerformance 监视性能 - Abort ^SystemPerformance

Abort ^SystemPerformance

如果要停止正在运行的配置文件,可以中止数据收集,并可选择使用 $$Stop^SystemPerformance(runid) 命令删除配置文件的所有 .log 文件。例如,要中止由 runid20111220_1327_12hours 标识的报告的数据收集并删除到目前为止写入的所有 .log 文件,请在终端的 %SYS 命名空间中输入以下命令:

do Stop^SystemPerformance("20111220_1327_12hours")

要在不删除日志文件的情况下停止作业并从这些日志文件生成 HTML 性能报告,请输入:

0 0
0 68

第四十一章 使用^%SYS.MONLBL检查例程性能 - 逐行监控报告示例

本节包含 ^%SYS.MONLBL 例程生成的各种报告的示例:

Line-by-line Detail Report

Line-by-line Summary Report

Line-by-line Delimited Output Report

Line-by-line Procedure Level Report

Line-by-line Detail Report

以下是报告所选期刊实用程序的最小指标详细信息的示例,包括覆盖率分析。报告被发送到 monlbl_JRN_dtl.txt 文件,其中显示了一部分。

0 0
0 57
文章
· 一月 8, 2023 阅读大约需 3 分钟
第三十八章 使用^%SYS.MONLBL检查例程性能

第三十八章 使用^%SYS.MONLBL检查例程性能

例程^%SYS.MONLBL为监视器工具提供用户界面。该实用程序提供了一种方法来诊断在例程中执行选定代码所花费的时间,从而帮助识别特别耗费资源的代码行。它是现有监视器实用程序的扩展,可通过^PerfMon%Monitor系统程序包类访问。由于这些实用程序共享相同的内存分配,因此一次只能在IRIS实例上运行其中一个实用程序。

调用逐行监视例程

如果在调用^%SYS.MONLBL时监视器没有运行,则例程会显示一条警告消息,并提供启动监视器或检查内存要求的选项。例如:

0 0
0 61
文章
· 一月 7, 2023 阅读大约需 4 分钟
第三十七章 使用 ^PROFILE 监控例程性能 - ^PROFILE 示例

第三十七章 使用 ^PROFILE 监控例程性能 - Using ^PROFILE

  • 当显示子例程标签列表(以及每个标签的指标)时,可以指定以下任何一项
Option Description
# 要更详细地分析的子例程标签(在代码中)的行号。按 Enter 后,将显示指定标签的代码。
B 显示列表的上一页。
L 切换到子程序的行级显示。
N 显示列表的下一页。
Q 退出列表,返回上一级。
R
0 0
0 58
文章
· 一月 6, 2023 阅读大约需 3 分钟
第三十六章 使用 ^PROFILE 监控例程性能 - Using ^PROFILE

第三十六章 使用 ^PROFILE 监控例程性能 - Using ^PROFILE

^PROFILE 实用程序可帮助程序员分析其应用程序例程和类的性能。它分两个阶段完成此任务:

  1. 它收集数据,按例程级别分类,以帮助您确定哪些例程最“有效”。
  2. 它允许选择要收集的例程并在行级别详细显示数据(子例程、过程和单独的行),以便可以“向下钻取”到可能导致性能问题的各个例程。

默认情况下,^PROFILE 捕获最多 5000 个例程的指标;如果没有足够的共享内存可用于最大数量的例程,该实用程序会显示一条消息,说明监视此集合所需的内存页数和可用页数。然后,该实用程序会捕获尽可能多的例程的指标。

Using ^PROFILE

%SYS 命名空间调用 (^PROFILE) 实用程序:

%SYS>do ^PROFILE

当系统提示开始收集数据时,按 Enter

0 0
0 71
文章
· 一月 6, 2023 阅读大约需 8 分钟
《数据二十条》的号角声

国务院于2022年12月19日发布了《中共中央 国务院关于构建数据基础制度更好发挥数据要素作用的意见》(后简称《数据二十条》),如何有效利用数据已经成为下一步的趋势。另一方面,无论是基于数据中台还是数据编织理念,两者也都对如何利用数据提出了构想。因此医疗行业数字化建设的目标已不能再局限于如何收集数据,建立医疗行业数据的流通机制将会是为越来越普遍的需求。

时钟拨回几年前,数据中台概念开始火爆。人们对数据中台的定义、诠释尽管有诸多差异,通过数据中台降低数据共享和利用的成本则是共同的期望。但经过这几年的探索之后,中台已死的观点也在涌现。究其原因,除去中台概念在技术上的不确定,数据流通过程中的责权益的不清晰也是严重的制约因素。毕竟,数据中台自身作为一套技术框架并不能代替法律法规与市场自动将数据转变为商品从而创造出流通价值。

那么,如何能够使数据的流通合规合法,使数据能够如货币和商品一般自由流动,则是我们需要思考和探索的主题,这次《数据二十条》的出现,无疑为医疗信息技术工作者提供了一个明确的思考方向。

4 0
0 185
文章
· 九月 25, 2022 阅读大约需 25 分钟
Ens.Util.JSON类的启发

日常工作中,JSON使用越来越多,很多其他的语言里面有成熟的JSON API,但cache 我一直没找到。而同事们使用的基本都是自己写的一些JSON工具。这些小工具,多多少少有些局限。使用ensemble2016后,发现了 Ens.Util.JSON类,他可以处理JSON。翻阅代码后,实际上主要API是 %ZEN.Auxiliary.abstractController。在使用中,我们遇到一个问题,那就是有些JSON的节点名是带有下划线的,这个不太好处理。一般来说,我们把对象转为xml的时候,对象的属性我们是去掉下划线的,带下划线的名字是用 XMLNAME来设置的,于是考虑JSON里面也使用它(如果配置了)作为对象转JSON的时候,JSON的名字。

12 4
0 159

第二十六章 使用系统监视器 - 使用 ^%SYSMONMGR 管理应用程序监视器

如使用 ^%SYSMONMGR 实用程序中所述,^%SYSMONMGR 实用程序允许管理和配置系统监视器,包括应用程序监视器。该实用程序可以在任何名称空间中执行,使用它所做的更改只会影响启动它的名称空间。必须通过在该命名空间中启动 ^%SYSMONMGR 来为配置的每个启动命名空间维护单独的应用程序监视器配置。

注意:在对应用程序监视器配置进行任何更改(例如激活类)之后,必须在进行更改的名称空间中重新启动系统监视器以使更改生效。

要管理应用程序监视器,请在终端中输入以下命令:

%SYS>do ^%SYSMONMGR

然后为管理应用程序监视器输入 5。显示以下菜单:

0 0
0 94
文章
· 十二月 26, 2022 阅读大约需 4 分钟
第二十五章 使用系统监视器 - 应用程序监视器

第二十五章 使用系统监视器 - 配置健康监视器类

此子菜单中的选项可让自定义 Health Monitor,如下表所述。

注意:不能在系统监视器运行时使用这些选项来自定义健康监视器;必须先停止系统监视器,然后在进行更改后重新启动它。

0 0
0 68
文章
· 十二月 24, 2022 阅读大约需 3 分钟
第二十三章 使用系统监视器 - 通知规则

第二十三章 使用系统监视器 - 通知规则

通知规则

如果一段时间内传感器的三个连续读数大于传感器最大阈值,Health Monitor 将生成警报(严重性 2 的通知),如果一段时间内传感器的五个连续读数大于传感器最大阈值,则健康监视器将生成警告(严重性 1 的通知)大于传感器警告阈值。最大值和警告阈值取决于传感器对象中的设置以及适用的图表是由 Health Monitor 生成还是由用户创建,如下表所示。

另请注意:
- 当传感器对象设置了最大值和警告值时,不需要图表,因此不会生成图表,即使禁用 Health Monitor 也会生成通知。
- 当传感器对象设置了最大乘数和警告乘数,或者只有基数时,需要图表;在分析模式下收集到足够的样本以生成图表之前,不会生成任何通知。
- 当存在用户创建的图表时,传感器对象设置是什么并不重要。

0 0
0 82
文章
· 十二月 23, 2022 阅读大约需 4 分钟
第二十二章 使用系统监视器 - 周期

第二十二章 使用系统监视器 - 周期

Periods

默认情况下,每周有 63 个重复周期对传感器进行采样。这些期间中的每一个都代表一周中特定日期的以下指定间隔之一:

默认健康监控周期

0 0
0 75
文章
· 十二月 22, 2022 阅读大约需 6 分钟
第二十一章 使用系统监视器 - 传感器和传感器对象

第二十一章 使用系统监视器 - 传感器和传感器对象

传感器和传感器对象

Health Monitor 传感器对象表示 SYS.Monitor.SystemSensors 中的传感器之一。每个传感器对象必须提供一个基值,并且可以选择提供一个最大(警报)阈值和一个警告阈值(绝对值或乘数)。 Health Monitor 传感器对象及其默认参数显示在下表中。

一些传感器代表IRIS 实例的总体指标。这些传感器在下表中没有在“传感器项目”列中列出的值。例如,LicensePercentUsed 传感器采样当前正在使用的实例授权许可单位的百分比,而 JournalGrowthRate 传感器采样写入实例日志文件的数据量(以每分钟 KB 为单位)。

0 0
0 89
文章
· 十二月 21, 2022 阅读大约需 5 分钟
第二十章 使用系统监视器 - 定义系统监视器组件

第二十章 使用系统监视器 - 定义系统监视器组件

SYS.Monitor API 允许定义自己的传感器、订阅者和通知器类。

Sensor Classes

传感器类扩展 %SYS.Monitor.AbstractSensorSystem Monitor 控制器最初调用每个传感器类的 Start() 方法;此后,在每个周期,它都会调用 GetSensors() 方法。 SetSensor() 方法在传感器类中用于设置 SensorReading 属性中的传感器名称/值对,该属性由 GetSensors() 返回并传递给所有订阅者类。

传感器类还可以评估传感器读数,并根据评估结果调用类的 %SYS.Monitor.Email 以根据通知或任何用户定义的警报方法生成电子邮件消息。

0 0
0 81
文章
· 十二月 20, 2022 阅读大约需 3 分钟
第十九章 使用系统监视器 - 配置系统监视器命名空间

第十九章 使用系统监视器 - 配置系统监视器命名空间

配置系统监视器命名空间

当一个实例启动时,系统监视器会在每个已配置的启动命名空间中作为一个单独的进程自动启动(默认情况下仅限 %SYS)。所有系统监视器配置和设置都是特定于命名空间的。当使用 ^%SYSMONMGR 进行更改时,更改仅影响启动该实用程序的命名空间。

注意:^%SYSMONMGR 的所有实例都将消息写入同一系统监视器日志。可以从任何命名空间配置启动命名空间。

当在主菜单中输入 3 时,将显示以下菜单:

1) Configure Components
2) Configure Startup Namespaces
3) Exit

输入 2 以显示配置命名空间的选项:

1) List Startup Namespaces
2) Add Namespace
3) Delete Namespace
4) Exit

输入 1 以列出当前配置的启动命名空间。

0 0
0 42
文章
· 十二月 19, 2022 阅读大约需 2 分钟
第十八章 使用系统监视器 -设置系统监视器选项

第十八章 使用系统监视器 - 设置系统监视器选项

设置系统监视器选项

要更改全局系统监视器设置或将它们恢复为默认值,请停止系统监视器(如果它正在运行),然后在主菜单中输入 2

1) Set Sample Interval
2) Set Debugging Level
3) Reset Defaults
4) Manage Debug Data
5) Exit

输入 1 设置系统监视器调用每个配置的传感器类的时间间隔;默认值为 30 秒。

输入 2 设置调试级别。默认值为 0(基本),它将系统监视器和运行状况监视器状态和错误消息写入系统监视器日志,并且不保存传感器读数。调试级别 1(记录所有传感器)将传感器读数与消息一起写入系统监视器日志并保存传感器读数,然后可以使用“查看系统数据”菜单的“查看传感器数据”选项查看这些读数。

输入 3 将采样间隔、调试级别和传感器读数的保存重置为其默认值。

0 0
0 79
文章
· 十二月 18, 2022 阅读大约需 3 分钟
第十七章 使用系统监视器 - 使用 ^%SYSMONMGR 实用程序

第十七章 使用系统监视器 - 使用 ^%SYSMONMGR 实用程序

^%SYSMONMGR 实用程序可让管理和配置系统监视器。该实用程序可以在任何名称空间中执行,使用它所做的更改只会影响启动它的名称空间。必须通过在该命名空间中执行 ^%SYSMONMGR 来为配置的每个启动命名空间维护单独的系统监视器配置。在对命名空间的系统监视器配置进行任何更改后,必须在命名空间中重新启动系统监视器才能使更改生效。

重要提示:本节中描述的使用 ^%SYSMONMGR 实用程序的所有手动操作都可以使用 %Monitor.Manager API 中的方法以编程方式执行。

要管理系统监视器,请在终端中输入以下命令:

%SYS>do ^%SYSMONMGR

出现主菜单

0 0
0 82
文章
· 十二月 17, 2022 阅读大约需 3 分钟
第十六章 使用系统监视器 - 系统监视器默认值

第十六章 使用系统监视器 - 系统监视器默认值

系统监视器默认值

System Monitor 调用一组提供的可以扩充的类,在 %SYS 命名空间中运行,并在三个可以更改的默认设置下运行。

默认系统监视器组件

IRIS 提供了五个类,默认情况下在 %SYS 命名空间的系统监视器中配置。

Sensor classes:

  • SYS.Monitor.SystemSensors

系统传感器类获取传感器值传递给配置的订阅者类,包括系统监控订阅者(SYS.Monitor.SystemSubscriber)和健康监控订阅者(SYS.Monitor.Health.Control)。

0 0
0 79
文章
· 十二月 16, 2022 阅读大约需 2 分钟
第十五章 使用系统监视器 - 系统监控健康状态

第十五章 使用系统监视器 - 系统监控健康状态

基于发布到消息日志的通知,包括由IRIS 实例直接生成的系统警报以及由 System Monitor 和它的 Health Monitor 组件 System Monitor 在共享内存中的寄存器中维护一个总结整个系统健康状况的单一值。

在启动时,系统健康状态是根据在启动过程中发布到消息日志的系统(而不是系统监视器)警报的数量来设置的。系统监视器运行后,可以通过系统警报或系统监视器警报或警告来提升健康状态。自上次系统警报或系统监视器警报或警告发布后 30 分钟过去后,状态将清除到下一个较低级别。下表显示了如何确定系统健康状态。

0 0
0 68
文章
· 十二月 15, 2022 阅读大约需 3 分钟
第十四章 使用系统监视器 - 跟踪系统监视器通知

第十四章 使用系统监视器 - 跟踪系统监视器通知

通常,应调查任何系统监视器警报(严重性 2 的通知)或系统监视器警告序列(严重性 1)。 Health Monitor 还可以生成系统监视器警报和警告。

系统监视器警报、警告和状态消息(严重性 0)被写入消息日志 (install-dir\mgr\messages.log)。 (所有系统监视器和健康监视器状态消息都写入系统监视器日志,install-dir\mgr\SystemMonitor.log。应用程序监视器警报不会写入日志,但可以通过电子邮件发送或传递给指定的通知方法。 )

要跟踪系统监视器警报和警告,可以执行以下操作:

0 0
0 64
文章
· 十二月 14, 2022 阅读大约需 4 分钟
第十三章 使用系统监视器 - 系统监视器

第十三章 使用系统监视器 - 系统监视器

System Monitor 是一种灵活的、用户可扩展的实用程序,用于监控 数据平台实例,并在一个或多个指标的值表明存在潜在问题时生成通知。如所提供的,System Monitor 包含以下实例监控工具:

0 0
0 101

InterSystems 是一家已经深耕数据库平台领域达44年的公司,成立于1978年,现在已经在全球的80多个国家开展相关业务,每天有超过10亿患者的电子病历数据都跑在以我们的数据库平台构建的应用系统之上。

2 0
0 195
文章
· 十一月 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 432
文章
· 十月 8, 2022 阅读大约需 6 分钟
10分钟快速开发一个连接到InterSystems IRIS数据库的C#应用

安装InterSystems IRIS数据库的ODBC驱动,在Windows系统中配置数据源后,可以使用Microsoft Visual Studio 开发工具 中的服务器资源管理器很方便地连接到InterSystems IRIS数据库服务器,利用数据库连接的可视化视图,可以非常方便快捷地进行连接到InterSystems IRIS数据库的应用开发。本文将展示一个利用以上方式实现的例子,开发工具为Microsoft Visual Studio 2019,开发语言为C#,10分钟快速开发实现一个连接到InterSystems IRIS数据库的C#应用,在本例子中,可以通过选择日期和科室,查询指定日期和科室的就诊日志。

1、在成功安装InterSystems IRIS数据库的ODBC驱动后,从Windows的“控制面板”中选择“管理工具”,在“管理工具”中选择“ODBC数据源”。

16 6
3 736
文章
· 十一月 10, 2022 阅读大约需 6 分钟
Caché 字符编码自动判断

Caché 字符编码自动判断

先说几个场景:

  1. 使用文件字符流打开一个文本文档,但是我不确定是以UTF8编码的还是GB18030,所以就无法准确设置TranslateTable,就导致了中文乱码问题。
  2. 有一个文件下载的csp,其中文件名参数可能是中文,如果在一个UTF8编码的界面直接调用时,后台取到的文件名就会是乱码。
  3. 接收到字节流后需要转成字符流读取内容,但是无法确定编码格式,就无法准确的转成字符。

以上几个场景虽然大多都可以提前做好约定解决,但是可能有历史原因或者种种情况,需要我们自己能够解决,于是就有了下面的故事。

基础

首先我方系统使用GB18030编码,然后碰到的情况大多都是对方可能是UTF8编码,所以主要来解决识别字节流是不是UTF8编码的。

然后查了一个UTF8编码格式

1 0
0 196
文章
· 十一月 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 285
文章
· 十一月 1, 2022 阅读大约需 4 分钟
Caché实现SM3密码杂凑算法

0. 算法概述

SM3密码杂凑算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。该算法于2012年发布为密码行业标准(GM/T 0004-2012),2016年发布为国家密码杂凑算法标准(GB/T 32905-2016)。

SM3适用于商用密码应用中的数字签名和验证,是在[SHA-256]基础上改进实现的一种算法,其安全性和SHA-256相当。SM3和MD5的迭代过程类似,也采用Merkle-Damgard结构。消息分组长度为512位,摘要值长度为256位。

整个算法的执行过程可以概括成四个步骤:消息填充、消息扩展、迭代压缩、输出结果

1. 消息填充

SM3的消息扩展步骤是以512位的数据分组作为输入的。因此,我们需要在一开始就把数据长度填充至512位的倍数。具体步骤如下:

1、先填充一个“1”,后面加上k个“0”。其中k是满足(n+1+k) mod 512 = 448的最小正整数。

2、追加64位的数据长度。

1 2
0 191
文章
· 九月 21, 2022 阅读大约需 4 分钟
对 %XML.PropertyParameters类的探索

日常工作中,我们使用xml 应该是比较多的,早期的ensemble或者cache,对JSON的支持不是很好,但是对xml支持比较好。因此早期的接口方式中,webservice+xml的方式很常用。而对象导出为xml最简单的方式就是类继承 %XML.Adaptor。继承该类后,就可以使用很多xml的特性,以满足各种需求。虽然看不到对象转为xml的具体实现,但是配置了参数,就可以实现更多的效果。那么想自定义一些参数呢?如果有人打开过它的定义,可以看到类上面有个 PropertyClass = %XML.PropertyParameters”,那么我们其实在需要xml参数的同时,又要自定义参数,就可以自己写个属性类,继承于%XML.PropertyParameters。

15 4
0 136
文章
· 十月 22, 2022 阅读大约需 4 分钟
第二十四章 CSP Session 管理 - 认证架构

第二十四章 CSP Session 管理 - 认证架构

认证架构

安全上下文和粘性登录

应用程序在会话中运行。会话需要运行应用程序的安全上下文。安全上下文包含身份验证状态。

By-SessionsBy-ID Groups 有一个粘性登录,它会记住会话或组中使用的最后一个应用程序的安全上下文。如果组应用程序中的用户以其他用户身份登录,则会更新粘性登录。 (如果用户登录到未经身份验证的应用程序,则粘滞登录不会更新。)

在会话中跳转到应用程序时,会话会尝试使用适合目标应用程序的粘性登录。如果粘性登录与会话的当前安全上下文不匹配,并且应用程序可以接受粘性登录中的身份验证方法,则会话的安全上下文切换到粘性上下文中的安全上下文。

会话结束时,会话的粘性登录会丢失。当包含该组的任何应用程序的所有会话都结束时,该组的粘性登录将丢失。

初始登录后,组有一个关联的粘性登录对象,它在进入组的一个应用程序时尝试使用该对象。当组中的应用程序输入为 UnknownUser 时,粘性登录不会更新,因为这会将组中的所有其他应用程序移动到未经身份验证的安全上下文中。

0 0
0 32