文章 姚 鑫 · 八月 3, 2023 3m read

第十一章 配置Production - 集成和配置 HL7 业务服务

集成和配置 HL7 业务服务

要将新的 HL7 业务服务集成到production中,必须将其与其中继消息的路由流程或业务操作相关联。此外,如果希望业务服务接收非标准消息结构,将需要创建自定义 HL7 架构定义来解析和验证这些消息。去做这个:

  1. 完成创建 HL7 业务服务所需的任何目标配置名称或消息架构类别项的说明。这些项目可能是:
  • HL7 路由进程(针对路由接口)。请参阅下一节。
  • HL7 业务操作(如果设计绕过此接口的路由过程,只是将消息从传入业务服务中继到传出业务操作)。请参阅本章后面的“添加 HL7 业务操作”。
  • 自定义 HL7 架构定义,用于解析传入的 HL7 消息。
  1. 返回生产配置页面上的图表。选择新的 HL7 业务服务。如果“目标配置名称”和“消息架构类别”字段之前为空,请立即配置它们,然后单击“应用”。
  2. 根据需要配置业务服务的其他设置。详细信息请参见“参考”中的“HL7业务服务设置”。

添加 HL7 路由进程

要将 HL7 路由流程添加到production中,必须创建它,将其集成到产品中,并根据需要对其进行配置。以下小节提供了详细信息。

创建 HL7 路由流程

要将 HL7 路由流程添加到production

  1. 在管理门户的生产配置页面中显示生产(从主页选择互操作性 > 配置 > Production)。
0
0 135
问题 e Neo · 七月 31, 2023

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",

            "username": "_system"

        }

错误信息:

Server Could not be accessed by ‘“_system”

1
1 298
文章 姚 鑫 · 八月 2, 2023 3m read

第十章 配置Production

本章介绍如何配置产品以包含 HL7 路由接口。它还描述了如何创建新的 HL7 路由制作。

创建新的 HL7 路由Produtcion

可以创建一个新的HL7路由产品,如下所示:

  1. Management Portal中,切换到适当的名称空间。

为此,请在标题栏中选择Switch,单击名称空间,然后单击OK

  1. 选择互操作性>列表>产品。
  2. 选择New以调用Production Wizard
  3. 输入“Package Name”“Production Name”“Description”
  4. 选择HL7 Messaging production类型并选择OK

starter production有一个接口,其元素为:

  • HL7FileService — 一个禁用的HL7文件服务,具有默认设置
  • MsgRouterHL7路由进程,带有空路由规则集
  • HL7FileOperation - 一个禁用的HL7文件操作,具有默认设置

在构建HL7路由产品时,需要创建和配置许多这样的接口。可以从启用这些起始元素、复制它们、重命名它们并修改它们以满足需要开始。在构建接口时,经常会出现这样的情况:在配置一个项目时,必须输入尚未创建的另一个项目的名称。明确的命名约定对于避免混淆至关重要。

0
0 190
文章 Kelly Huang · 八月 2, 2023 18m read

k8s

这是一个使用 IKO 在 k3d 上部署  iris-oauth-fhir  的示例。

*  iris-oauth-fhir 是一个示例,用于部署带有 OAuth2 身份验证功能的 FHIR 服务器,InterSystems IRIS for Health 作为资源服务器,Google OpenId 则作为授权服务器。

* k3d 作为一个轻量级封装器,用于在 docker 中运行 k3s (Rancher Lab 的最小 Kubernetes 发行版)

IKO 是一个在 Kubernetes 上部署 InterSystems IRIS for Health 的工具。

2. 目录表

0
0 172
文章 Lilian Huang · 八月 1, 2023 5m read

VR ICU® 是 InterSystems FHIR 创新孵化器 Caelestinus 的参与者。这篇文章将向您介绍我们利用 InterSystems FHIR Server 为医疗保健提供的 VR 解决方案。

我们是一家技术初创企业虚拟实验室,利用先进的 VR/AR 技术开发解决方案。VR ICU® 是一个针对重症监护室医务人员的培训平台,是在 Covid 时代为满足医院需求而创建的。

与InterSystems合作的优势

我们的 VR ICU® 解决方案符合实践需求,是与医院合作开发的。

除了技术解决方案和技能学习本身,记录培训课程、培训进度和成功率对于医院或麻醉学和重症监护部门的有效管理也至关重要。医务长可以通过了解谁在何时接受了培训,清楚地掌握能够在重症监护室使用设备的人员数量,从而有效地对他们进行培训,以保持技能、有控制地规划人员技能储备并提高他们的能力。

在这方面,与 InterSystems 的合作对我们来说至关重要,它使我们能够在应用程序中存储每次培训期间的数据。目前,我们会记录参与者的姓名、培训日期和时长、培训类型、设备类型、错误数量和类型,必要时还会记录培训成功完成的信息。

如何使用?用户登录应用程序并选择一个账户。

根据 HL7 标准,该账户作为从业人员存在于数据库的资源下。

0
0 250
公告 Claire Zheng · 八月 1, 2023

嗨,开发者们!

我们很高兴邀请您参加Idea-A-Thon创意马拉松,展示与 InterSystems 技术相关的好创意:

🎁第二届 InterSystems Idea-A-Thon创意马拉松🎁

8 月 1 日8 月 21 日期间,根据本次创意马拉松的主题发布创意,即可获得即可获得创意达成奖

最重要的是,此次赛事InterSystems的员工和社区成员都可以参与!

0
0 273
文章 姚 鑫 · 七月 31, 2023 2m read

第八章 HL7 架构和可用工具 - 测试转换

显示段地址

要显示段地址,请将光标悬停在阴影列中的段名称上。工具提示显示以下内容:

  • 在虚拟属性路径中使用的段地址
  • 该段的描述性名称

显示字段地址

要显示字段地址,请将光标悬停在消息结构中的字段上。工具提示显示以下内容:

  • 在虚拟属性路径中使用的字段地址(作为数字)
  • 在虚拟属性路径中使用的字段地址(作为名称)
  • 指示该字段的语法规则的字符。字符可以这样开头:
Symbol Meaning
! (仅限 1) 该字段为必填项;它必须只发生一次。
? 01)该字段是可选的,但如果出现,则可能只出现一次。
+ 1 次或多次)该字段可以重复一次或多次。
* 0 次或多次)该字段可以重复零次或多次。
& 该字段可能存在,并且可能重复,但仅在某些条件下。
n* (0n) 该字段最多重复 n 次。
(m) m 是字段中的最大字符数。该字段的每次重复都可以包含此数量的字符。

批量消息

如果字段用尖括号 (<,>) 括起来,则它是指向子文档的链接。单击它可查看该文档的摘要报告和消息数据。

测试转换

要测试转换:

  1. 单击转换文档?。
  2. 对于选择数据转换,选择数据转换。
  3. 对于选择显示选项,请选择以下选项之一:
    • 仅转换结果 — 仅显示转换后的文档。
    • 原始消息和结果一起显示 -
0
0 126
文章 Lilian Huang · 七月 31, 2023 2m read

FHIR® SQL Builder或 Builder 是 InterSystems IRIS 医疗版数据平台 的一个组件。它是一种复杂的投射工具,用于将 InterSystems IRIS  医疗版数据平台FHIR 存储库中的数据创建为自定义的 SQL 模式,而无需将数据移动到单独的 SQL 存储库中。 Builder 专门设计用于与 InterSystems IRIS 医疗版数据平台中的 FHIR 存储库和多模型数据库配合使用。

Builder 的目标是使数据分析师和商业智能开发人员能够使用熟悉的SQL分析工具使用 FHIR,而无需学习新的查询语法。 FHIR 数据以复杂的有向图编码,无法使用标准 SQL 语法进行查询。基于图的查询语言 FHIRPath 旨在查询 FHIR 数据,但它是非关系型的。 Builder 使数据管理员能够使用表、列和索引创建其 FHIR 存储库的自定义 SQL 来投射,使数据分析师能够查询 FHIR 数据,而无需学习 FHIRPath 或 FHIR 搜索语法的复杂性。
存储库将加载 FHIR 资源,您所需要做的就是配置 FHIR SQL BUILDER。
对于配置,导航到http://localhost:55037/csp/fhirsql/index.

0
0 287
文章 姚 鑫 · 七月 30, 2023 3m read

第七章 HL7 架构和可用工具 - 使用 HL7 消息查看器页面

使用 HL7 消息查看器页面

HL7 提供了消息查看器页面。可以使用此页面显示、转换和导出 HL7 消息(外部文件或来自生产消息存档的消息)。

要访问此页面,请选择互操作性 > 互操作 > HL7 v2.x > HL7 v2.x 消息查看器。

选择选项

要指定要显示的文档:

  1. 对于文档源,选择文件、消息标头 ID 或消息正文 ID
  2. 指定要显示的文档:
    • 如果选择“文件”,请使用“浏览”选择文件。对于文件中的文档编号,输入要显示的文档编号。
    • 如果选择了“消息标头 ID”或“消息正文 ID”,请键入要显示的消息标头或消息正文的 ID
  3. 指定如何解析文档。为此,请为文档结构或架构选择以下选项之一:
    • 由业务服务接收 — 使用由业务服务分配的架构。如果选择此选项,请从下拉列表中选择业务服务。 此选项使能够确定特定业务服务将此文档分配到的 DocType
    • 使用特定架构类别/版本 - 从下拉列表中选择文档类别。
    • 使用特定的 DocType — 以类别:结构格式输入文档结构 (<MessageStructure>) 的名称。解析器使用此文档结构。
    • 使用内容声明的版本:名称 — 使用与文档中声明的文档类型关联的文档结构。
    • 使用对象存储的 DocType — 使用文档正文对象中声明的 DocType
0
0 256
文章 姚 鑫 · 七月 27, 2023 3m read

第四章 HL7 架构和可用工具 - 查看数据结构

查看数据结构

当单击“数据结构”列中的名称时,InterSystems 会显示该数据结构中的所有字段。这是 HL7 数据结构页面。显示的以下列是最有用的:

  • 组件列列出了可用于访问段内字段的数字。
  • 属性名称列列出了可用于访问段内字段的名称。
  • 单击“数据结构”列中的条目可深入了解详细信息。
  • 单击“代码表”列(如果有)中的条目可查看可在此字段中输入的有效代码。

当单击上面段结构页面中名为 2.3:XCN 的数据结构项时,将出现以下示例页面。该页面指出类别 2.3 数据结构 XCN 描述“扩展复合 ID 号和名称”并由 14 个字段组成。其中,有些是简单值,有些是数据结构,有些是代码。

有了这些信息,就可以为消息结构 2.3:ADT_A01 中的复杂 PR1grp().PR1:Surgeon 字段创建虚拟属性路径,如下所示:

PR1grp().PR1:Surgeon.familyname
PR1grp().PR1:Surgeon.degree

查看代码表

当单击“代码表”列中的名称时,它会列出并解释该字段的有效代码。这是 HL7 代码表页面。当单击上一节中显示的数据结构页面中名为 2.3:200 的代码表项时,将出现以下示例页面。

上面的示例示出类别2.3代码表200描述可以具有值LOMACD的“名称类型”。

0
0 161
文章 姚 鑫 · 七月 26, 2023 3m read

第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面

使用 HL7 架构结构页面

通过 HL7 架构页面,可以导入和查看 HL7 版本 2 架构规范。要显示此页面,请从主页中选择互操作性 > 互操作 > HL7 v2.x > HL7 v2.x 架构结构。有关使用此页面的一般信息,请参阅在产品中使用虚拟文档中的“使用架构结构页面”。

HL7 模式页面提供了一个附加选项卡:消息类型。此选项卡将两个消息结构标识为请求/响应对。

查看文档类型列表

要列出某个类别中的所有文档类型结构,请首先选择该类别,然后单击“DocType 结构”选项卡。

查看消息结构

要查看消息结构的内部组织,请从 HL7 架构页面上的 DocType 结构选项卡单击其名称(选择互操作性 > 互操作 > HL7 v2.x > HL7 v2.x 架构结构)。 InterSystems 产品使用以下视觉提示和命名约定在“结构”部分中显示消息的段结构。

  • 组成消息结构的段按从上到下的顺序列出。
  • 段名称必须全部大写。
  • 显示每个消息段的三个字母名称:MSHNTEPID 等。该名称指示 HL7 消息结构中该位置存在的段类型。包含选项、重复或包含一组其他段的段的名称会在名称中附加特殊字符。
  • 绿色虚线包围可选的段、组或字段。
  • 可以重复的段在段名称后附加了括号。例如,如果PID段可以重复,则出现PID()
0
0 145
文章 姚 鑫 · 七月 25, 2023 3m read

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

HL7 模式和消息概述

InterSystems 产品可以处理和传递 HL7 消息,而无需使用架构来解析它,但将架构与消息关联允许执行以下操作:

  • 解析消息并访问以下字段值:
    • 数据转换
    • 路由规则
    • 自定义 ObjectScript 代码
  • 验证消息是否符合架构。

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

为了解析 HL7 消息,需要两条信息:

  • 架构类别 — 这是 HL7 版本号,例如 2.3.12.7,或者它可能是 InterSystems 产品中定义的自定义架构的类别。production 从业务服务消息模式类别设置或从数据转换设置获取模式类别。尽管 HL7 消息在 MSHVersionID 字段中包含模式版本号 (MSH:12),但 InterSystems 不使用此值,因为许多应用程序并未一致地设置此字段。
  • 结构类型 - productionMSH:9 字段获取消息类型,然后检查架构定义以获取该消息的结构类型。
1
0 186
文章 Nicky Zhu · 四月 27, 2021 6m read

根据IDC的报道,超过80%的信息是基于NoSQL的,尤其是文本文件。当数字服务或应用程序不能处理所有这些信息时,企业就会遭受损失。为了面对这一挑战,可以使用OCR技术。OCR使用机器学习和/或训练的图像模式将图像像素转化为文本。这一点很重要,因为许多文件被扫描成PDF格式的图像,或者许多文件中包含有文本的图像。因此,OCR是一个重要的步骤,可以从文件中获得所有可能的数据。

为了实现OCR,可以使用开源解决方案Google Tesseract,这是Python和Java社区中最流行的解决方案。Tesseract支持100多个习语,并且可以用新的模型进行训练以识别车牌、验证码等等。Tesseract是在C++中创建的,可以通过Java套用Tess4J构成一个中介层来使用它。下面的代码展示了调用过程。

 

private String extractTextFromImage(File tempFilethrows TesseractException {


 

        ITesseract tesseract = new Tesseract();

        tesseract.setDatapath("/usr/share/tessdata/"); //directory to trained models

        tesseract.
2
0 502
文章 姚 鑫 · 七月 23, 2023 3m read

第六十七章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期 - BO和适配器的生命周期

BO和适配器的生命周期

IRIS 自动管理每个业务操作的生命周期。

Production Startup

Production生产(或更改特定业务操作的配置)时, IRIS 自动为每个配置的业务操作类(即,为Production定义中列出的每个业务操作)执行以下任务:

  1. 它调用类的 OnProductionStart() 回调方法(如果已定义)。

OnProductionStart() 方法是一种类方法,它为Production配置中列出的每个业务操作类调用一次。业务操作类可以使用此回调来执行它可能需要的任何类范围的初始化。

  1. 它创建一个或多个后台进程来执行业务操作。

后台进程的数量由Production配置中业务操作的 PoolSize 属性决定。每个后台进程都称为业务操作的实例,并包含业务操作对象的实例。

如果满足以下条件, IRIS 只会为业务操作创建后台进程:

  • 业务操作类必须将其INVOCATION类参数设置为Queue
  • Production配置中业务操作的 Enabled 属性必须设置为 1(否则业务操作被视为已禁用)。已禁用的业务操作仍具有传入消息队列。在启用业务操作之前,不会处理发布到此队列的任何请求。
0
0 147
文章 姚 鑫 · 七月 22, 2023 3m read

第六十六章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期 - 业务流程的生命周期

业务流程的生命周期

每次Production启动时, IRIS都会为Production创建公共参与者池。ActorPoolSize设置的值确定池中的作业数。

在执行元池中的每个作业中,都有一个Ens.ActorEns.在一个对象中,该对象负责管理业务流程对其作业的使用。在一个Ens.Actor时称为执行元。

Production中的业务流程可以共享名为 Ens.Actor 的公共消息队列。此公共队列是发送到生产中没有自己的专用队列的任何业务流程的所有消息的目标。只要 Actor 有空托管业务流程,它们就会监听 Ens.Actor 队列。当请求到达 Ens.Actor 队列时,任何空闲的参与者都可以分配其作业来托管请求中指定的业务流程。 Ens.Actor 队列上的请求按照接收顺序进行处理。每个连续的请求都由下一个可用的参与者持续声明。

与业务服务和业务操作的生命周期不同,业务流程的OnInitOnTearDown 方法不会在业务流程启动或停止时被调用。相反,每次业务流程(InProcQueued)处理请求时都会执行这些方法。

0
0 118
文章 姚 鑫 · 七月 21, 2023 3m read

第六十五章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期 - Runtime

Runtime

Production运行时,业务服务会重复调用入站适配器的 OnTask() 方法。此 OnTask 循环由业务服务的 CallInterval 设置和 %WaitForNextCallInterval 属性控制,如下所示:

  1. 业务服务调用入站适配器的 OnTask() 方法。
  2. OnTask()IRIS 生产外部检查业务服务感兴趣的输入事件:
  • 如果找到输入,OnTask() 将调用关联业务服务对象的 ProcessInput() 方法。
  • 如果未找到输入,OnTask() 将控制权返回给业务服务,业务服务等待下一个 CallInterval 过去,然后返回到步骤 1
  • 可能存在多个输入事件。例如,如果业务服务使用File.InboundAdapter,则可能有多个文件在指定目录中等待。

如果有多个输入事件:

  • 通常,OnTask() 方法会根据需要多次调用 ProcessInput() 来处理所有可用的输入事件,直到找不到更多输入事件为止。
  • 或者,入站适配器可以限制 OnTask() 在每个 CallInterval 中仅调用一次 ProcessInput(),即使存在多个输入事件也是如此。
0
0 125
文章 姚 鑫 · 七月 20, 2023 3m read

第六十四章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期

此页面描述了Production及其组成部分的生命周期,以供参考。

Production的生命周期

Production启动

Production开始时,动作顺序如下:

  1. Production类被实例化;其可选的 OnStart() 方法执行。
  2. Production实例化每个业务操作并执行其可选的 OnProductionStart() 方法。
  3. Production实例化每个业务流程并执行其可选的 OnProductionStart() 方法。
  4. Production会清除上一次运行遗留的任何指标值的业务指标缓存。
  5. Production实例化每个业务服务并执行其可选的 OnProductionStart() 方法。
  6. Production过程处理已放入队列中的所有项目。这包括Production停止时排队的异步消息。
  7. Production现在接受来自外部 IRIS 的输入。

Production Shutdown

Production停止时,操作顺序如下:

  1. Production使每个业务服务脱机并执行其可选的 OnProductionStop() 方法。此操作会停止来自 IRIS 外部的所有请求。
  2. 所有业务主机都会收到进入静止状态的信号。
0
0 101
文章 姚 鑫 · 七月 19, 2023 2m read

第六十三章 开发Productions - ObjectScript Productions - 部署Production - 在目标系统上部署Production

管理门户自动执行将Productions从开发系统部署到实时系统的过程。本节介绍当在实时系统上加载Productions的新版本时,IRIS 会执行哪些操作。

获得部署包 XML 文件后,可以将其加载到目标系统上。在管理门户中,选择正确的命名空间并单击互操作性、管理、部署更改、部署,然后单击打开部署或打开本地部署按钮,具体取决于 XML 部署包位于服务器上还是本地计算机上。如果位于服务器计算机上,则“打开本地部署”按钮不处于活动状态。选择 XML 部署包文件后,表单会列出部署包中的新项和更改项,显示创建包时指定的部署说明,并允许指定以下部署设置:

  • 目标Production —指定将添加组件的Production。如果部署包包含来自源ProductionProduction类,则目标Production将设置为源Production且无法更改。否则, IRIS 将默认Production设置为当前打开的Production,但允许更改它。
  • 回滚文件—指定包含回滚信息的文件。回滚文件包含由部署替换的所有组件的当前定义。
  • 部署日志文件—包含由部署引起的更改的日志。
0
0 163
文章 Kelly Huang · 七月 19, 2023 8m read

在之前的文章中,我们已经了解了如何配置和自定义我们的 EMPI,我们已经了解了如何通过 HL7 消息传递将新患者纳入我们的系统中,但当然,并不是所有的东西都是 HL7 v.2!我们如何配置 EMPI 实例以使用 FHIR 消息传递?

什么是FHIR?

对于那些不太熟悉 FHIR 这个术语的人,只需指出它们是Fast Healthcare Interoperability Resource的首字母缩写即可。 FHIR是HL7制定的医疗保健互操作性标准,基于JSON格式和REST通信,建立了一系列不同类型信息(患者数据、医院中心、诊断、医疗预约......)的“资源”。您可以在他们的官方页面上查看所有这些资源

InterSystems 和 FHIR

从 InterSystems 中,我们了解到 FHIR 为医疗保健互操作性领域提供的实用程序,因此我们拥有广泛的产品和功能,使我们能够充分利用并发挥其全部潜力:

好吧,在我们的文章中,我们将利用适配器提供的功能来接收

0
0 211
文章 姚 鑫 · 七月 18, 2023 4m read

第六十二章 开发Productions - ObjectScript Productions - 部署Production - 导出Production

导出Production

要使用管理门户导出ProductionXML,请打开Production,单击Production设置和操作选项卡,然后单击导出按钮。 IRIS 选择所有业务服务、业务流程、业务操作和一些相关类,然后显示以下表单以允许添加导出注释和其他组件。

还可以导出业务服务、流程或操作,方法是在Productions配置中选择组件,然后单击“操作”选项卡上的“导出”按钮。在这两种情况下,都可以通过单击其中一个按钮并选择一个组件来将其他组件添加到包中。以通过清除该复选框来从包中删除组件。

可以使用导出注释来描述部署包中的内容。例如,可以描述完整的Productions是否位于作为Productions更新的包或组件集中。当使用管理门户将包部署到目标系统时,会显示导出注释。

当导出部署包时,应该做出的第一个决定是目标系统是否具有旧版本的Productions

如果将Productions部署为新安装,应该:

  • 包括Production类的定义。
  • 包括Production设置。
  • 包括Production中使用的所有组件的定义。
  • 排除每个组件的Production设置(ptd 文件)。这将重复Production类中的定义。
0
0 151
文章 姚 鑫 · 七月 17, 2023 3m read

第六十一章 开发Productions - ObjectScript Productions - 部署Production

部署Production

通常,在开发系统上开发Production,然后在测试部署上完成并测试生产后,将其部署在实时生产系统上。本页介绍如何使用管理门户打包开发系统中的部署,然后将其部署到另一个系统上。它还描述了如何开发和测试对生产的更改,然后将这些更新部署到使用实时业务数据运行的系统。

部署Production概述

可以使用管理门户或 IDE 来部署Production。管理门户会自动执行一些需要使用 IDE 手动执行的步骤。如果有正在使用的实时Production,并且正在开发该Production的更新,则需要确保在不中断业务数据处理的情况下更新实时Production。在最简单的层面上,部署Production是通过从一个系统导出ProductionXML 定义并在目标系统上导入和编译 XML 来完成的。从开发到上线系统的成功部署最重要的问题是:

  • 确保 XML 部署文件具有所有必需的组件。
  • 在将部署文件部署到实时系统之前,先在测试系统上测试部署文件。
  • 确保部署文件加载到目标系统上而不中断实时Production

通常,将Production部署到实时系统是一个迭代过程,包括以下步骤:

  1. 从开发系统导出Production
  2. 在测试系统上部署部署文件。
0
0 107
文章 Lilian Huang · 七月 9, 2023 7m read

您好!社区的各位老师,

在本文中,我们将学习以下主题:


  1. 什么是 Docker?

  2. Docker 的一些好处

  3. Docker 是如何工作的?

  4. Docker 镜像

  5. Docker容器

  6. Docker 镜像存储库

  7. InterSystems 的 Docker 镜像存储库

  8. Docker安装

  9. Docker 基本命令

  10. 使用 docker 运行 IRIS 社区版

  11. Docker 桌面图形用户界面

那么让我们开始吧。


1.什么是Docker?

Docker 初学者指南 — 如何创建您的第一个 Docker 应用程序
Docker 是一种虚拟化软件,可以让应用程序的开发和部署变得非常简单。 Docker 通过将应用程序打包到所谓的容器中来实现此目的,该容器保留应用程序运行所需的所有内容,包括应用程序的实际代码、其库和依赖项、运行时和环境配置。

Docker 是一个容器化平台,允许开发人员在容器化环境中创建、部署和运行应用程序。 Docker 提供了一种将应用程序及其依赖项打包到单个容器中的方法,该容器可以在任何支持 Docker 的计算机上运行。这使得创建可快速、轻松部署的可移植、轻量级应用程序变得容易。


2. Docker 的一些好处

您可以在下面找到使用 Docker 的一些好处:

  • 可移植性Docker 容器可以在任何支持 Docker 的机器上运行,从而可以轻松地跨不同环境部署应用程序。
2
0 234
文章 姚 鑫 · 七月 16, 2023 13m read

一篇文章了解IRIS/Caché编码方案

一直以来,编码问题像幽灵一般,不少开发人员都受过它的困扰。

试想你请求一个数据,却得到一堆乱码,丈二和尚摸不着头脑。有同事质疑你的数据是乱码,虽然你很确定传了UTF-8 ,却也无法自证清白,更别说帮同事 debug 了。

有时,靠着百度和一手瞎调的手艺,乱码也能解决。尽管如此,还是很羡慕那些骨灰级程序员。为什么他们每次都能犀利地指出问题,并快速修复呢?原因在于,他们早就把编码问题背后的各种来龙去脉搞清楚了。

ASCII

标准ASCII 码,使用7 位二进制数(最高位为0)来表示所有的大写和小写字母,数字09、半角标点符号,以及在英语中使用的特殊控制符号。

最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母a的编码是97,小写字母z的编码是122

IRIS/Caché中获取字符ASCII码与二进制字符串,如下代码示例:

USER>w $a("a")
97
USER>w ##class(M.Code).LogicalToDisplay(97)
10000110

经过如下二进制转十进制计算可得出 1+32+64 = 97

2**0 + 2**5 + 2**6 = 97

Unicode

GB2312GBKGB18030 都是中文编码字符集。

0
0 552
文章 姚 鑫 · 七月 16, 2023 2m read

第六十章 开发Productions - ObjectScript Productions - 从管理门户进行测试 - 调试Production代码

调试Production代码

调试的第一步是启用跟踪,如监控生产中所述。如果这没有揭示问题,可以使用调试器单步调试代码,如下所示:

  1. IDE 中编辑代码以在要开始调试的位置插入 BREAK 命令。
  2. 为使用要调试的类的业务主机启用前台设置。
  3. 开始Production。在步骤 2 中标记的作业在终端的前台运行。
  4. 当到达该 BREAK 命令时,终端将进入调试模式,可以单步调试代码。

启用 %ETN 日志记录

事件日志自动包含有关系统级异常(包括代码中的异常)的部分信息。默认情况下,这些事件日志条目的结尾如下:

-- logged as '-' number - @' quit arg1/arg2 }'

要获得有关此类错误的更完整信息:

  1. 将 ^Ens.Debug("LogETN") 全局节点设置为任意值。

这会导致 IRIS 记录系统级异常的附加详细信息。

  1. 重新运行认为导致异常的代码(例如,重新发送消息)。
0
0 76
文章 姚 鑫 · 七月 15, 2023 3m read

第五十九章 开发Productions - ObjectScript Productions - 测试和调试Production - 从管理门户进行测试

从管理门户进行测试

可以使用管理门户在开发、测试和调试Production时执行多项任务:

  • 能够查看和修改系统配置。
  • 能够启动和停止Production
  • 能够查看队列及其内容;消息及其详细信息;适配器和参与者及其状态;业务流程及其状态;配置项的代码和图形表示。
  • 能够查看、排序和有选择地清除事件日志条目。
  • 能够暂停(并稍后重新发送)连接暂时被阻止的消息。
  • 能够使用图形用户界面或通过输入 SQL SELECT 命令,按类别或消息内容过滤和搜索消息仓库中的特定消息。
  • 能够使用图形用户界面直观地跟踪消息活动。
  • 能够创建和查看统计报告。

对于开发人员来说,最有用的门户功能是不断收集运行时数据的监视服务、可用于向正在开发的产品发出模拟请求的测试服务以及记录业务主机发出的状态消息的事件日志。同时使用这些功能来生成测试数据并研究结果。

管理门户具有测试菜单,可以在其中测试业务主机和数据转换。它包含以下项目:

  • 业务主机-互操作性>测试>业务主机页面允许测试业务流程和业务操作。
  • 数据转换-此选项将带到另一个页面,可以在其中选择数据转换并单击测试。

使用测试服务

测试服务允许测试活动命名空间中正在运行的Production的业务流程或业务操作。

0
0 112
文章 姚 鑫 · 七月 14, 2023 2m read

第五十八章 开发Productions - ObjectScript Productions - 测试和调试Production

本主题介绍可用于测试和调试产品的工具。该信息对于故障排除和调整企业已在使用的Production软件也很有用。

纠正Production问题状态

如果Production暂停或出现问题,请阅读本节。

暂停Production

Production在队列中的所有异步消息可以被处理之前停止时,就会发生暂停Production。如果不手动清除这些异步消息,它们会在Production开始备份时自动处理。如果希望处理消息,则在开始暂停Production之前不需要其他步骤。

恢复陷入困境的Production

如果 IRIS 停止但Production没有正常关闭,Production将获得故障状态。如果在没有先停止Production的情况下重新启动 IRIS 或重新启动机器,就会发生这种情况。

在这种情况下,“恢复”命令将显示在“Production配置”页面上。单击“恢复”关闭并清理有问题的Production实例,以便可以在准备好时运行新实例。

或者可能需要使用命令行来恢复Production。请参阅使用 Ens.Director 启动和停止Production

0
0 93
文章 姚 鑫 · 七月 13, 2023 3m read

第五十七章 开发Productions - ObjectScript Productions - 不常见的任务 - 以编程方式使用查找表

IRIS 提供了名为 Lookup() 的实用函数,以便可以轻松地从业务规则或 DTL 数据转换中执行表查找。此功能仅在创建至少一个查找表并用适当的数据填充后才起作用。

有关定义查找表的信息,请参阅配置产品中的定义数据查找表。

如果需要比管理门户提供的更直接的查找表操作,请在类中使用 Ens.Util.LookupTable。此类公开查找表以通过对象或 SQL 进行访问。此外,它还提供类方法来清除表、将数据导出为 XML 以及从 XML 导入数据。

Ens.Util.LookupTable提供以下字符串属性:

TableName

查找表的名称,最多 255 个字符。可以通过在 IRIS 门户中选择“互操作性”、“配置”和“数据查找表”,然后选择“打开”来查看命名空间中定义的查找表。

KeyName

查找表中条目的键,最多 255 个字符。这是互操作性 > 配置 > 数据查找表页面上键字段的值。

DataValue

查找表中与此键关联的值,最多 32000 个字符。这是互操作性 > 配置 > 数据查找表页面上的值字段中的值。

示例 SQL 查询是:

SELECT KeyName,DataValue FROM Ens_Util.
0
0 86