文章 姚 鑫 · 五月 27, 2021 阅读大约需 5 分钟 第八章 处理收到的电子邮件 第八章 处理收到的电子邮件 处理收到的电子邮件 本节介绍如何处理通过%Net.POP3检索到的电子邮件(%Net.MailMessage)。 Message Basics 检索电子邮件(%Net.MailMessage)后,通常首先确定它是哪种类型的邮件以及如何阅读它;也就是说,它是否是多部分邮件以及各部分是否是二进制的。在此步骤中,您可以使用ContentType属性。或者,可以使用IsBinary、IsHTML和IsMultiPart属性,它们间接提供与contentType相同的信息。 如果消息是多部分消息,则每个部分都是%Net.MailMessagePart的一个实例。 Message Headers 消息本身和消息的每个部分都有一组标头。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 94
文章 姚 鑫 · 五月 26, 2021 阅读大约需 6 分钟 第七章 从POP3服务器提取电子邮件 第七章 从POP3服务器提取电子邮件 将附件另存为文件 Content-Disposition标头可以指定附件,可以带文件名,也可以不带文件名。例如: Content-Disposition: attachment; filename=genome.jpeg; 如果Content-Disposition标头确实指定了附件,则%Net.POP3实例可以将邮件中的所有附件保存到文件。要实现这一点,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 88
文章 姚 鑫 · 五月 25, 2021 阅读大约需 7 分钟 第六章 从POP3服务器提取电子邮件 第六章 从POP3服务器提取电子邮件 从POP3服务器提取电子邮件 与POP3服务器通信 如果拥有所需的权限,并且邮件服务器正在运行,则可以使用POP3协议从该服务器下载和处理电子邮件。通常,要与POP3服务器通信,请登录,执行一系列影响邮箱的操作,然后提交或回滚任何更改。要在系统间IRIS中执行此操作,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 89
文章 Michael Lei · 五月 24, 2021 阅读大约需 1 分钟 大数据平台的五个等级 作为一个软件架构师,如果要设计一个企业级的架构来满足当前的业务需求时,你需要达到5级的水平,这是一个巨大的挑战。有了InterSystems IRIS。这是有可能的。通过1个产品,你可以得到SQL + NoSQL + ESB + BI + Open Analytics + Real Time Virtual cubes + NLP + AutoML + ML(使用Python)和高级云支持 + Sharding支持。 #InterSystems 业务解决方案和架构 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 143
文章 姚 鑫 · 五月 24, 2021 阅读大约需 7 分钟 第五章 向邮件添加附件 第五章 向邮件添加附件 向邮件添加附件 可以将附件添加到电子邮件或消息部分(具体地说,是添加到%Net.MailMessagePart或%Net.MailMessage的实例)。要执行此操作,请使用以下方法: 这些方法中的每一种都会将附件添加到原始邮件(或邮件部分)的Parts数组中,并自动将IsMultiPart属性设置为1。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 70
文章 Michael Lei · 五月 24, 2021 阅读大约需 3 分钟 将 pButtons 数据提取到 csv 文件以便绘制图表 本帖的目的是回答一个问题。 在本系列的第二篇帖子中,我包括了从 pButtons 提取的性能数据的图表。 有人在线下问我,有没有比剪切/粘贴更快的方法从 pButtons .html文件中提取 mgstat 等指标,以便在 Excel 中绘图。 参见:- 第 2 部分 - 研究收集的指标 pButtons 将其收集的数据编译成一个 html 文件,以便发送给 WRC 和查看整理的数据。 不过,尤其是对于长时间(如 24 小时)进行收集的 pButtons 来说,一些基于时间的数据(如 mgstat、vmstat 等)以图形方式查看更容易查找趋势或模式。 #CSV #性能 #系统管理 #InterSystems IRIS 0 0 0 103
文章 Michael Lei · 五月 24, 2021 阅读大约需 2 分钟 InterSystems 最佳实践系列之数据平台和性能 - 第 6 部分 Caché 存储 IO 配置文件 我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。 原始表格由 Mark Bolinsky 创建。 在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。 #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 123
文章 Michael Lei · 五月 24, 2021 阅读大约需 2 分钟 InterSystems 数据平台和性能 – 如何更新 pButtons 。之前我展示了如何运行 pButtons 来收集我们在下列帖子中研究的性能指标。 第 1 部分 - 入门:收集指标。 第 2 部分 - 研究收集的指标。 更新:2020 年 5 月。 #InterSystems 业务解决方案和架构 #性能 #系统管理 #文档 0 0 0 121
文章 Michael Lei · 五月 24, 2021 阅读大约需 7 分钟 InterSystems 数据平台和性能 – 第 1 篇 您的应用程序已部署,一切运行正常。 很好,击个掌! 然后电话突然响个不停 – 用户投诉应用程序有时很“慢”。 这是什么意思? 有时? 您有哪些工具,查找和解决这个缓慢问题应查看哪些统计数据? 您的系统基础架构是否能承担用户负载的任务? 在投入生产之前,应该询问哪些基础架构设计问题? 如何自信地为新硬件规划容量,而不会过度规定? 如何停止电话铃声? 如何一开始就不让它响? #InterSystems 业务解决方案和架构 #性能 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 182
文章 姚 鑫 · 五月 23, 2021 阅读大约需 7 分钟 第四章 收发电子邮件 第四章 收发电子邮件 本主题描述如何使用InterSystems IRIS发送和接收MIME电子邮件消息。 注意:本主题中的示例是经过组织的,因此管理电子邮件的方法可以用于不同的电子邮件服务器,这在测试和演示期间非常有用。这不一定是最适合生产需要的代码组织。 支持电子邮件协议 电子邮件使用标准协议通过Internet发送消息。 InterSystems IRIS支持以下三种协议: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 69
文章 姚 鑫 · 五月 23, 2021 阅读大约需 6 分钟 第三章 发送HTTP请求 第三章 发送HTTP请求 发送HTTP请求 创建HTTP请求后,使用以下方法之一发送该请求: Delete() method Delete(location As %String = "", test As %Integer = 0, reset As %Boolean = 1) as %Status 发出HTTP DELETE请求。 Get() method Get(location As %String = "", test As %Integer = 0, reset As %Boolean = 1) as %Status 发出HTTP GET请求。此方法使Web服务器返回请求的页面。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 109
文章 姚 鑫 · 五月 21, 2021 阅读大约需 6 分钟 第二章 设置和获取HTTP标头 第二章 设置和获取HTTP标头 设置和获取HTTP标头 可以设置和获取HTTP标头的值。 %Net.HttpRequest的以下每个属性都包含具有相应名称的HTTP标头的值。如果不设置这些属性,则会自动计算它们: #.NET #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 168
文章 Nicky Zhu · 五月 20, 2021 阅读大约需 7 分钟 互操作消息统一管理系列:SearchTable加速检索 在上一篇文章《互操作消息统一管理系列:Message Bank》中,我们了解到在Message Bank中,消息均以半结构化(XML)或非结构化(Stream)的形式保存,因此无法与客户端的结构化消息一样,直接支持基于索引的检索。为此,需要在Message Bank中定义Search Table以支持查询。关于Search Table的定义和作用,请查阅https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.UI...。 #API #InterSystems 业务解决方案和架构 #互操作性 #企业消息库 #消息搜索 #监视 #系统管理 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 149
文章 Nicky Zhu · 五月 20, 2021 阅读大约需 7 分钟 互操作消息统一管理系列:MessageBank 一. 企业信息库简介 企业信息库(MessageBank)是一个可选的远程归档设施,可以从多个来自不同实例的互操作性Production中收集信息、事件日志项目和搜索表项。如下图所示: 这套环境由两种角色的实例构成: 企业信息库服务器,它本身也是一个Production,完全由Message Bank服务组成,接收来自任何数量的客户Production提交的消息、日志等。 客户端Operation(Message Bank Operation),将其添加到一个正在运行的Production中,并用企业信息库服务器的地址进行配置。如连接通畅,消息和日志即可自动转发到Message Bank并在其中存储。 为了使你能方便地看到信息库中的信息,InterSystems IRIS®提供了以下附加选项。 对于企业信息库实例,管理门户自动包括企业监控器页面,在那里你可以监控客户端Production的状态,浏览消息库,并对被监控客户的消息进行检索。 对于每个客户端实例,你在消息库实例中配置一个到企业监控器的链接。 #API #InterSystems 业务解决方案和架构 #消息搜索 #监视 #互操作性 #企业消息库 #系统管理 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 182
文章 姚 鑫 · 五月 19, 2021 阅读大约需 2 分钟 IRIS 单元测试 IRIS 单元测试 第一章 单元测试概述☆☆☆☆ 第二章 使用%UnitTest进行单元测试☆☆☆☆ 第三章 执行测试☆☆☆ 第四章 使用Setup和tear Down方法执行测试☆☆☆ 前言 #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 113
文章 Michael Lei · 五月 18, 2021 阅读大约需 2 分钟 来自英文社区:IRIS与Caché/Ensemble之间的ECP 那些已经与ECP合作过的人可能知道它不仅在操作系统,处理器技术(big-little-endian),但在C / E的各个版本中也有限制。此交叉版本功能还包括IRIS(针对2020.1进行了验证)和C / E(2018.3) #ECP #Globals #应用程序服务器 #Caché #Ensemble #InterSystems IRIS 0 0 0 119
文章 姚 鑫 · 五月 18, 2021 阅读大约需 6 分钟 第四章 使用Setup和tear Down方法执行测试 第四章 使用Setup和tear Down方法执行测试 示例:使用Setup和tear Down方法执行测试 以通常的方式执行新的单元测试。 #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 53
文章 Michael Lei · 五月 17, 2021 阅读大约需 2 分钟 iris-fhir-portal 概述 我创建了 iris-fhir-portal 来参加当前竞赛 InterSystems IRIS for Health FHIR,本篇快速概述旨在介绍我的应用程序提供的功能。 iris-fhir-portal 的目标是说明使用 IRIS for Health 中的 FHIR 功能创建患者图表并让用户拥有自己的数据有多么简单。 #FHIR #InterSystems IRIS for Health #Open Exchange Open Exchange app 0 0 0 94
文章 姚 鑫 · 五月 17, 2021 阅读大约需 5 分钟 第三章 执行测试 第三章 执行测试 示例:执行测试 现在使用%UnitTest.Manager.RunTest执行单元测试。以下是方法: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 80
文章 Michael Lei · 五月 16, 2021 阅读大约需 8 分钟 将普通 ObjectScript 持久化类暴露为 FHIR 代码系统和值集 FHIR 术语服务规范描述了一组对 CodeSystem、ValueSet 和 ConceptMap 资源的操作。 在这些操作中,以下四种操作似乎是最为广泛采用的: CodeSystem ValueSet $lookup$validate-code $expand$validate-code 开发该规范的部分实现一直是探索 IRIS for Health 2020.1 中引入的全新 FHIR 框架的有效途径。 本实现包括上述四种操作,并支持与 CodeSystem 和 ValueSet 资源的读取和搜索交互。 需要注意的是,本实现使用普通 ObjectScript 持久化类作为源术语表。 #FHIR #ObjectScript #InterSystems IRIS for Health Open Exchange app 0 0 0 169
文章 姚 鑫 · 五月 16, 2021 阅读大约需 6 分钟 第二章 使用%UnitTest进行单元测试 第二章 使用%UnitTest进行单元测试 本教程的第二部分介绍了如何使用%UnitTest包对InterSystems IRIS代码进行单元测试。完成本教程的这一部分后,将能够: 解释%UnitTest包中三个主要类的角色。 列出基于%UnitTest包的单元测试类和方法的要求。 创建并执行方法的单元测试。 浏览%UnitTest.Manager创建的测试报告。 执行单元测试时,使用%UnitTest.TestCase方法初始化和还原数据库数据。 什么是%UnitTest? %UnitTest包是一组为IRIS提供测试框架的类。在结构上,它类似于xUnit测试框架。%UnitTest为创建和执行以下各项的单元测试提供类和工具: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 76
文章 姚 鑫 · 五月 15, 2021 阅读大约需 4 分钟 第一章 单元测试概述 第一章 单元测试概述 本教程的第一部分概述了单元测试。完成本教程的这一部分后,将能够: - 定义单元测试并区分单元测试和集成测试 - 列出单元测试的几个好处 - 描述InterSystems IRIS %UnitTest包和xUnit测试框架之间的相似性。 - 列出软件开发中测试优先方法经常声称的几个好处。 什么是单元测试? 单元测试是对单个代码模块的正确性的测试,例如,方法或类的测试。通常,开发人员在开发代码时为其代码创建单元测试。典型的单元测试是一种执行方法的方法,该方法测试并验证该方法是否为给定的一组输入生成了正确的输出。 单元测试不同于集成测试。集成测试验证了一组代码模块交互的正确性。单元测试仅单独验证代码模块的正确性。一组代码模块的集成测试可能会失败,即使每个模块都通过了单元测试。 为什么要进行单元测试? 单元测试提供了许多好处,包括: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 55
文章 姚 鑫 · 五月 14, 2021 阅读大约需 2 分钟 Caché Global Caché Global 第一章 简介global☆☆☆☆☆ 第二章 全局变量结构(一)☆☆☆☆☆ 第二章 全局变量结构(二)☆☆☆☆☆ 第三章 使用多维存储(全局变量)(一)☆☆☆☆☆ 第三章 使用多维存储(全局变量)(二)☆☆☆☆☆ #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 167
文章 姚 鑫 · 五月 14, 2021 阅读大约需 3 分钟 第六章 临时全局变量和IRISTEMP数据库 第六章 临时全局变量和IRISTEMP数据库 对于某些操作,可能需要全局变量的功能,而不需要无限期保存数据。例如,可能希望使用全局对某些不需要存储到磁盘的数据进行排序。对于这些操作,InterSystems IRIS提供了临时全局机制。该机制的工作方式如下: 对于应用程序名称空间,可以定义一个全局映射,以便将具有特定命名约定的全局变量映射到IRISTEMP数据库,该数据库是一个特殊的数据库,如下所述。 例如,可以定义一个全局映射,以便将名称为^AcmeTemp*的所有全局变量映射到IRISTEMP数据库。 - 当代码需要临时存储数据并再次读取它时,代码将向使用该命名约定的全局变量写入数据,并从全局变量读取数据。 例如,要保存值,代码可能会执行以下操作: set ^AcmeTempOrderApp("sortedarray")=some value 然后,稍后代码可能会执行以下操作: #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 75
文章 Michael Lei · 五月 13, 2021 阅读大约需 2 分钟 使用 IRIS 跟踪全球疫苗接种情况 2020 年席卷全球的新冠疫情使每个人都在关注与 COVID-19 有关的新闻和数字。 为什么不趁这个机会去创造一些简单直观的东西,来帮助关注全球的疫苗接种数量呢? 为了应对这一挑战,我使用了 Our World in Data 提供的数据,他们的使命是提供解决全球最大问题所需的研究和数据。 他们在 Github 上有一个专门的 COVID-19 数据仓库,我采用了疫苗接种数据来完善我的跟踪器。 如果你不了解他们,去调查一下吧,这值得你花上一些时间。 Github 仓库 应用程序 iris-vaccine-tracker 有三个不同页面。 主仪表板 数据表,其中包含仪表板中呈现的数据的详细信息。 热图 仪表板 主仪表板提供全球疫苗接种情况的快速概览。 第一个小组件提供以下信息: #API #仪表板 #分析 #竞赛 #InterSystems IRIS Open Exchange app 0 0 0 158
文章 姚 鑫 · 五月 13, 2021 阅读大约需 4 分钟 第五章 管理全局变量(二) 第五章 管理全局变量(二) 在全局变量中查找值 “查找全局变量字符串”页使可以在下标或选定全局变量的值中查找给定的字符串。 要访问和使用此页,请执行以下操作: 显示“全局变量”页。 选择要使用的全局变量。为此,请参阅“全局页简介”一节中的步骤2和3。 单击查找按钮。 对于查找内容,输入要搜索的字符串。 (可选)清除大小写匹配。默认情况下,搜索区分大小写。 单击Find First或Find All。 然后,页面显示选定全局变量中下标或值包含给定字符串的第一个节点或所有节点。该表左侧显示了节点下标,右侧显示了相应的值。 如果使用的是Find First,请根据需要单击Find Next以查看下一个节点。 完成后,单击关闭窗口。 执行批量更换 注意:在进行任何编辑之前,请确保知道IRIS使用哪个全局系统,以及应用程序使用哪个全局系统;参见“一般建议”此选项会永久更改数据。不建议在生产系统中使用。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 59
文章 姚 鑫 · 五月 13, 2021 阅读大约需 4 分钟 第五章 管理全局变量(二) 第五章 管理全局变量(二) 在全局变量中查找值 “查找全局变量字符串”页使可以在下标或选定全局变量的值中查找给定的字符串。 要访问和使用此页,请执行以下操作: 显示“全局变量”页。 选择要使用的全局变量。为此,请参阅“全局页简介”一节中的步骤2和3。 单击查找按钮。 对于查找内容,输入要搜索的字符串。 (可选)清除大小写匹配。默认情况下,搜索区分大小写。 单击Find First或Find All。 然后,页面显示选定全局变量中下标或值包含给定字符串的第一个节点或所有节点。该表左侧显示了节点下标,右侧显示了相应的值。 如果使用的是Find First,请根据需要单击Find Next以查看下一个节点。 完成后,单击关闭窗口。 执行批量更换 注意:在进行任何编辑之前,请确保知道IRIS使用哪个全局系统,以及应用程序使用哪个全局系统;参见“一般建议”此选项会永久更改数据。不建议在生产系统中使用。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 63
文章 Michael Lei · 五月 12, 2021 阅读大约需 28 分钟 通过 ML 与 IntegratedML 运行一些 Covid-19 ICU 预测(第一部分) 关键字:IRIS, IntegratedML, 机器学习, Covid-19, Kaggle 目的 最近,我注意到一个用于预测 Covid-19 患者是否将转入 ICU 的 Kaggle 数据集。 它是一个包含 1925 条病患记录的电子表格,其中有 231 列生命体征和观察结果,最后一列“ICU”为 1(表示是)或 0(表示否)。 任务是根据已知数据预测患者是否将转入 ICU。 这个数据集看起来是所谓的“传统 ML”任务的一个好例子。数据看上去数量合适,质量也相对合适。它可能更适合在 IntegratedML 演示套件上直接应用,那么,基于普通 ML 管道与可能的 IntegratedML 方法进行快速测试,最简单的方法是什么? #AI #IntegratedML #SQL #机器学习 #InterSystems IRIS Open Exchange app 0 0 0 79
文章 Michael Lei · 五月 12, 2021 阅读大约需 16 分钟 InterSystems 最佳实践系列之数据平台和性能 – 第 9 篇 InterSystems IRIS VMware 最佳实践指南 本贴提供了在 VMware ESXi 5.5 及更高版本的环境中部署 Caché 2015 及更高版本时,关于配置、系统规模调整和容量规划等方面的指南。 我假定您已经了解 VMware vSphere 虚拟化平台,所以直接给出推荐。 本指南中的推荐不特定于任何具体硬件或站点特定的实现,也不应作为规划和配置 vSphere 部署的全面指南,而是一份您可以做出选择的最佳实践配置清单。 我希望您的 VMware 专家实施团队能针对具体站点对这些推荐进行评估。 这里是 InterSystems 数据平台和性能系列的其他帖子的列表。 注:本帖更新于 2017 年 1 月 3 日,强调必须为生产数据库实例设置虚拟机内存预留,以保证 Caché 有足够内存可用,并且不会出现内存交换或膨胀而对数据库性能产生负面影响。 更多详细信息,请参见下面的内存部分。 #InterSystems 业务解决方案和架构 #系统管理 #Caché #InterSystems IRIS #InterSystems IRIS for Health #文档 0 0 0 284
文章 Michael Lei · 五月 12, 2021 阅读大约需 17 分钟 InterSystems 最佳实践系列之--数据平台和性能 – 虚拟机备份和 Caché 冻结/解冻脚本 在本帖中,我将展示使用外部备份来备份 Caché 的策略,以及与基于快照的解决方案集成的示例。 如今,大多数解决方案部署在基于 VMware 的 Linux 上,因此许多帖子都以展示解决方案如何集成 VMware 快照技术为例。 Caché 备份 - 包括电池? Caché 安装后即包含 Caché 在线备份,可提供不间断的 Caché 数据库备份。 但随着系统规模的扩大,您应该考虑更高效的备份解决方案。 集成了快照技术的外部备份是推荐的系统(包括 Caché 数据库)备份解决方案。 外部备份有特殊注意事项吗? 外部备份的在线文档包含了全部详细信息。 一个关键考虑事项是: “为确保快照的完整性,Caché 提供了在创建快照时冻结数据库写操作的方法。 在创建快照期间,只冻结对数据库文件的物理写入,从而允许用户进程继续在内存中不间断地执行更新。” #InterSystems 业务解决方案和架构 #备份 #提示和技巧 #系统管理 #部署 #镜像 #Caché #InterSystems IRIS #InterSystems IRIS for Health #文档 0 0 0 518