亲爱的社区开发者们,大家好!
欢迎积极参与新一轮InterSystems开发者竞赛!
🏆InterSystems 编程大赛:人工智能与机器学习 🏆
竞赛时间: 2021年6月28日 - 7月25日
奖金总额: $8,750
亲爱的社区开发者们,大家好!
欢迎积极参与新一轮InterSystems开发者竞赛!
🏆InterSystems 编程大赛:人工智能与机器学习 🏆
竞赛时间: 2021年6月28日 - 7月25日
奖金总额: $8,750
与Windows上默认安装为服务随机自启动不同,我们在Linux上安装完InterSystems IRIS后,默认是没有配置系统服务的,需要做手动配置。本文提供使用systemd方式来配置InterSystems IRIS服务随机自启动的简单示例,供大家参考。
假设我们已经安装了InterSystems IRIS产品,安装完成后您可以通过iris list来来查看实例信息,包括安装路径,如:"/intersystems/iris"
[root@RHEL8-64-001 ~]# iris list
Configuration 'IRIS' (default)
directory: /intersystems/iris
versionid: 2021.2.0L.546.0
datadir: /intersystems/iris
conf file: iris.cpf (SuperServer port = 51773, WebServer = 52773)
status: running, since Mon May 31 05:03:09 2021
state: ok
product: InterSystems IRIS在安装完成后,用以下方式搜索不到iris.
%Library.File(简称%File)为处理文件和目录提供了广泛的API。本文将介绍该API的主要功能。有关属性、方法和查询的规范列表,请参见类参考。
注意:如果指定了部分文件名或目录名,这些方法中的大多数都引用的项相对于包含正在使用的命名空间的默认全局数据库的目录。该目录在本文中称为“默认目录”。这条规则的任何例外都在文章中注明。
此外,仅当基础操作系统将文件名和目录名视为区分大小写时,这些方法才会将文件名或目录名视为区分大小写。也就是说,文件或目录名在Unix上区分大小写,但在Windows上不区分大小写。
FileSet类查询列出目录的内容。此查询按顺序接受以下参数:
directory — 指定要检查的目录的名称。wildcards 通配符 — 指定要匹配的文件名模式(如果有)。sortby 排序依据 — 指定如何对结果进行排序。使用以下值之一:Type 类型—项目类型DateCreated 创建日期—创建文件的日期和时间includedirs —指定如何处理给定目录中的目录。如果此参数为真(1),查询将返回任何文件之前的所有目录,并且目录名忽略通配符参数。嗨,开发者们,
你准备好迎接新的挑战了吗? 我们很高兴地宣布第一届InterSystems技术文章写作比赛:
从2021年7月15日至8月15日,写一篇与InterSystems技术有关的任何主题的文章!
每个人都有奖品: 在此期间,每个在DC上发表文章的人都将获得一个特别的奖品包!
大奖: Apple iPad
参加我们的新比赛,你的内容将被超过55K的月度读者看到! 详情如下。
以下形式的名值对:
ID="QD5690"
属性位于元素中,如下所示,一个元素可以有任意数量的属性。
<Patient ID="QD5690">Cromley,Marcia N.</Patient>
表示不应该验证的文本,如下所示:
<myelementname><![CDATA[
Non-validated data goes here.
You can even have stray "<" or ">" symbols in it.
]]></myelementname>
一个CDATA(字符数据)区段不能包含字符串]]>,因为这个字符串标志着区段的结束。
这也意味着CDATA区段不能嵌套。
注意,部分的内容必须符合为XML文档指定的编码,XML文档的其余部分也是如此。
不是XML文档主数据的一部分的插入说明。 注释是这样的:
对XML元素的可能内容的抽象描述。 可能的内容模型如下:
类%XML.Namespaces提供了两个类方法,可用于检查XML命名空间及其包含的类:
classmethod GetNextClass(namespace As %String,
class As %String) as %String
返回给定XML命名空间中给定类之后的下一个类(按字母顺序)。当没有更多的类时,此方法返回NULL。
classmethod GetNextNamespace(namespace As %String) as %String
返回给定命名空间之后的下一个命名空间(按字母顺序)。当没有更多的命名空间时,此方法返回。
在这两种情况下,只考虑当前的InterSystems IRIS命名空间。此外,映射的类也会被忽略。
例如,以下方法列出当前InterSystems IRIS命名空间的XML命名空间及其类:
ClassMethod WriteNamespacesAndClasses()
{
Set ns=""
Set ns=##class(%XML.Namespaces).GetNextNamespace(ns)
While ns '=""
{
Write !, "The namespace ",ns, " contains these classes:"
Set cls=""
Set cls=##class(%XML.Namespaces).GetNextClass(ns,cls)
While cls '=""
{
Write !, " ",cls
Set cls=##class(%XML.Namespaces).GetNextClass(ns,cls)
}
Set ns=##class(%XML.Namespaces).GetNextNamespace(ns)
}
}
2021年7月9日-11日,2021(16th) 中国卫生信息技术/健康医疗大数据应用交流大会暨软硬件与健康医疗产品展览会(CHITEC)在武汉国际博览中心(湖北省武汉市汉阳区鹦鹉大道619号)盛大召开,欢迎莅临InterSystems展位A6-16,了解备受瞩目的InterSystems IRIS医疗版互联互通套件。
本章介绍如何使用%XML.Schema从启用了XML的类生成XML架构。
要生成为同一XML命名空间中的多个类定义类型的完整架构,请使用%XML.Schema构建架构,然后使用%XML.Writer为其生成输出。
要构建XML架构,请执行以下操作:
%XML.Schema实例。DefaultNamespace属性。默认值为NULL。注意:必须在调用方法之前设置这些属性。
AddSchemaType()方法。method AddSchemaType(class As %String,
top As %String = "",
format As %String,
summary As %Boolean = 0,
input As %Boolean = 0,
refOnly As %Boolean = 0) as %Status
Studio提供了一个向导,该向导读取XML模式(从文件或URL),并生成一组支持XML的类,这些类对应于模式中定义的类型。
所有的类都扩展%XML.Adaptor。
指定一个包来包含类,以及控制类定义细节的各种选项。
向导还可以作为类方法使用,也可以使用该类方法。 在内部,SOAP向导在读取WSDL文档并生成web客户端或web服务时使用此方法;
注意:使用的任何XML文档的XML声明都应该指明该文档的字符编码,并且文档应该按照声明的方式进行编码。如果未声明字符编码,InterSystems IRIS将使用本书前面的“输入和输出的字符编码”中描述的默认值。如果这些默认值不正确,请修改XML声明,使其指定实际使用的字符集。
要使用XML架构向导,请执行以下操作:

下一个屏幕显示模式,以便可以验证选择了正确的模式。
近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问祝麟讲解了“InterSystems Caché系统高可用与数据库镜像”。
如果一张图片胜过千言万语,那么一段视频又价值几何? 当然胜过敲一个帖子。
请在 InterSystems Developers YouTube 观看我的“Coding talks”:
1. 使用 Yape 分析 InterSystems IRIS 系统性能。 第 1 部分:安装 Yape
在容器中运行 Yape。
2. Yape 容器 SQLite iostat InterSystems
提取和绘制 pButtons 数据,包括时间范围和 iostat。
供应商或内部团队要求说明如何为 VMware vSphere 上运行的_大型生产数据库_进行 CPU 容量规划。
总的来说,在调整大型生产数据库的 CPU 规模时,有几个简单的最佳做法可以遵循:
通常,这会引出几个常见问题:
我以下面的示例回答这些问题。 但也要记住,最佳做法并不是一成不变的。 有时需要做出妥协。 例如,大型生产数据库虚拟机很可能不适合 NUMA 节点,但我们会看到,其实是没问题的。 最佳做法是指必须针对应用程序和环境进行评估和验证的准则。
除了objectscript 自带的 list,array 数据结构以外,是否有存在其它已经实现好的数据结构,类似 java 里面 collection包一样,是否有已经实现好的排序工具,有没有针对集合类的sort工具。
[toc]
如果直接调用InterSystems IRIS SAX解析器,则可以根据自己的需要创建自定义内容处理程序。本节讨论以下主题:
%XML.SAX.Parser类中解析方法的参数列表摘要要定制InterSystems IRIS SAX解析器导入和处理XML的方式,请创建并使用定制的SAX内容处理程序。具体地说,创建%XML.SAX.ContentHandler的子类。然后,在新类中,重写任何默认方法以执行所需的操作。在解析XML文档时使用新的内容处理程序作为参数;为此,需要使用类的解析方法。
此操作如下图所示:

创建和使用自定义导入机制的过程如下:
%XML.SAX.ContentHandler的类。%XML.SAX.Parser的分析方法之一(即ParseFile()、、或)编写读取XML文档的类方法。调用分析方法时,请将自定义内容处理程序指定为参数。
类在特定时间自动执行某些方法。通过覆盖它们,您可以自定义内容处理程序的行为。
%XML.SAX.ContentHandle
多学科协作诊疗(Multidisciplinary Team,MDT)是当今医学领域的重要医学模式之一,其主要目的在于:通过不同专业的医务人员共同参与、联合决策,针对特定患者和疾病,提供临床最佳、管理最细、资源最整、效率最高的诊疗方案。该模式起源于20世纪80年代,在欧美国家已运行多年,尤其在肿瘤和重症领域应用较为广泛和成熟。近些年,越来越多的中国医疗机构(包括公立和私立)也开始尝试和完善MDT。虽然在具体实施形式和细节角色流程上仍有争议,但是多数报道患者满意度和诊疗结果综合评分提升。因此,值得长期探索和实践。
本文以典型的MDT工作方案(图1)作为模版,阐述医学信息系统如何助力MDT的管理和运行。图中数字编号即为章节题目,将流程与系统功能结合,进行深入探讨。
图1 MDT工作方案
.png)
1. 开展MDT的必备资源
目前国内外大体有两种MDT表现形式:一是固定时间、固定学科、固定病种。譬如:每月最后一个周五下午2-4点,肿瘤科、消化内科、外科、病理科、营养科、放射科共同探讨恶性消化系统肿瘤病例,这些病例是由该MDT主导学科在平时门诊、住院患者中通过预设条件筛选得出的;二是根据患者和病情需要,临时组织所需学科医务人员进行诊疗方案的讨论。这里需要强调的是,后者尽管没有固定时间规律,但不可与疑难病例讨论或多学科会诊相混淆。
大家好, 在本文中,我比较了 Gartner 最新DBMS 魔力象限中的主要领先数据库产品的功能。 请见按现有功能数量排序的列表。 1. InterSystems IRIS 2020.3 - 60 个功能 (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls) 2. Oracle Database 21c - 54 个功能 (https://docs.oracle.com/en/database/oracle/oracle-database/index.html) 3. Microsoft SQL Server - 45 个功能 (https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15) 4. AWS Aurora - PostgreSQL - 34 个功能 (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Auror…) 我只比较了功能,未进行任何性能比较(关于此内容,请参见性能测试:https://cn.community.intersystems.
(ECP) Caché 出色的可用性和扩展特性之一是企业缓存协议 (ECP)。 在应用程序开发过程中,如对使用 ECP 的分布式处理加以考虑,可以横向扩展 Caché 应用程序的架构。 应用程序处理可以调整为非常高的速率,处理能力从单个应用程序服务器扩展到最多 255 个应用程序服务器,并且不需要任何应用程序更改。
在我参与的 TrakCare 部署中,ECP 已广泛使用多年。 十年前,主要供应商之一的一台“大型”x86 服务器可能总共只有八个核心。 对于大型部署来说,ECP 是横向扩展商业服务器处理能力的方式,不适合单台昂贵的大型企业服务器。 即使是高核心数的企业服务器也有限制,因此 ECP 也用于扩展这些服务器上的部署。
如今,大多数的新 TrakCare 部署或升级到当前硬件_不需要 ECP_ 即可扩展。 目前的双插槽 x86 生产服务器可以拥有数十个核心和巨大容量的内存。 我们看到,在最近的 Caché 版本中,TrakCare 以及许多其他 Caché 应用程序具有可预测的线性扩展能力,能够随着单台服务器中 CPU 核心数量和内存的增加而支持逐渐增多的用户和事务。 在现场,我看到大多数的新部署都是虚拟化的,即使如此,虚拟机也可以根据需要扩展到主机服务器的规模。 如果资源需求超过单个物理主机可以提供的资源,则使用 ECP 进行横向扩展。
XML文档可能包含对外部DTD或其他实体的引用。默认情况下,InterSystems IRIS尝试查找这些实体的源文档并解析它们。要控制InterSystems IRIS解析外部实体的方式,请使用以下步骤:
此类必须在扩展%XML.SAX.EntityResolver,并且必须实现 resolveEntity()方法,该方法具有以下签名:
method resolveEntity(publicID As %Library.String, systemID As %Library.String) as %Library.Integer
每当XML处理器找到对外部实体(如DTD)的引用时,就会调用该方法;这里的public ID和systemID是该实体的Public和系统标识符字符串。
该方法应获取实体或文档,将其作为流返回,然后在将流包装在的实例中。此类提供了用于确定流特征的必要方法。
如果无法解析该实体,则该方法应返回$$$NULLOREF ,以向SAX解析器指示该实体无法解析)。
尽管方法签名指示返回值为%Library.Integer,但该方法应返回的实例或该类的子类。
此外,引用外部实体的标识符始终传递给文档中指定的resolveEntity()方法。