文章 姚 鑫 · 十二月 22, 2022 6m read

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

传感器和传感器对象

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

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

其他传感器收集有关特定传感器项(CSP 服务器、数据库或镜像)的信息。例如,DBReads 传感器对每个已安装数据库的每分钟读取次数进行采样。这些传感器指定为 <sensor_object> <sensor_item>;例如,DBLatency install-dir\IRIS\mgr\user 传感器对完成对 USER 数据库的随机读取所需的时间(以毫秒为单位)进行采样。

可以使用 ^%SYSMONMGR 实用程序列出和编辑(但不能删除)传感器对象(如下面的“配置健康监视器类”部分所述)。编辑传感器对象允许修改它的一个或所有值。

0
0 197
文章 姚 鑫 · 十二月 21, 2022 5m read

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

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

Sensor Classes

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

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

Subscriber Classes

订阅者类扩展 %SYS.Monitor.AbstractSubscriberSystem Monitor 控制器最初调用每个订阅者类的 Start() 方法;此后,在每个循环中,它会为循环中调用的每个传感器类调用一次 Receive() 方法,并将从该传感器类接收到的传感器名称/值对传递给 SensorReading 属性。订户类可以评估一个或多个名称/值对,并使用 Notify() 方法设置通知,该方法填充 Notifications 属性。

0
0 184
文章 姚 鑫 · 十二月 20, 2022 3m read

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

配置系统监视器命名空间

当一个实例启动时,系统监视器会在每个已配置的启动命名空间中作为一个单独的进程自动启动(默认情况下仅限 %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 以列出当前配置的启动命名空间。

输入 2 添加启动命名空间。

输入 3 以删除启动命名空间。 (不能删除 %SYS。

0
0 107
文章 姚 鑫 · 十二月 19, 2022 2m read

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

设置系统监视器选项

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

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

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

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

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

输入 4 以设置保存传感器读数的天数;默认值为 5

更改将在下次启动或重新启动系统监视器时生效。

配置系统监视器组件

如系统监视器中所述,可以通过扩展 %SYS.Monitor.AbstractSensor%SYS.Monitor.AbstractSubscriber%SYS.Monitor.

0
0 157
文章 姚 鑫 · 十二月 18, 2022 3m read

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

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

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

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

%SYS>do ^%SYSMONMGR

出现主菜单

%SYS>do ^%SYSMONMGR
 
 
1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit

Option?

输入选择的数字或按 Enter 退出该实用程序。

0
0 162
文章 姚 鑫 · 十二月 17, 2022 3m read

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

系统监视器默认值

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

默认系统监视器组件

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

Sensor classes:

  • SYS.Monitor.SystemSensors

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

  • %SYS.Monitor.AppMonSensor

Application Monitor 提供传感器、订阅者和通知服务的类;获取传感器值并将它们存储在本地命名空间中,根据用户定义的警报评估值,并根据警报定义生成电子邮件消息或在触发警报时调用用户指定的方法。

Subscriber classes:

  • SYS.Monitor.Health.Control

Health Monitor 的订阅者类;从 SYS.Monitor.SystemSensors 接收和评估统计传感器值,并将通知发布到系统通知程序。

  • SYS.Monitor.SystemSubscriber

适用于所有传感器类别的系统监视器订阅者;包含监视和分析 SYS.

0
0 164
文章 姚 鑫 · 十二月 16, 2022 2m read

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

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

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

State Set at startup when ... Set following startup when ... Cleared
0
0 158
文章 shaosheng shengshao · 九月 14, 2022 3m read

 在AES的加密过程中,存在HEX和Base64的输出,目前在HEALTHSHARE自带有Base64的加解密规则,现在针对HEX的加解密进行对应的处理,实现和网上ASE加解密工具进行互相加解密。
在Ensemble的AES的CBC加密主要用到的是这俩个方法
$system.Encryption.AESCBCManagedKeyEncrypt(Plaintext,KeyID)
Plaintext是需要加密的字符串,需要进行$ZCONVERT(字符串,"O","UTF8")转换
KeyID是密钥的ID。
或者是
$SYSTEM.Encryption.AESCBCEncrypt(text,key,IV)
text是需要加密的字符串,需要进行$ZCONVERT(text,"O","UTF8")转换
Key 是密钥 键的长度必须为16、24或32个字符
IV  是偏移量 如果存在此参数,则必须为16个字符长。

第一个方法是在本地生成对应的密钥,暂时还不能和网站上的进行互相加解密的处理。
目前主要是针对第二个方法
$SYSTEM.Encryption.

8
1 749
文章 姚 鑫 · 十二月 15, 2022 3m read

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

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

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

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

  • 使用 ^%SYSMONMGR 实用程序查看系统监视器警报。此选项允许显示所有传感器或特定传感器的警报,并查看所有记录的警报或仅查看在指定时间段内发生的警报,但它不显示警告。
  • 监控消息日志。请记住,当在短时间内为给定传感器生成一系列系统监视器警报时,只有第一个会写入消息日志。

注意:在消息日志中,System Monitor 状态通知以首字母大写标记,例如 [System Monitor]%SYS 开头,而 warningsalertsOK 消息则以大写标记,例如 [SYSTEM MONITOR] CPUusage Warning: CPUusage = 90(警告值为 85)。

0
0 144
文章 姚 鑫 · 十二月 14, 2022 4m read

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

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

  • System Monitor 监控系统状态和资源,根据固定参数生成通知(警报和警告)并跟踪整体系统健康状况。
  • Health Monitor 对关键系统和用户定义的指标进行采样,并将它们与用户可配置的参数和建立的正常值进行比较,当样本超过适用的阈值时生成通知。
  • Application Monitor 对重要的系统指标进行采样,将值存储在本地名称空间中,并使用用户创建的警报定义对其进行评估。触发警报时,它可以生成电子邮件通知或调用指定的类方法。

默认情况下,这三个工具都在 %SYS 命名空间中运行。 System MonitorApplication Monitor 可以选择在特定于命名空间的配置和设置下的其他命名空间中运行。可以定义和配置自己的组件,以根据需要在每个命名空间中扩展系统监视器的功能。

系统监视器

System Monitor 对重要的系统状态和资源使用指标进行采样,例如 ECP 连接状态和使用中的锁表百分比,并根据固定状态和阈值生成通知——警报、警告和“状态正常”消息。

0
0 240
文章 Michael Lei · 十二月 13, 2022 7m read

嵌入式 Python 模板

今天你们分享一个简单的嵌入式 Python 模板,我建议将其作为任何使用 InterSystems IRIS 并将使用嵌入式 Python 的通用项目的起点。

功能:

  • 随时可用的嵌入式 Python;
  • 3 种嵌入式 Python 开发方式示例;
  • 随时可用的 VSCode 开发;
  • 支持 Docker;
  • 支持在线演示;
  • 随时可用的 ZPM 优先开发。

下面讨论一下这些功能!

0
0 276
文章 Michael Lei · 十二月 9, 2022 7m read

在数量众多、形形色色的 SQL 数据库市场中,InterSystems IRIS 作为一个超越 SQL 的平台脱颖而出,它提供无缝的多模型体验,支持丰富的开发范式。 特别是,先进的对象-关系引擎已经帮助组织为其数据密集型工作负载的每个方面使用了最适合的开发方式,例如在通过对象获取数据并同时通过 SQL 查询数据。 持久类与 SQL 表相对应,其属性与表中的各列相对应,可以使用用户定义的函数或存储过程轻松访问业务逻辑。 在这篇文章中,我们将深入了解表面之下的一点底层技术,讨论它可能如何影响您的开发和部署方式。 这是我们计划发展和改进的产品领域,因此请不要犹豫,在下面的评论区分享您的观点和体验。

保存存储定义 {Saving the Storage Definition}

编写全新的业务逻辑很容易,而且假如您有定义明确的 API 和规范,那么调整或扩展通常也很容易。 但是,当它不仅仅是业务逻辑,还涉及持久化数据时,从初始版本更改的任何内容都将需要能够妥善处理通过早期版本获取的数据。

在 InterSystems IRIS 上,数据和代码在一个高性能引擎中共存,没有您在其他 3GL 或 4GL 编程框架中可能看到的六个抽象层。 这意味着,在使用默认存储时,只有一个非常薄且透明的映射将您的类属性映射到每行数据Global节点的 $list 位置。

0
0 256
文章 Michael Lei · 十二月 7, 2022 11m read

大家好!

这是关于使用 Docker 初始化 IRIS 实例的系列文章中的第三篇。 这次,我们将关注企业缓存协议(Enterprise Cache Protocol,ECP)。

ECP 允许以一种非常简单的方式将某些 IRIS 实例配置为应用程序服务器,将其他实例配置为数据服务器。 有关详细的技术信息,请参阅官方文档。

本文旨在介绍:

  • 如何编写数据服务器的初始化脚本,以及如何编写一个或多个应用程序服务器的初始化脚本。
  • 如何使用 Docker 在这些节点之间建立加密连接。

为此,我们通常使用我们在以前的 Web 网关中已经看到的一些工具,以及描述 OpenSSL、envsubst 和 Config-API 等工具的镜像文章。

要求

ECP 不适用于 IRIS 社区版。 因此,需要访问全球响应中心才能下载容器许可证并连接到 containers.intersystems.com 注册表。

准备系统

系统必须与容器共享一些本地文件。 需要创建特定用户和组来避免出现“访问被拒绝”错误。

0
0 218
文章 Michael Lei · 十二月 7, 2022 11m read

Intersystems IRIS for Health 对 FHIR 行业标准提供了出色的支持。主要特点是:
1.FHIR 服务器
2. FHIR数据库
3. REST 和 ObjectScript API 用于 FHIR 资源(患者、问卷、疫苗等)的 CRUD 操作

本文演示了如何使用这些功能,并展示了用于创建和查看表单类型的 FHIR 资源的Angula前端。

第 1 步 - 使用 InterSystems IRIS for Health 部署您的 FHIR 服务器

要创建 FHIR 服务器,您必须将以下说明添加到 iris.script 文件中(来自:https://openexchange.intersystems.com/package/iris-fhir-template&#65289;

 zn "HSLIB" set namespace= "FHIRSERVER" Set appKey = "/fhir/r4" Set strategyClass = "HS.FHIRServer.Storage.Json.InteractionsStrategy" set metadataPackages = $lb ( "hl7.fhir.r4.core@4.0.
0
0 187
公告 Claire Zheng · 十二月 5, 2022

开发者们大家好!

我们非常激动地与您分享我们为每个社区成员提供的在线分析仪表板(Online Analytics Dashboard)这一全新的强大功能🔥

从现在开始,您可以看到您自己的当周、月和所有时间的详细统计数据,包括:

  • 浏览量,点赞量,评论量,关注量
  • 时间轴图——针对浏览量、点赞、关于您的帖子的行动、评论
  • 包含关于您的每个帖子的浏览量、评论和点赞信息的表

    0
    0 171
    文章 Michael Lei · 十二月 5, 2022 2m read

    血糖控制不佳与流产、入住 NICU、手术分娩和妊娠期较短的风险增加有关。尤其危险的是那些先前患有糖尿病的人,他们将受益于在受孕前维持接近正常的血糖。所有 DIP 患者都将从早期转诊到糖尿病服务中受益。如果要降低相关并发症、围产期死亡率和孕产妇发病率,重点将放在 DIP 的早期发现和有效治疗上,以实现血糖正常。糖尿病的早期诊断、生活方式管理和治疗将降低高血糖并发症的发生率和严重程度。

    妊娠期糖尿病患者的血糖控制和妊娠结局:一项回顾性研究

    连续血糖监测(CGM) 是一种全天候自我监测血糖水平的方法,这意味着用户可以在高血糖和低血糖发生时捕捉(并采取行动)。

    与标准护理相比,CGM 改善了产妇糖化血红蛋白水平,降低了剖宫产率和新生儿出生体重。然而,不仅要监测血糖水平,还要跟踪异常症状并及时预约医生,这样才能提高生下健康婴儿的机会。

    我们希望引入全新的医疗保健解决方案,让糖尿病诊断变得更简单、更复杂。我们相信,我们在实施 FHIR 和 IRIS 系统以处理和存储医疗数据方面的创新方法可以防止患者患上与妊娠糖尿病相关的许多进一步病症。 DiaBro将使医生能够更加关注追踪妊娠糖尿病的危险因素,并在患者病情发生致命变化时迅速采取行动。

    我们已经连接了来自 FHIR 和 IRIS 的数据。主要数据(医生、预约)来自 FHIR,其他数据(应医生的要求)来自 IRIS。

    0
    0 193
    文章 Qiao Peng · 十二月 2, 2022 9m read

    1.数据的价值 

     

    数据的核心价值是帮助我们决策。 

     

    我们无时无刻不在决策,大到战略决策——为一家新医院选址,还有战术决策——鉴别产品的目标市场或抵押贷款审批,更频繁的是操作决策——决定患者的手术方案或患者药物的调整。

    这些决策要求不同的决策速度,传统的数据中心已经能较好地帮助我们做战略决策、战术决策,甚至一些操作决策。但新的业务需求要求我们的决策速度越来越快,甚至借助机器学习自动为我们做出即时的决策,例如批准还是拒绝一笔信用卡交易或基于算法自动交易。 

     

    无论是人工决策还是基于机器学习的自动决策,决策的依据是数据。数据的速度和质量决定了决策的速度和质量。要支持决策,需要数据具有如下特征: 

    (1)完整 :关联且具有完整上下文; 

    (2)干净 :数据质量没有问题; 

    (3)及时 :在决策点上没有延迟。 

     

    传统数据中心很难在及时性上满足要求。 

     

    2.数据挑战

     

    数字化浪潮下,我们面临更大的数据挑战: 

    • 数据规模:数据量已经完全超出了人工处理能力。 


    • 数据源多样性:数据源不再仅是数据库,流式引擎的消息、物联网、对象存储......它们还带来了越来越多模型种类的数据。


    • 更多的数据孤岛:更多的系统和应用被建设,进一步增加了数据孤岛现象。 


    • 跨部门的数据不一致:统计口径和统计时间的差异,造成财务部门统计的数据,总是和业务部门统计的数
    0
    0 243
    文章 Weiwei Gu · 十二月 1, 2022 3m read

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

    我们的客户遍布国内外,国内的大几百家三甲医院客户,中国复旦排行榜上超过1/3的顶级医院都在使用我们产品(包括北京协和医院,华西医院,湘雅等等),我们的技术合作伙伴,如东华医为,嘉和,和仁等也都是国内医疗信息领域的著名厂商。

       而在国外,我们也有非常多的顶级客户,仅仅以美国举例,美国最顶级的排名前20的所有医院,无一例外全部都是使用的interSystems公司的数据库平台产品。

     美国排名前20的所有顶级医院

    2020-2021《美国新闻与世界报道》(U.S. News & World Report)最顶级医院名单(前20家医疗机构)均应用InterSystems公司的数据库平台:

    Mayo Clinic, Rochester, Minnesota (明尼苏达州罗彻斯特市梅奥诊所)
    Cleveland Clinic(克利夫兰诊所)
     Johns Hopkins Hospital, Baltimore(巴尔的摩约翰霍普金斯医院)
    (tie).

    0
    0 543
    公告 Claire Zheng · 十一月 30, 2022

    2022 年 12 月 1 日,中国,北京——致力于帮助客户解决最关键的可扩展性、互操作性和速度问题的创新数据技术提供商 InterSystems 今天宣布,在Forrester日前公布的《The Forrester Wave™:事务分析型数据平台(2022年第4季度)》报告中,InterSystems IRIS® 数据平台被评为领导者。

    0
    0 186
    文章 Lilian Huang · 十一月 30, 2022 5m read

    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版本的应用程序所理解),在更高的版本中,你会看到一些字段是专门为它而留的。


     

     

    尽管HL7v2已经有30多年的历史,但根据HL7.

    0
    1 1004
    文章 Hao Ma · 十一月 22, 2022 3m read

    命名规范,英文叫"name convention", 是对写代码取名字的一些”共识“。也就是说, 你可以不遵守,但大家都选择了遵守,照者一个规范来。为什么呢?因为有社区,大家要共享代码, 你不照着规矩来, 别人会鄙视你, 懒的用你的代码。

    ObjectScript以前没什么社区,大家各写各的, 使用ObjectScript的大公司也没谁把自己的代码拿出来共享。因此,个人开发者基本就是参考官方InterSystems的命名规范。举个例子, 比如以下的代码:

    Class Ens.Util.ResponseBodyMethods
    {
       property NoFailWhileDisconnected as %Boolean;
       property FirstName as %String;
       parameter SETTINGS = "ReplyCodeActions";
       
       method OnKeepalive(pAdapterStatus As %Status) as %String
       {
          return "okay"
       }
    }
    

    我来简单总结一下:

    • 包名和类名:Pascal格式,也就是首字母大写。其中%开头的是官方独占,

    • Property名字:首字母大写

    • method Name:同上。

    2
    0 331
    文章 Hao Ma · 十一月 26, 2022 4m read

    建立私服(Porxy-Registry)

    这张图解释了您的私服是怎么工作的, 整篇文章在这里: Proxy-Registry

    搭建私服

    您需要有一台自己的的服务器, 在上面安装IRIS, zpm, 然后用zpm去下载另一个软件包“zpm-registry"。象这样

    zpm:DEMO>search -r zpm-registry
    registry https://pm.community.intersystems.com:
    zpm-registry 1.1.11Repository: https://github.com/intersystems-community/zpm-registry/
    
    zpm:DEMO>install zpm-registry
    [DEMO|zpm-registry]	Reload START (/usr/irissys/mgr/.modules/DEMO/zpm-registry/1.1.11/)
    [DEMO|zpm-registry]	Reload SUCCESS
    [zpm-registry]	Module object refreshed.
    0
    0 275
    文章 he hf · 十月 8, 2022 6m read

            安装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数据源”。

    2、在ODBC数据源管理的“用户DSN”标签下,选择“添加”,在随后弹出的“创建新数据源”窗口中选择“InterSystems ODBC”,点击“完成”进入下一步。

     

    3、在弹出的“InterSystems ODBC数据源设置”窗口中,为数据源命名,填写连接数据库的信息,访问用户名和密码,点击“测试连接”,成功后点击“OK”保存。

    6
    4 1482
    文章 王喆 👀 · 十一月 17, 2022 5m read

           经过一段时间的学习和使用本文总结了一些使用VsCode开发的使用方法,本文偏向于应用但会对少量的我知晓的原理进行一部分解释。

    参考教程链接:https://cn.community.intersystems.com/node/488611

    VSCode下载:https://code.visualstudio.com/

     

    • 使用VSCode开发的优劣:

    1 优势:

    1. 跨平台(Windows|MAC|Linux)开发调试远程服务端代码,而且可以快速导出COS代码(M语言也可以)。
    2. SQL辅助查询数据
    3. 快捷的代码调试方式,一种是直接在VSCode中调试,另一种是快速复制类名和方法名在Terminal中调试。
    4. 代码智能联想补全,类似其它语言,输入开头的前几个字符可以联想后面的。
    5. 快速跳转到方法定义(ctrl+鼠标左键 | F12)
    6. 主题图标多样化,可以使用默认的黑色,当然也可以使用和studio一样的样式,链接:https://cn.community.intersystems.com/node/516996

    2 劣势:

    1. 无法导入导出XML文件
    2. 缺少一些Studio的常用功能:
      1. SOAP向导
      2. Java网关
      3. DT转换拖拽编写
      4. BP流程拖拽编写
    • 安装步骤

    1官网安装Visual Studio Code编辑器

     https://code.

    6
    2 1284
    文章 Hao Ma · 十一月 14, 2022 7m read

    ZPM介绍

    有Developer听闻了InterSystems的包管理器ZPM, 希望我能介绍一下。正好刚刚看到一个开发者论坛的新闻: Open Exchange ZPM is now InterSystems Package Manager , 觉得更有必要了。

    zpm是什么

    简单说:zpm, 全称InterSystems ObjectScript Package Manager, 是一个包管理器, 开发者是Nikolay Soloviev和Dmitry Maslennikov。它先是在开发者社区里得到认可,以至于InterSystems开发者社区最近的一些比赛,要求参赛作品用zpm打包。然后就有了上面的链接的内容:InterSystems决定把它做为自己官方的打包工具, 将它改名字叫IPM(InterSystems Package Manager),同时保持它的开源状况不变。

    这里我还是用zpm称呼它。两个原因。1. 操作的命令还是zpm, 所谓ipm,只是官方给的名字。2. ipm新的注册中心还不太了解,而且到目前为止,IPM的注册中心还只对自己的雇员和付费用户开放。本文的读者应该都还没来得及付费,所以暂时先放放,还是叫它zpm。

    考虑到没有程序员背景的读者而对包管理器不熟悉,啰嗦两句。

    1
    0 366
    公告 Claire Zheng · 十一月 2, 2022

    各位开发者社区的同学们,大家好!

    在各位社区同学的大力支持下,我们的“首届技术征文大赛”圆满完赛!在过去一周多的时间里,我们整理了各类奖项及礼品,目前已经全部寄出!

    最新寄出的是开发者征文大赛获奖者的奖品,请以下同学留意查收,如未收到快递信息,请及时与我们联系:

     



    @Zhe Wang

    @姚.

    3
    0 152
    文章 Cryze Zhang · 十一月 10, 2022 6m read

    Caché 字符编码自动判断

     

    先说几个场景:

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

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

    基础

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

    0
    0 426