大家可以通过InterSystems IRIS 管理门户SMP查看当前数据库剩余空间,路径是 Management Portal: System Operation > Database
.png)
当然大家也可以通过下面的代码查看数据库的可用磁盘空间:
/// ZISJ.macSet大家可以通过InterSystems IRIS 管理门户SMP查看当前数据库剩余空间,路径是 Management Portal: System Operation > Database
.png)
当然大家也可以通过下面的代码查看数据库的可用磁盘空间:
/// ZISJ.macSet假设您是一名 Python 开发人员或拥有一支训练有素的 Python 专业团队,但您分析 IRIS 中某些数据的期限很紧迫。当然,InterSystems 提供了许多用于各种分析和处理的工具。然而,在给定的场景中,最好使用旧的 Pandas 来完成工作,然后将 IRIS 留到下次使用。
对于上述情况和许多其他情况,您可能需要从 IRIS 获取表来管理 InterSystems 产品之外的数据。但是,当您有任何格式(即 CSV、TXT 或 Pickle)的外部表时,您可能还需要以相反的方式执行操作,您需要在其上导入并使用 IRIS 工具。
无论您是否必须处理上述问题,Innovatium让我明白,了解更多解决编码问题的方法总是能派上用场。好消息是,从 IRIS 引入表时,您不需要经历创建新表、传输所有行以及调整每种类型的繁琐过程。
本文将向您展示如何通过几行代码快速将 IRIS 表转换为 Pandas 数据框架并向后转换。您可以在我的GitHub上查看代码,您可以在其中找到包含本教程每个步骤的 Jupiter Notebook。
当然,您应该首先导入该项目所需的库。
importasimport下一步将是在 Python 文件和 IRIS 实例之间创建连接。
亲身体验 SQL 搜索,它是 InterSystems IRIS® 数据平台中的一个工具,可让您快速搜索存储在 SQL 表中的大量非结构化文本数据(含练习,15m) 。
一些特殊变量提供有关代码运行环境的信息。其中包括以下内容:
$HOROLOG,包含操作系统给出的当前进程的日期和时间。请参阅日期和时间值。$USERNAME 和 $ROLES,包含有关当前使用的用户名以及该用户所属角色的信息。 write "You are logged in as: ", $USERNAME, !, "And you belong to these roles: ",$ROLES
$ZVERSION,其中包含标识当前运行的 版本的字符串。其他包括 $JOB、$ZTIMEZONE、$IO 和 。
其他变量提供有关代码处理状态的信息。其中包括 、、 和 。
特殊变量 提供对大量实用方法的轻松访问。
特殊变量 是 包的别名,其中包含提供可满足各种需求的类方法的类。引用 中方法的惯用方法是构建使用 变量的引用。例如,以下命令在类中执行 中的 方法:
由于特殊变量的名称不区分大小写(与类及其成员的名称不同),因此以下命令都是等效的:
DO ##class(%SYSTEM.OBJ).SetFlags("ck")
DO $System.OBJ.SetFlags("ck")
DO $SYSTEM.OBJ.SetFlags("ck")
DO $system.OBJ.SetFlags("ck")
大家好,由于我目前在做一个数据分析的demo,所以需要在IRIS Data platform存储百万行数据供我测试。因此使用Populate Utility 来自动生成我需要的数据。
在这篇文章中,我将会给大家分享我使用 Populate utility 包括POPSPEC parameter的心得和经验。
1.创建两个persistent class , popPatient用于存储病人信息, popSign用于存储收集到的对应病人的生命信息。在定义persistent class时需要在后面引用(%Persistent, %Populate)以支持调用Populate Utility工具.

2.1 为了使我们生成出来的数据更贴合正常的情况,我们不能取一个超出常识的值比如心跳1000次一分钟。所以我使用(MAXVAL 和 MINVAL)来限制了生成数据的区间。
在popPatient 中 如图所示我限制了生成病人年龄的取值范围
在popSign中 限制了心跳的区间
2.2 如果我们需要使用自定义的自动生成方法,这时我们需要使用 POPSPEC 来定义生成的 内容,例如 我们有预定义的method,可以直接引用并生成美国电话号码,但是我想生成一个符合澳大利亚电话号码格式的值。并且在另外一张表中(popSign)记录收集到的心率的时间戳,我们可以使用$H 的方法来收集时间戳。
本节概述了在 ObjectScript 常用命令。其中包括与其他语言中的命令相似的命令,以及其他语言中没有等效项的其他命令。
命令名称不区分大小写,尽管按照惯例它们在运行文本中显示为全大写。
ObjectScript 提供命令来执行熟悉的任务,如下所示:
要定义变量,请使用 SET(如前所示)。
要删除变量,请使用 KILL,如前所示。
要控制逻辑流程,请使用以下命令:
IF、ELSEIF 和 ELSE 一起工作DO 和 可以一起使用QUIT,也可以返回一个值还有其他用于流量控制的命令,但使用频率较低。
要捕获错误,请使用 和 ,它们一起工作。
要写入值,请使用 WRITE。这会将值写入当前设备(例如,终端或文件)。
在不带参数的情况下使用该命令会写入所有局部变量的值。
此命令可以使用一小组格式控制代码字符来定位输出。在现有代码中,可能会看到感叹号,它开始一个新行。例如:
要从当前设备(例如终端)读取值,请使用 。
要使用主设备以外的设备,请使用以下命令:
WRITE 和 READ 使用。要控制并发,请使用 。请注意,
医院拥有丰富的CDA文档库,如何实现数据的有效利用和共享?
SUTA培训是InterSystems专为SUTA有效期客户提供的原厂产品技术服务,具体包括产品的基础管理、编程管理、高级管理和开发培训等。2023 SUTA培训报名现已启动,汇聚技术专家,与新老客户一起探讨提升InterSystems数据平台基础管理运维的技能和知识:
点击此处,了解培训详情,报名参会(扫描下图中的二维码报名)。请关注InterSystems微信公众号,及时获取开播信息。
快来报名吧!
.png)
ObjectScript 中的运算符优先级严格是从左到右;在表达式中,运算按照它们出现的顺序执行。可以在表达式中使用显式括号来强制某些操作先于其他操作执行。
通常,即使并不严格需要括号,也会使用括号。很有用,因为它使代码的意图更加清晰。
ObjectScript 为常见活动提供以下运算符:
+)、减法 (-)、除法 (/)、乘法 ()、整数除法 ()、模数 () 和求幂 ()>)、大于等于()、小于()、小于等于()可以在任何逻辑值之前以及逻辑比较运算符之前使用它。
请注意, 还支持其中每种形式的较旧的、效率较低的形式: 是 运算符的一种形式,而 是 的一种形式操作员。可能会在现有代码中看到这些旧的形式。
ObjectScript 还包括某些语言中没有等效项的运算符。最重要的如下:
例如,如果字符串 (
调用方法时,可以通过值或引用将变量值传递给该方法。在大多数情况下,这些变量是没有下标的局部变量,因此本节首先讨论这些变量。
与其他编程语言一样, IRIS 具有一个存储位置,其中包含每个局部变量的值。变量的名称充当内存位置的地址。
当将没有下标的局部变量传递给方法时,可以按值传递该变量。这意味着系统会复制该值,从而使原始值不受影响。要传递内存地址,请在参数列表中紧邻变量名称之前放置一个句点。
为了演示这一点,请考虑名为 Test.Parameters 的类中的以下方法:
ClassMethod Square(input As %Integer) As %Integer
{
set answer=input*input
set input=input + 10
return answer
}
假设定义一个变量并将其按值传递给此方法:
TESTNAMESPACE>set myVariable = 5
TESTNAMESPACE>write ##class(Test.Parameters).Square(myVariable)
25
TESTNAMESPACE>write myVariable
5
今年两会期间,有多名两会委员联名提出了《关于建设全国统一医院电子病历系统的提案》,国家卫健委相关部门也马上给予回应,称正在研究建立全国统一的电子健康档案、电子病历。结合数字中国的主要目标之一,让数据多跑腿,群众少走路,在这一背景下,从患者端开始,建立全国统一的电子病历APP已经变得迫切而重要。这不仅有助于提高医疗服务的效率和质量,还能够让患者更好地参与到医疗决策中,实现信息的共享和整合。
电子病历与患者共享的必要性和重要性
实现方案
在 ObjectScript 中,任何变量都可以是多维数组(也称为数组)。多维数组通常用于保存一组以某种方式相关的值。 ObjectScript 提供的命令和函数可以方便、快速地访问值。
可能会也可能不会直接使用多维数组,具体取决于使用的系统类和自己的偏好。当需要一个用于存储相关值集的容器时,IRIS 提供了一种基于类的替代方案。请参阅集合类。
多维数组由任意数量的节点组成,由下标定义。以下示例设置数组的几个节点,然后打印数组的内容:
set myarray(1)="value A"
set myarray(2)="value B"
set myarray(3)="value C"
zwrite myarray
此示例显示了一个典型的数组。
1、2 和 3。还可以特定节点及其子节点。
^myglobal 的GlobalObjectScript 支持以下程序流程,(在大多数方面)与其他编程语言支持的程序流程类似:
A、B 和 C。变量 A、B 和 C 在此方法的范围内。它们对于该方法是私有的。
该方法还定义了 。
A、B 和 C。它可以使用^D,因为该变量立即保存到数据库中。有几个因素控制变量在定义它的方法之外是否可用。在讨论这些之前,有必要指出以下环境细节:
命名空间是任何代码运行的环境。
下表总结了可用变量的位置:
| 变量可用性,按变量类型细分... |
|---|
在 ObjectScript 中,有两种变量,按它们保存数据的方式分类:
局部变量可以具有公共或私有范围。
局部变量可以具有公共或私有范围。
Global,在数据库中保存数据。这些也称为全局变量。与Global的所有交互都会立即影响数据库。例如,当设置Global值时,该更改会立即影响存储的内容;没有单独的步骤来存储值。同样,当删除时,数据会立即从数据库中删除。变量的命名遵循以下规则:
Global,第一个字符始终是脱字号 ()。其余字符是字母、数字或句点。有效名称包括 和 IRIS 还支持一种特殊的变量,称为百分比变量;这些不太常见。百分比变量的名称以百分比字符 (%) 开头。百分比变量的特殊之处在于它们始终是公共的;也就是说,它们对进程中的所有代码都是可见的。这包括调用堆栈中的所有方法和所有过程。
定义百分比变量时,请使用以下规则:
中的变量是弱动态类型的。
下面显示了一个名为 demoroutine 的示例例程,它是用 ObjectScript 编写的。它包含的过程与上一节示例类中所示的方法执行完全相同的操作。
; this is demoroutine
write "Use one of the following entry points:"
write !,"random"
write !,"input"
write !,"interesting"
quit
//this procedure can be called from outside the routine
random() public {
set rand=$RANDOM(10)+1 ; rand is an integer in the range 1-10
write "Your random number: "_rand
set name=$$getnumbername(rand)
write !, "Name of this number: "_name
}
//this procedure can be called from outside the routine
input() public {
read "Enter a number from 1 to 10: ", input
set name=$$getnumbername(input)
write !, "Name of this number: "_name
}
//this procedure can be called only from within this routine
getnumbername(number) {
set name=$CASE(number,1:"one",2:"two",3:"three",
4:"four",5:"five",6:"six",7:"seven",8:"eight",
9:"nine",10:"ten",:"other")
quit name
}
/* write some interesting values
this procedure can be called from outside the routine
*/
interesting() public {
write "Today's date: "_$ZDATE($HOROLOG,3)
write !,"Your installed version: "_$ZVERSION
write !,"Your username: "_$USERNAME
write !,"Your security roles: "_$ROLES
}
方法和例程都可以用 ObjectScript 编写,但大多数现代代码都是使用方法编写的。方法包含在类中,这允许将类似的方法分组在一起,在类参考中自动生成文档,以及使用 IRIS 的面向对象功能。
这并不意味着routines 不重要。许多有用的系统实用程序都是作为例程编写的,并且在编译类时会生成例程。
下面显示了一个名为 的示例类,其中包含用 ObjectScript 编写的方法。此示例使我们有机会了解一些常见的 ObjectScript 命令、运算符和函数,并了解代码在方法内的组织方式。
Class User.DemoClass
{
/// Generate a random number.
/// This method can be called from outside the class.
ClassMethod Random() [ Language = objectscript ]
{
set rand=$RANDOM(10)+1 ; rand is an integer in the range 1-10
write "Your random number: "_rand
set name=..GetNumberName(rand)
write !, "Name of this number: "_name
}
/// Input a number.
/// This method can be called from outside the class.
ClassMethod Input() [ Language = objectscript ]
{
read "Enter a number from 1 to 10: ", input
set name=..GetNumberName(input)
write !, "Name of this number: "_name
}
/// Given an number, return the name.
/// This method can be called only from within this class.
ClassMethod GetNumberName(number As %Integer) As %Integer [ Language = objectscript, Private ]
{
set name=$CASE(number,1:"one",2:"two",3:"three",
4:"four",5:"five",6:"six",7:"seven",8:"eight",
9:"nine",10:"ten",:"other")
quit name
}
/// Write some interesting values.
/// This method can be called from outside the class.
ClassMethod Interesting() [ Language = objectscript ]
{
write "Today's date: "_$ZDATE($HOROLOG,3)
write !,"Your installed version: "_$ZVERSION
write !,"Your username: "_$USERNAME
write !,"Your security roles: "_$ROLES
}
}
ObjectScript 还支持定义替换的宏。定义可以是一个值、整行代码或(使用 ##continue 指令)多行。使用宏来确保一致性。例如:
#define StringMacro "Hello, World!"
write $$$StringMacro
可以在例程中定义宏,并稍后在同一例程中使用它们。更常见的是,在中心位置定义它们。为此,需要创建并使用包含文件。包含文件定义宏并且可以包含其他包含文件。
可以混合使用 ObjectScript、Python、 SQL、类定义、宏、例程等的原因是 不直接使用编写的代码。相反,当编译代码时,系统会生成它使用的较低级别的代码。这是由 引擎使用的 的 代码,以及由 引擎使用的 的 代码。
有多个步骤。无需详细了解这些步骤,但最好记住以下几点:
在某些情况下,编译器会生成并保存您不应编辑的其他类。例如,当编译定义 服务和 Web 客户端的类时,就会发生这种情况。
类编译器还为每个类生成类描述符。系统代码在运行时使用它。
IRIS 提供了 SQL 的实现,称为 SQL。可以在方法和例程中使用 。
可以使用以下一种或两种方式从 ObjectScript 执行 :
SQL( %SQL.Statement和 %SQL.StatementResult 类),如下例所示: SET myquery = "SELECT TOP 5 Name, Title FROM Sample.Employee ORDER BY Salary"
SET tStatement = ##class(%SQL.Statement).%New()
SET tStatus = tStatement.%Prepare(myquery)
SET rset = tStatement.%Execute()
DO rset.%Display()
WRITE !,"End of data"
可以在 ObjectScript 方法和例程中使用动态 。
&sql(SELECT COUNT(*) INTO :myvar FROM Sample.Employee)
IF SQLCODE<0 {WRITE "SQLCODE error ",SQLCODE," ",%msg QUIT}
ELSEIF SQLCODE=100 {WRITE "Query returns no results" QUIT}
WRITE myvar
在 IRIS 中,可以使用例程中的类。例如,下面显示了例程的一部分,其中我们引用了 Sample.Employee 类:
//get details of random employee and print them
showemployee() public {
set rand=$RANDOM(10)+1 ; rand is an integer in the range 1-10
write "Your random number: "_rand
set employee=##class(Sample.Employee).%OpenId(rand)
do employee.PrintEmployee()
write !,"This employee's salary: "_employee.Salary
}
类似地,方法可以调用例程中的标签。例如,以下代码调用例程中的标签ComputeRaise:
Method RaiseSalary() As %Numeric
{
set newsalary=$$ComputeRaise^employeeutils(..Salary)
return newsalary
}
我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架列表最近和即将发生的更改的问题。此更新旨在分享最近的变化以及我们对即将发生的变化的当前最佳知识,但预测未来是一件棘手的事情,这不应被视为承诺的路线图。
话虽如此,接下来是更新……
IRIS 生产环境操作系统和 CPU 架构
红帽Linux企业版RHEL
IRIS 是一个高性能多模型数据平台,具有内置的通用编程语言 ObjectScript,以及对 Python 的内置支持。
支持多进程并提供并发控制。每个进程都可以直接、高效地访问数据。
在 中,可以根据喜好编写类、例程或它们的组合。在所有情况下,存储的数据最终都包含在称为全局变量的结构中。 IRIS 编程具有以下特点:
ObjectScript 和 Python 中。SQL 表和全局变量使用。可以选择适合需求的方法。
支持类。可以使用系统类,也可以定义自己的类。
在 中,类可以包含熟悉的类元素,例如属性、方法和参数(在其他类语言中称为常量)。它还可以包含通常不在类中定义的项目,包括触发器、查询和索引。
IRIS 类定义使用类定义语言 (CDL) 来指定类及其成员,例如属性、方法和参数。可以使用 或 在方法内部编写可执行代码。对于每个方法,使用 关键字指定将使用哪种语言编写该方法,如下例所示。
下面显示了一个类定义:
Class Sample.Employee Extends %Persistent
{
/// The employee's name.
Property Name As %String(MAXLEN = 50);
/// The employee's job title.
Property Title As %String(MAXLEN = 50);
/// The employee's current salary.
Property Salary As %Integer(MAXVAL = 100000, MINVAL = 0);
/// This method prints employee information using ObjectScript.
Method PrintEmployee() [ Language = objectscript]
{
Write !,"Name: ", ..Name, " Title: ", ..Title
}
}
受到@Evgeny Shvarov 的问题和@Ashok Kumar Thangavel 的回复的启发
我已经创建了一个用于把Global下载成 XML 文件的基础
如何使用:
只需调用 http://<your_server>/csp/samples2/dc.Gdown.cls ?GBL=global_name之类的页面
gbl-name 不带首字母 ^(插入符号)
输出具有默认名称 <global_name>.XML 您可以选择。
已知限制:
个人还有提升空间。
就是这样:
ClassExtends%CSP.PageACK如果为 True,业务服务将忽略任何入站 ACK 消息,以避免创建 ACK 反馈循环。
以冒号分隔的 代码,表示通过此业务服务接收 消息的设施和应用程序。如果此业务服务创建自己的 ACK,则本地设施应用程序会为 消息提供 代码;否则,该设置将被忽略。
应用于传入消息类型以生成完整的 规范的类别。与文档类型名称 () 结合生成 规范,然后使用该规范在给定 模式类别的 部分中查找 。
此设置还可以包含多个以逗号分隔的类型名称,后跟 ,然后是 或完整的 DocType 值,以应用于包含该类型名称的 消息。给定部分类型名称末尾的尾随星号 () 与以该条目开头的任何类型匹配。
HL7 消息对象的 DocType 属性
例如:
请注意,验证或搜索表类索引可能需要 分配。
如果您尚未为 HL7 业务服务准备自定义架构定义,则可以暂时将此字段留空。但是,请勿将其永久留空,除非您还禁用路由过程的验证,否则将自动发生验证错误。请参阅“验证”。
控制当处理传入消息时出现错误时此服务生成的 消息的 中的错误代码。默认值为 ,对于消息内容错误返回代码
嗨,开发者,
我们很高兴邀请大家参加新的以 Python 为主题的 InterSystems 在线编程竞赛!
时间: 2023年9月4日至24日(美国东部时间)
奖金池: 14,000 美元
DocTypeResolution指定如何根据 MSH:9 中的消息类型解析 DocType。选择以下选项之一:
Standard标准 — 将有效消息架构类别值与在相应架构类别中查找 MSH:9 消息类型值的消息结构名称相结合。这是默认设置。Ignore 9.3 — 与“标准”类似,但如果 有三个或更多部分,则忽略其他部分。标准行为是使用第 3 部分作为类型名称的一部分(如果它没有子部分),因为某些模式包含三部分类型名称。(仅限 )用作段终止符的以逗号分隔的 控制字符列表。这些值可以是十进制格式或十六进制格式,前面带有 x。例如,要将换行符指定为段终止符,请输入 或 。默认值为回车符,十进制值为 ,十六进制值为 。
控制 业务服务如何解释传入的 消息数据包。如果不确定使用什么值,请接受
提供HL7业务服务设置的参考信息。
HL7最重要的设置如下:
1,可以支持FIFO(先进先出)处理。在许多情况下,必须按顺序接收多个患者的人口统计更新。例如,许多应用程序在处理订单消息之前需要接收ADT注册消息,在收到结果消息之前必须接收订单消息,等等。帮助建立发布 HL7 确认消息以响应收到的 消息的格式和约定。对于业务服务,此设置可以具有下表中显示的值之一。
Ack Mode |
Meaning |
|---|---|
Never |
不要发回任何 。 |
| `Immediate | Commit ACK` 回复消息。如果未指定任何内容,则这是默认值。 |
Application |
如果消息通过验证,则等待来自目标应用程序的 回复消息,并在到达时返回此 ACK。在调用者请求响应并且production 路由引擎未配置为转发来自任何目标的响应的情况下, 将创建并返回 或 对象以返回给调用者。如果验证失败且确认模式为应用程序, 不会联系目标应用程序。 |
在提交的 WRC case中(Intersystems 全球技术支持响应中心),我们经常看到客户提出有关新 Web 网关设置的问题,其中管理门户加载一半,但不显示图像。本文将解释为什么会出现此错误,以及如何修复它。本说明主要针对服务 InterSystems IRIS 实例的 Web 网关,但相同的说明也应适用于服务 Caché 实例的 CSP 网关。
问题:
您刚刚在独立的 Web 服务器上安装了 Web Gateway。当你去加载管理门户时,你发现它无法显示或加载图像,如下所示:

为什么会发生这种情况:
问题是,为了完整加载管理门户,InterSystems IRIS 必须加载许多 .js、.css 和 .png 文件(静态文件)。如果您看到像上面这样的管理门户页面,请随时打开浏览器的开发人员工具小程序,导航到“网络”选项卡,并确认未提供各种 .js、.css 和 .png 组件:
最初安装 Web Gateway 时,我们仅为以下扩展设置映射:
.csp .cls .zen .cxw
这些是客户在自己的自定义应用程序中最常使用的文件扩展名类型,以及用于为 Web Gateway 管理门户提供服务的 .cxw 扩展名。如果您想要加载其他管理门户组件,则必须注册其他文件类型以由 Web 网关提供服务。
如何解决该问题:
要使管理门户完全显示,您必须配置 Web 网关以提供其他文件类型。
※如果您想比较使用Mirror、Shadow或其他机制复制的数据库,请使用此方法。
您可以使用 DATACHECK 实用程序来比较Global。请参阅下面的文档。
DataCheck 概述 [IRIS]
***
Routines比较使用系统例程 %RCMP 或管理门户。
以下是如何在管理门户中使用它。
.png)
HL7 搜索表类 EnsLib.HL7.SearchTable,自动索引填充的 HL7 属性。
如果需要搜索更多的项,可以创建一个子类。子类继承属性,以及使搜索表工作的基础结构。具体操作请参见在产品中使用虚拟文档中的“定义搜索表类”。
对于, 支持PropType的附加值。除了在产品中使用虚拟文档中列出的类型之外,还可以使用DateTime:HL7。
创建搜索表时,不要使用保留的包名;参见开发产品中的“保留包名”。
当选择作为搜索表类,使能够在HL7消息中搜索以下虚拟属性。
MSHTypeName消息结构名称。为了创建这个字符串,将HL7消息中的以下值连接起来: - 消息头段
结果是一个格式为ADT_A01, ADT_A12, ORM_O01_2等的消息结构名称。
MSHControlID此消息的唯一标识号。程序从:
将此值解释为区分大小写的字符串。
PatientID此消息的患者标识符。随着HL7标准的发展,这个领域的位置也发生了变化。出于这个原因,在以下所有位置查找此值。这样,无论消息符合哪个HL7模式类别,都可以找到患者标识符: - 患者标识符段
字段`2`(患者外部标识符)
子字段`1`(患者标识符)
- `PID`患者标识符段
字段`3`(患者标识符列表),列表中的所有条目
子字段`1`(患者标识符)
- `PID`患者标识符段
字段`4`(患者标识符列表),列表中的所有条目
子字段`1`(患者标识符)
DTL 转换使用的 ObjectScript 方法 GetValueAt 将 段字段截断为 。因此,当转换长度超过 的字段时,无法在 编辑器中使用从左到右的拖动操作。例如,如果 字段超过 ,则无法使用 编辑器将源字段拖动到目标,因为它将被截断。同样,如果要转换的字段长度超过 ,则自定义代码不应调用 。
要转换长度超过 的字段,需要使用代码操作将自定义代码添加到转换中。此自定义代码必须在的 中包含以下方法之一,以将字段的值从源读取到流中:GetFieldStreamRaw()、 或
这些 方法采用 个参数:流输出参数、字段的 VDoc 路径和 输出参数。 ``pRemainder` 参数将填充被提取的字段之后的所有字段。例如:
/// Segment: OBX|1|2|3|4|5|6|7
do GetFieldStreamRaw(.stream, "OBX:5", .rem)
/// rem contains: |6|7
一旦自定义代码在流中具有字段值,必须使用 的以下方法之一将值存储在目标中:、 或 。
这些 方法接受三个参数:要存储在字段中的流、要在其中存储流的字段的 路径以及 pRemainder 参数。