文章
· 九月 3, 2023 阅读大约需 2 分钟
第十七章 ObjectScript - 使用宏和包含文件include file

第十七章 ObjectScript - 使用宏和包含文件

使用宏和包含文件

如前所述,可以定义宏并稍后在同一类或例程中使用它们。更常见的是,在包含文件中定义它们。

Macros

ObjectScript 支持定义替换的宏。定义可以是一个值、整行代码或(使用 ##continue 指令)多行。

要定义宏,请使用#define 指令或其他预处理器指令。例如:

#define macroname <definition> 

要引用宏,请使用以下语法:

$$$macroname

或者:

$$$macroname(arguments)

使用宏来确保一致性。例如:

0 0
0 43
文章
· 九月 14, 2023 阅读大约需 2 分钟
第二十八章 Classes - 引用其他类的方法

第二十八章 Classes - 引用其他类的方法

引用其他类的方法

在方法(或例程)中,使用下面的语法来引用其他类中的方法:

要调用类方法并访问其返回值,请使用如下表达式:

 ##class(Package.Class).MethodName(arguments)
iris.cls("Package.Class").MethodName(arguments)

例如:

 Set x=##class(Util.Utils).GetToday()
x=iris.cls("Util.Utils").GetToday()

也可以调用一个类方法而不访问它的返回值,如下所示:

0 0
0 69
文章
· 十月 23, 2023 阅读大约需 12 分钟
FHIR Profile - FHIR扩展与再约束

FHIR标准提供灵活的扩展与再约束机制 - Profile。到底Profile机制如何工作?什么样的扩展需要用到Profile?怎么建立Profile?


FHIR核心资源模型 - FHIR Core

FHIR发布的资源模型是按80/20原则设计的 - 最常用那80%的用例中需要的数据会被涵盖在FHIR核心资源模型中,这些数据需求可能只是所有用例需要数据的20%;通过对核心资源的扩展和再约束,可以让它们适用于不常见的20%用例和未被涵盖的80%的数据需求。

FHIR发布的资源模型是FHIR核心资源模型(FHIR Core),它们有如下特点:

1. 对象模型 - 有继承关系。所有资源都继承自DomainResource

2. 为了保证最大的适用度,资源中的绝大多数属性的最小基数都是0,意味着它们都可以为空

3. 资源的属性可以通过code(值集)、coding、CodeableConcept(术语)进行取值范围约束

4. 为了防止医疗错误,所有的属性都没有且不能有默认值

当需要对核心资源模型进行扩展和再约束时,FHIR提供了profile机制对所做的扩展和再约束进行画像(描述),这就是profile的意思。

1 0
0 134
文章
· 十二月 11, 2023 阅读大约需 1 分钟
第三十二章 控制到 XML 模式的映射 - %ListOfObjects

第三十二章 控制到 XML 模式的映射 - %ListOfObjects

本部分显示了从支持 XML 的类生成的 XML架构的一部分,该类包含定义为 %ListOfObjects 的属性。例如,考虑以下属性定义:

Property PropName As list Of %Integer(XMLITEMNAME = "MyXmlItemName");

如果此属性位于名为 Test.DemoObjList1 的启用 XML 的类中,则该类的 XML 架构包含以下内容:

0 0
0 18
文章
· 十二月 27, 2023 阅读大约需 7 分钟
FHIR小百科 - 处方的表达

在医疗行业中,处方是个非常重要的临床工作数据概念。因此,在考察用FHIR能如何构造我国所需医疗行业数据模型时,就会需要考虑如何用FHIR表达处方。

在2019年,FHIR的工作组已否认需要使用特定的资源来表达处方(不是药嘱)这个概念,见:

1 0
0 96

Google Cloud Platform (GCP) 为基础架构即服务 (IaaS) 提供功能丰富的环境,其作为云提供完备的功能,支持所有的 InterSystems 产品,包括最新的 InterSystems IRIS 数据平台。 与任何平台或部署模型一样,必须留心以确保考虑到环境的各个方面,例如性能、可用性、操作和管理程序。 本文将详细阐述所有这些方面。

0 0
0 609
文章
· 一月 10, 2021 阅读大约需 17 分钟
RESTful API (cn)

RESTful 应用程序编程接口 (API) 设计和文档编制初学者指南。 通过示例,您将学习一些常见的 RESTful API 模式。

在阅读之前

您需要知道

  • 如何在 Ensemble 中创建 RESTful Web 服务
  • 如何在 Ensemble 中使用 RESTful Web 服务
  • 如何传递服务参数
  • 如何返回服务结果

什么是服务 API?

什么是应用程序编程接口? 是具体化的东西吗? 是单一编程单元吗? API 的作用是什么? 在我看来,API 是由程序代码以间接方式决定的。 但完全定义的 API 是由运行可执行程序的容器(由部署设置控制)提供的。 因此,我宁愿将 API 定义为服务的公共描述。 该描述可以是人类可读的,也可以仅机器可读, 或者两者均可。 API 用于与将要使用服务的人员共享有关服务的基本信息。 API 说明了服务的作用、使用环境、功能以及管理的数据结构等。

0 0
0 153
文章
· 一月 11, 2021 阅读大约需 3 分钟
类、表和Globals——工作原理

当我向技术人员介绍InterSystems IRIS时,我一般会先讲其核心是一个多模型DBMS。

我认为这是其主要优势(在DBMS方面)。数据仅存储一次。您只需访问您想用的API。
- 您想要数据的概要?用SQL!
- 您想用一份记录做更多事情?用对象!
- 想要访问或设置一个值,并且您知道键?用Globals!

乍一看挺好的,简明扼要,又传达了信息,但当人们真正开始使用InterSystems IRIS时,问题就来了。类、表和Globals是如何关联的?它们之间有什么关系?数据是如何存储的?

本文我将尝试回答这些问题,并解释这些到底是怎么回事。

第一部分 模型偏见

处理数据的人往往对他们使用的模型有偏见。

开发者们把数据视为对象。对他们而言,数据库和表都是通过CRUD(增查改删,最好是基于ORM)交互的盒子,但底层的概念模型都是对象(当然这对于我们大多数使用面向对象编程语言的开发者来说没错)。

而DBA大部分时间都在搞关系型DBMS,他们把数据视为表。对象只是行的封装器。

对于InterSystems IRIS,持久类也是一个表,将数据存储在Global中,因此需要进行一些澄清。

1 0
0 107
文章
· 一月 21, 2021 阅读大约需 3 分钟
InterSystems IRIS History Monitor仪表盘界面展示

大家好!

我想跟大家分享一个个人项目,该项目始于工作中的一个简单需求:“能否知道我们使用了多少个Caché许可证?”

在阅读社区的其他文章时,我发现了一篇David Loveluck写的非常棒的文章:APM——使用Caché History Monitor

我根据David的这篇文章,开始使用Caché History Monitor并显示所有这些信息。

在面临“选择哪种很酷的技术”这个问题时,我决定使用简单而强大的CSP,这样我的客户可以认识到Caché不仅仅是MUMPS/终端。

在创建了页面以显示许可、数据库增长和CSP会话的历史记录后,我决定为System Dashboard和进程页面创建一个新设计。

我的Caché实例运行得良好。

但是,如果使用IRIS呢?

0 0
0 80
文章
· 二月 13, 2021 阅读大约需 2 分钟
第三十三章 Caché 变量大全 $ZMODE 变量

第三十三章 Caché 变量大全 $ZMODE 变量

包含当前I/O设备打开参数。

大纲

$ZMODE
$ZM

描述

$ZMODE包含使用OPENUSE命令为当前设备指定的参数。返回的字符串包含用于以规范形式打开当前I/O设备的参数。这些参数值由反斜杠分隔符分隔。TCP/IP IO上的开放参数(如“M”)被规范化为“PSTE”“Y”“K”参数值始终放在最后。

不能使用SET命令修改此特殊变量。尝试这样做会导致<SYNTAX>错误。

示例

以下示例使用$ZMODE返回当前设备的参数:

0 0
0 67

前面介绍了通过mirroring或shadow,使用journal日志过滤器的方式,在不改动数据模型的情况下实现InterSystems IRIS/Caché上的CDC能力。
但如果你可以修改InterSystems IRIS/Caché上的数据模型,也可以考虑使用DSTIME特性实现变更数据捕获。

DSTIME特性

DSTIME特性是InterSystems IRIS/Caché的嵌入式实时BI工具DeepSee用于跟踪数据变更的。
InterSystems IRIS和2011版之后的Caché,都支持DSTIME特性。它会自动记录数据库中SQL表记录或持久化对象的变更,并将变更记录写入持久化的多维数组^OBJ.DSTIME中。

0 0
0 266
文章
· 四月 18, 2021 阅读大约需 5 分钟
IRIS Docker的安装

IRIS相比Caché在部署上的一个进步是支持docker。即便不是云部署, 使用docker也带来非常多的便利。 尤其是在开发测试环节,由于docker的使用更便捷,除非要模拟客户的环境或者做规定的性能测试,我在测试中基本已经不再使用本机的实例或者虚机。IRIS的联机文档有详细的IRIS docker安装使用指导,本文只是一个简单的,快速上手的在测试环境安装IRIS docker的简单步骤,尤其适合初学者。

注意Windows上docker可能会遇到这样那样的问题,因此通常还是推荐在Linux或者Mac OS上使用。正式的生产环境的IRIS docker container也是不支持Windows系统的。

1 0
1 421
文章
· 四月 26, 2021 阅读大约需 9 分钟
第六章 SQL性能分析工具包

第六章 SQL性能分析工具包

本章介绍可用于主动分析特定SQL语句的分析工具。这些工具收集有关这些SQL语句执行的详细信息。使用这些信息,开发人员可以采取措施提高低效SQL语句的性能。

根据请求的详细程度,此活动分析可能会显著增加服务器上的负载。因此,SQL性能分析工具包旨在进行协调一致的代码分析工作。它不是用来连续监视执行代码的。

分析工具界面

SQL性能分析工具包为开发人员和支持专家提供了分析特定SQL语句或语句组的能力。通过在执行特定SQL语句期间使用这些工具,它们可以收集详细信息,这些信息可用于单独或跨活动工作负载分析有问题的语句。

要记录的细节级别是可配置的,最细粒度的设置在模块级别收集信息,为语句的查询计划中的不同“步骤”提供信息。

0 0
0 66

FHIR 术语服务规范描述了一组对 CodeSystemValueSetConceptMap 资源的操作。 在这些操作中,以下四种操作似乎是最为广泛采用的:

CodeSystem ValueSet
$lookup
$validate-code
$expand
$validate-code

开发该规范的部分实现一直是探索 IRIS for Health 2020.1 中引入的全新 FHIR 框架的有效途径。 本实现包括上述四种操作,并支持与 CodeSystemValueSet 资源的读取搜索交互。

需要注意的是,本实现使用普通 ObjectScript 持久化类作为源术语表。

0 0
0 171
文章
· 五月 10, 2021 阅读大约需 5 分钟
第四章 多维存储的SQL和对象使用(二)

第四章 多维存储的SQL和对象使用(二)

索引

持久化类可以定义一个或多个索引;其他数据结构用于提高操作(如排序或条件搜索)的效率。InterSystems SQL在执行查询时使用这些索引。InterSystems IRIS对象和SQL在执行INSERTUPDATEDELETE操作时自动维护索引内的正确值。

标准索引的存储结构

标准索引将一个或多个属性值的有序集与包含属性的对象的对象ID值相关联。

例如,假设我们定义了一个简单的持久化MyApp.Person类,该类具有两个文本属性和一个关于其Name属性的索引:

0 0
0 54
文章
· 五月 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服务器返回请求的页面。

0 0
0 110
文章
· 六月 23, 2021 阅读大约需 3 分钟
Yape - 另一个 pButtons 提取程序(自动创建图表)

注(2019 年 6 月):许多内容发生了变化,最新的详细信息请参见此处
注(2018 年 9 月):自本帖首次发布以来,内容已经有了很大改动,我建议使用 Docker 容器版本,以容器形式运行的项目以及详细信息仍然在 GitHub 的同一个地址发布,您可以下载、运行并根据需要进行修改。

0 0
0 98
文章
· 六月 27, 2021 阅读大约需 5 分钟
第二十章 使用%XML.TextReader 节点属性

第二十章 使用%XML.TextReader 节点属性

节点属性

如前所述,类中的%XML.TextReader解析XML文档并创建一个text reader对象,该对象由一组与文档组件相对应的节点组成;节点类型在本章前面的“文档节点”中进行了描述。

当将焦点更改到其他节点时,text reader对象的属性将更新,以包含有关当前检查的节点的信息。本节介绍类中%XML.TextReader的所有属性。

AttributeCount

如果当前节点是元素或属性,则此属性指示元素的属性数。在给定元素中,第一个属性编号为1。对于任何其他类型的节点,此属性为0

Depth

指示文档中当前节点的深度。根元素位于深度1;根元素之外的项位于深度0。请注意,属性与其所属元素的深度相同。同样,错误或警告与导致错误或警告的项的深度相同。

EOF

如果读取器已到达源文档的末尾,则为true;否则为false。

0 0
0 82
文章
· 七月 15, 2021 阅读大约需 4 分钟
第四章 使用目录

第四章 使用目录

使用目录

%Library。File类提供了几个类方法,允许对目录执行各种操作。

创建目录

若要创建目录,请使用CreateDirectory()方法,该方法返回一个布尔值来指示成功或失败。这个方法需要两个参数。第一个参数是要创建的目录的名称。第二个参数是输出参数。如果为负,它包含操作系统返回的错误代码,以防方法失败。

如果e:\temp已经存在,以下命令将失败,并显示Windows系统错误代码183,这意味着“当文件已经存在时,无法创建该文件。”

0 0
0 90
文章
· 七月 29, 2021 阅读大约需 4 分钟
类关键字SqlTableName,StorageStrategy,System,ViewQuery

[toc]

第三十七章 类关键字 - SqlTableName

指定此类投影到的SQL表的名称。仅适用于持久类。

用法

要覆盖此类所投影到的SQL表的默认名称,请使用以下语法:

Class MyApp.Person Extends %Persistent [ SqlTableName = DBTable ]  { //class members }

其中DBTable是有效的SQL标识符。

详解

此关键字指定此类被投影到的SQL表的名称。默认情况下,SQL表名与类名相同。

通常,当类名是SQL保留字(并不少见)或希望SQL表包含类名不支持的字符(如“_”字符)时,可以使用此关键字。

对子类的影响

此关键字不是继承的。

默认

如果省略此关键字,类名将用作SQL表名。

[toc]

0 0
0 158

第七十七章 方法关键字 - SoapBindingStyle

指定此方法用作web方法时使用的绑定样式或SOAP调用机制。仅适用于定义为web服务web客户端的类。

用法

若要重写方法使用的默认绑定样式(当它用作web方法时),请使用以下语法:

Method name(formal_spec) As returnclass [ WebMethod, SoapBindingStyle = soapbindingstyle ]  
{    //implementation }

其中soapbindingstyle是下列之一:
- document文档(默认)—此web方法使用文档样式的调用。

使用这种绑定风格,SOAP消息被格式化为文档,并且通常只有一个部分。

0 0
0 109

国际互联互通的需求是在不断增长,这跟咱们国内的情况是非常类似的。这些年美国在互联互通领域的政策跟实践还是不少的,比如大家可能听到过包括“有意义的使用(Meaningful Use)”,“21世纪治愈法案(21st Century Cures Act)”,还有更多的政策上的驱动。这里先介绍一下“有意义的使用(Meaningful Use)”。

0 0
0 219