一致性检查的任务——integrity check在业务低峰期直接运行吗?A-B(mirror)环境中,运行这个任务来检查一致性是两边都要运行吗?在管理锁的时候,我直接将锁remove会有啥后果?
InterSystems Caché 是一个多模型 DBMS 和应用服务器。
查看此处提供的更多详细信息。
文档。
一致性检查的任务——integrity check在业务低峰期直接运行吗?A-B(mirror)环境中,运行这个任务来检查一致性是两边都要运行吗?在管理锁的时候,我直接将锁remove会有啥后果?
数据库是使用数据库向导创建的 IRIS.DAT 文件。 IRIS数据库保存称为全局变量的多维数组中的数据和称为例程的可执行内容,以及类和表定义。
全局变量和例程包括方法、类、网页、SQL、BASIC和JavaScript文件
注意:在 Windows 系统上,不要对 IRIS.DAT 数据库文件使用文件压缩。 (通过右键单击 Windows 资源管理器中的文件或文件夹并选择属性,然后选择高级,然后压缩内容以节省磁盘空间来压缩文件;压缩后,文件夹名称或文件名在 Windows 资源管理器中呈现为蓝色。)如果压缩IRIS.DAT 文件,它所属的实例将无法启动,并出现误导性错误。
IRIS 数据库根据需要动态扩展(假设有可用空间),但可以指定最大大小。如果使用默认的 8KB 块大小,数据库可以增长到 32 TB。
可以动态更改大多数数据库配置;可以在系统运行时创建和删除数据库以及修改数据库属性。
注意:这些主题描述了使用管理门户手动配置数据库的过程。 IRIS 还包含可用于自动化数据库配置的编程工具。可以使用新选项卡类中的 Config.Databases 来创建和配置数据库;还可以使用 ^DATABASE 命令行实用程序配置数据库。
可以在覆盖命名空间例程的默认数据库映射的例程级别向命名空间添加映射:
Routine database location 数据库。注意:新映射行的第一列中显示的 >> 表示已打开映射进行编辑。
cpf 文件中,请单击保存更改。例如,使用前面的测试命名空间映射示例,如果计划在机场数据库(在 FlightSchedule 命名空间中)中创建一个计划例程(例如 BOSZZairline),并且希望它对 TravelAgent 命名空间中的用户可用,请导航到 Routine Mappings 页面(在 TravelAgent 命名空间行中),然后单击 New Routine Mapping。输入如下例程映射对话框中所示的信息:
Include filesOther routinesClassesTablesGlobals根据需要使用额外的例程、包和全局映射,以确保这些项目在目标命名空间中可用。
Package Mappings除了可以访问映射数据库中的全局变量和例程之外,还可以映射来自相同或不同系统上的其他数据库的全局变量、例程和类包。这允许对可以存在于任何地方的数据进行简单引用,并且是命名空间的主要特征。可以映射整个全局变量或全局变量;此功能允许数据轻松跨磁盘。
注意:映射按字母顺序排序;如果指定了下标,则按名称和下标排序。
单击适当的选项开始映射:
Global MappingsRoutine MappingsPackage MappingsMapping Data to All Namespaces以下是映射如何在示例航空公司预订应用程序中工作的示意图:
数据和程序存储在数据库数据库中,即物理存储位置,并由名称空间引用,即逻辑引用。
重要提示:如果存在与本地内容具有相同标识符的映射内容(例如包、类、全局或例程名称),则映射内容将可见,而不是本地内容。因此,应该尽可能具体地使用映射,以防止映射远离现有内容。 在命名内容和创建映射时,请务必遵循标识符规则和准则,以避免任何不必要的冲突。
Mappings可以在全局和全局下标级别将新全局映射添加到命名空间,以覆盖命名空间全局变量的默认数据库映射:
命名空间是虚拟工作空间中的数据和程序的集合。在命名空间中,可以定义各种组或人员需要的全局变量Global。例如,如果审计部门需要使用存在于不同系统或不同目录中的某些全局变量Global,可以设置一个单一的命名空间来引用网络上的所有会计全局变量和数据库。
IRIS 带有以下预定义的命名空间:
%SYS — 系统管理信息和实用程序。
-USER — 安装时为空。通常用于应用程序开发。可以在管理门户的命名空间页面上执行以下过程来配置命名空间,可以通过在主页上依次选择系统管理、配置、系统配置和命名空间来导航到该页面:
注意:上面列出的主题描述了使用管理门户手动配置命名空间的过程。 IRIS 还包含对自动化命名空间配置有用的编程工具。可以在新选项卡类中使用 Config.Namespaces 来创建和配置命名空间。
配置命名空间的另一种方法是将 CreateNamespace、ModifyNamespace 或 DeleteNamespace 操作与配置合并结合使用。配置合并允许通过应用声明性合并文件来自定义 IRIS 实例,该文件指定要应用于该实例的设置和操作。
单个 IRIS 实例中命名空间数量的绝对限制为 2048。命名空间表的大小是自动的且不可配置。
IRIS 将系统范围的配置信息存储在称为配置参数文件 (CPF) 的文件中。该文件是一个重要工具,因为它包含IRIS 实例的大部分可配置设置。每个实例都部署了一个默认 CPF,它位于安装目录中。可以直接在文本编辑器中修改 CPF,也可以从管理门户或终端间接修改。在 UNIX® 和 Linux 上,还可以通过指定配置合并文件在部署期间自定义 CPF IRIS 使用该文件在实例首次启动之前更新默认 CPF。
对于任何新安装的实例,必须更改几个启动设置,以及应该查看的其他设置。本节讨论最初要考虑的这些设置:
当第一次安装 IRIS 时,应该查看和调整内存分配以及其他配置设置。在确定 IRIS 实例使用内存的方式时,必须采取三个主要操作,如下所示:
使用内存和启动页面(系统管理 > 配置 > 系统配置 > 内存和启动)为数据库和例程缓存分配内存。
设置 IRIS 进程可以使用的最大内存
配置通用内存堆(也称为共享内存堆)的大小,这决定了 IRIS 可用于例程和数据库缓存之外的其他用途的内存;
重要提示:首次安装 IRIS 时,数据库和例程缓存内存分配设置为自动,在此情况下, IRIS 为数据库缓存(全局缓冲区)分配总物理内存的 25%。
此设置不适用于生产用途。
除内存设置外,内存和启动页面还包括以下内容:
管理门户由多个页面组成,分为以下功能区域:
Home — 管理门户主页Health — 医疗保健页面。仅适用于 IRIS for Health™ 和 HealthShare® Health Connect。Analytics — IRIS® 商业智能页面Interoperability — 产品页面主页包含许多用于导航管理门户的选项。
IRIS for Health 和 Health Connect 中的医疗保健特定功能显示在管理门户的 Health 部分的可用页面上。在访问这些健康页面之前,需要安装 Foundation 命名空间。
商业智能页面分为管理门户的分析部分中显示的类别。
产品页面分为管理门户的互操作性部分中显示的类别。
系统操作员页面分为管理门户的系统操作部分中显示的类别。下表显示了每个类别和相关的文档来源。
管理门户有两种不同的视图模式可供选择以进行页面导航。可以通过单击管理门户功能区中所需的查看按钮随时在查看模式之间切换。视图模式有:
Columns view ——分栏显示页面;这是默认模式。此查看模式允许选择收藏夹并分配自定义资源。List view — 在下拉列表中显示页面名称。注意:除了使用视图导航管理门户外,还可以通过位于功能区中的搜索工具直接进入页面;有关详细信息,请参阅本章中的管理门户功能区部分。
“列视图”显示用于到达目标页面的子菜单。如果单击最终子菜单中的标题/名称,则会显示目标页面;如果在框内单击而不是在标题/名称本身上单击,则操作窗格将显示在右侧。
操作窗格解释了一个菜单选项,并允许执行与其相关的多项操作。要在“列”视图中显示操作窗格,请在最终子菜单中的选项周围的框内单击,而不是在选项本身上单击。可以在操作窗格中执行以下操作:
注意:如果资源的名称在操作窗格中被截断,请将指针移到名称上以查看其全部内容。
Go 转到目标页面。操作窗格仅在“列”视图中可用。当使用列表视图或搜索工具导航到页面时,无法将其添加为收藏夹或分配自定义资源。
本节介绍管理门户页面的一些常见布局元素。
注意:在管理门户中的任何位置,将光标移到菜单项上都会显示该项目的描述。
管理门户主页的标题是 Welcome, <user>。在标题旁边,功能区包含以下选项:
以下部分描述了主页的区域:
位于主页左边缘的菜单栏是导航门户的主要方法。
欢迎窗格位于主页的中心,包括经常访问的页面的快捷方式。它包含以下字段:
Favorites — 列出选择为收藏夹的管理门户页面(请参阅操作窗格);可以单击每个页面标题直接转到该页面。Recent — 列出自上次启动 IRIS 以来最近显示的页面。Did you know? — 显示提示。Links - 指向可能想要访问的页面的链接。位于主页右侧边缘的消息窗格显示一般系统信息并提供指向系统仪表板的链接。
如果实例是镜像成员,则消息窗格还显示它所属的镜像、其状态和成员类型以及指向镜像监视器的链接。
页眉位于管理门户中每个页面的顶部,可用于快速导航门户。
标题包含以下链接:
[TOC]
IRIS数据平台使您能够通过 Web 应用程序Management Portal 执行系统管理和管理任务。这种方法的一个优点是 IRIS 不必安装在用来管理安装的系统上。现在,通过网络远程管理系统,受制于为站点建立的访问控制,变得更加容易。跨版本兼容性问题被最小化,因为数据及其格式信息都直接来自被管理的系统。
默认情况下,管理门户在安装了IRIS 的专用 Web 服务器上运行。可以选择禁用专用 Web 服务器(使用 WebServer 设置)并配置不同的 Web 服务器来运行管理门户。
可以通过以下方式启动管理门户:
Microsoft Windows 平台上,单击 IRIS 启动器菜单上的管理门户(Management Portal)。URI,格式如下:http://machine:port/csp/sys/UtilHome.csp
GetEnsClassType此方法返回用于创建产品的类的名称列表。可以指定要获取的类的类型,例如业务服务类。
GET http://server:port/api/atelier/v1/namespace/ens/classes/type
type 是一个整数,并返回对应于该整数的类,如下所示:
Adapters 1
InboundAdapters 2
OutboundAdapters 3
Messages 4
Requests 5
Responses 6
BusinessServices 7
BusinessProcesses 8
BusinessOperations 9
DataTransformation 10
Production 11
BusinessHost 12
Dashboard 13
Rule 14
以下返回的内容是一个类名数组:
此方法对 IRIS 表执行 SQL 查询并返回结果。请求正文是指定查询的 JSON 对象。它返回一个匹配查询条件的对象数组。每个返回的对象都包含与查询返回的一行相关的信息。
POST http://server:port/api/atelier/v1/namespace/action/query
SQL 查询在 URL 请求的正文中指定。查询必须在指定的命名空间中指定一个数据库。
此调用需要标头 Content-Type application/json。
返回内容是一个对象数组。错误将出现在每个源代码文件对象的状态属性中:
此方法编译源代码文件。它允许一次编译多个源代码文件。它返回一个对应源代码文件对象的数组。
要编译的文件列表作为 JSON 数组在 http 请求的正文中传递。例如,[ "%Api.DocDB.cls", ... ]。
有关示例和其他详细信息,请参阅本手册教程章节中的编译文件。
POST http://server:port/api/atelier/v1/namespace/action/compile
此调用需要标头 Content-Type application/json。
URL Parameters可以传递 URL 参数“flags”(默认为“cuk”),该参数将传递给编译器。
如果不希望返回已编译的源代码文件的源,则可以使用值 0 传递 URL 参数 'source'。
以下是编译 Atelier.NewClass1 时返回的内容:
此方法删除指定命名空间中的命名源代码文件。它返回相应的源代码文件对象。
与源代码文件有关的错误将在源代码文件对象的状态属性中。
有关示例和其他详细信息,请参阅本手册教程章节中的删除文件。
DELETE http://server:port/api/atelier/v1/namespace/doc/doc-name
注意:如果要删除 CSP 文件 ,则 doc-name 的值包括 /(斜杠)字符。这就是定义 DeleteDoc 的 URLMap 包含此参数名称的 (.*) 而不是 :docname 的原因。有关详细信息,请参阅创建 REST 服务中的“为 REST 创建 URL 映射”。
以下是源代码文件 xyz.mac 的 DELETE 的返回内容:
创建只读账号,分配资源新建角色,资源限制只读,但新建的用户还是可以修改。。。
分配的是所有以%DB和%service开始的资源,但部分是Use的权限,搞不明白。。。
我该怎么创建一个sql 的只读账号呢?
此方法保存提供的源代码文件。如果文件不存在,此方法将创建它,如果文件存在,此方法将现有文件替换为指定的文件。为确保覆盖文件的正确版本,请指定 If-None-Match 标头以及先前 PutDoc 或 GetDoc 的 ETAG 标头中返回的时间戳值。如果要覆盖文件而不检查版本,请指定 ?ignoreConflict=1 URL 参数。该方法返回一个对应的源代码文件对象。如果要保存二进制文件,请将传入 JSON 消息的 enc 元素设置为 true,并将文件内容包含为 base64 块数组。如果在保存过程中更改了服务器上的文本(例如通过源代码管理挂钩),则更新后的文本将在返回的源代码文件的内容数组中返回。
与源代码文件有关的错误将在返回的源代码文件对象的状态属性中。
版本 2 PutDoc 能够接受三种格式的文件内容:默认 UDL 格式、XML 格式和旧 %RO 导出实用程序使用的格式。 PutDoc 自动识别文件内容的格式。
有关示例和其他详细信息,请参阅本手册教程章节中的在命名空间中创建新文件或更新现有文件。
PUT http://server:port/api/atelier/v1/namespace/doc/doc-name
下面是一个ObjectScript片段,它允许为InterSystems IRIS创建数据库、命名空间和Web应用程序:
set currentNS = $namespace
zn "%SYS"
write "Create DB ...",!
set dbName="testDB"
set dbProperties("Directory") = "/InterSystems/IRIS/mgr/testDB"
set status=##Class(Config.Databases).Create(dbName,.dbProperties)
write:'status $system.Status.DisplayError(status)
write "DB """_dbName_""" was created!",!!
write "Create namespace ...",!
set nsName="testNS"
//DB for globals
set nsProperties("Globals") = dbName
//DB for routines
set nsProperties("Routines") = dbName
set status=##Class(Config.Namespaces).Create(nsName,.nsProperties)
write:'status $system.Status.DisplayError(status)
write "Namespace """_nsName_""" was created!",!!
write "Create web application ...",!
set webName = "/csp/testApplication"
set webProperties("NameSpace") = nsName
set webProperties("Enabled") = $$$YES
set webProperties("IsNameSpaceDefault") = $$$YES
set webProperties("CSPZENEnabled") = $$$YES
set webProperties("DeepSeeEnabled") = $$$YES
set webProperties("AutheEnabled") = $$$AutheCache
set status = ##class(Security.Applications).Create(webName, .webProperties)
write:'status $system.Status.DisplayError(status)
write "Web application """webName""" was created!",!
zn currentNS
在Caché基础课程中,同学们同时学习了Caché开发和ObjectScript语法。为了帮助大家完成练习,我们提供了ObjectScript快速参考(俗称 "小抄")。
它不是所有ObjectScript的参考资料! 它是学生在课程中使用的ObjectScript命令和函数的列表,以及对象、集合等的常用语法。它还包含一些有用的宏。
我们正在为开发者社区提供一个pdf版本。
在测试你的代码时,你经常会遇到需要检查对象的实际内容。无论是使用 ZWRITE 还是 $system.OBJ.Dump(),
你会得到一个简单的属性图片,"--- 属性值---"
而 "--- swizzled references ---" 更容易让人混淆
用“--- calculated references ---" 你只是被留在了后面。
ObjectScriptt至少有三种处理错误的方法(状态代码status codes、异常 exceptions, SQLCODE等)。大多数系统代码使用状态码,但由于一些原因,异常更容易处理。在处理遗留代码时,你要花一些时间在不同的技术之间进行转换。我经常使用这些片段作为参考。希望它们对其他人也是有用的。
此方法返回源代码文件名列表。可选的 cat 和 type 约束源代码文件的类型。
GET http://server:port/api/atelier/v1/namespace/docnames
GET http://server:port/api/atelier/v1/namespace/docnames/cat
GET http://server:port/api/atelier/v1/namespace/docnames/cat/type
其中
cat 指定类别代码:CLS = class; RTN = routine; CSP = CSP 文件; OTH = other。默认为 *。type 指定源代码文件类型。可以是 * 通配符或文件类型。对于 CLS,类型必须是 *。对于 RTN,类型可以是 mac、int、inc、bas 、mvi 或 mvb。对于 CSP,type 可以是 js 或 css 等文件类型的列表,以逗号分隔。默认为 *。URL 参数 'generated=1' 指定应包含生成的源代码文件。URL 参数 'filter' 提供了一个可用于匹配名称的 SQL 过滤器。以下是返回的内容,源代码文件描述符数组:
医疗行业的互操作性在改善病人护理、降低医疗服务提供者的成本以及为提供者提供更准确的情况方面发挥着重要作用。然而,由于有这么多不同的系统,数据的格式也有很多不同的方式。有许多标准被创造出来以试图解决这个问题,包括HL7v2、HL7v3和CDA,但每一种都有其缺点。
FHIR,即快速医疗互操作性资源,是一种新的医疗数据格式,旨在解决这些问题。它是由国际卫生级七组织(HL7)开发的,该组织还开发了HL7v2、HL7v3和CDA。
今天我们将探讨如何在VS代码中借助IntelliSense和自动完成功能,通过使用FHIR Schema 创建和验证FHIR资源。
第 1 步 :从FHIR 官方网站 https://www.hl7.org/fhir/下载 JSON schema file 文件用来做资源校验
第 2 步: 创建文件夹(在这个例子中,我使用病人文件夹和病人资源),并将提取的fhir.schema.json文件复制到同一文件夹,然后从VS Code中打开文件夹.png)
第 3 步: 通过修改setting.json文件,设置VS代码以识别FHIR模式。
按CTRL+SHIFT+P并输入工作区设置JSON文件.png)
第 4 步: 在同一文件夹中创建一个新文件patient.fhir.json。
按Ctrl+Space,你将通过IntelliSense获得FHIR资源的所有属性
此方法返回命名数据库的 METADATA.zip 文件的二进制内容。 Atelier 使用此文件来存储索引信息,以便为将来的会话保留此信息。
GET http://server:port/api/atelier/v1/%25SYS/metadata/database
注意:因为 % 是 URL 特殊字符,所以要指定文字 %,必须在其后跟 25(百分号字符的十六进制代码)。因此,必须使用 %25SYS 来指定文字 %SYS。
HTTP 200 如果正常。HTTP 404。HTTP 500 如果发生意外错误(详细信息将在状态错误数组中)。此方法返回在服务器上定义或为服务器上指定命名空间定义的 Web 应用程序列表。
GET http://server:port/api/atelier/v1/%25SYS/cspapps
GET http://server:port/api/atelier/v1/%25SYS/cspapps/namespace
其中:
namespace
指定命名空间的名称。如果未指定命名空间,则此方法返回所有命名空间的 Web 应用程序。
源代码文件 REST 接口支持以下方法:
Compile 方法编译传入 JSON 数组中名称指定的源代码文件。例如,要编译 xyz.mac,请发布以下内容:
http://localhost:52773/api/atelier/v1/INVENTORY/action/compile
使用以下 JSON 消息:
["xyz.mac"]
该方法返回:
{
"status": {
"errors": [],
"summary": ""
},
"console": [
"",
"Compilation started on 08/14/2016 15:25:20 with qualifiers 'cuk'",
"xyz.int is up to date. Compile of this item skipped.",
"Compilation finished successfully in 0.008s."
],
"result": {
"content": []
}
}
对于一些源代码文件,例如类,Compile 在返回的内容中返回存储信息。
要获取有关命名空间中源代码文件的信息:
GetDocNames 方法获取文件的名称。GetDoc 方法获取一个文件的内容,也可以用GetDocs 方法获取多个文件的内容。GetModifiedDocNames 方法仅获取内容发生变化的源代码文件的名称或使用带有 If-None-Match HTTP 标头的 GetDoc 方法。GetDocNames 方法返回映射到命名空间的所有数据库中的所有源代码文件的名称。
本章提供了一个简短的教程,通过一系列示例演示如何使用源代码文件 REST API。它包含以下部分:
API 基础Atelier 用于访问 IRIS 源代码文件的 API 使用 REST 架构风格。 REST 的名字来源于“Representational State Transfer”。与许多 REST API 一样 IRIS 源代码文件 REST API 使用 HTTP GET、POST、PUT、DELETE 和 HEAD 方法,并将 JSON 用于传入和传出消息体。
要调用 API 方法,需要了解以下内容:
推荐一篇文章,南方医院HIS系统的更换与建设探索!