在维护应用中配置程序¶
注意
本页面介绍的是旧版的 维护应用。如果您使用的是 元数据管理应用,请参阅 配置项目(元数据管理应用),该文档可通过 DHIS2 应用中心 获取,且与 41 版及以上版本兼容。 本页面中关于项目指标表达式、项目规则表达式、受追踪实体类型、受追踪实体属性及关系类型的参考资料,对于元数据管理应用程序仍然准确无误——仅项目创建和项目阶段界面本身发生了变化。
关于项目¶
传统上,公共卫生信息系统一直报告 其各项卫生项目中服务提供的汇总数据。这 无法让您追踪接受这些服务的人群。在 DHIS2中,您可以定义包含各个阶段的自定义项目。这些项目是 “追踪器”功能的重要组成部分,该功能可让您追踪 个人记录。您还可以追踪其他“实体”,例如水井或 保险。您可以创建两种类型的项目:
表:项目类型
| 项目类型 | Parameter name | 使用示例 |
|---|---|---|
| 事件项目 | 单一事件 *无*登记计划(匿名计划或 SEWoR) 通过医疗系统跟踪匿名的个人事件。这些个人交易不附带任何个人或实体。 只有一个项目阶段。 | 用于记录健康病例,但无需将任何信息录入系统。 用于记录调查数据或监测名单。 |
| 单级跟踪项目 | “单次事件*含*注册”计划(SEWR) 通过与医疗系统进行的每一笔单独交易对实体(个人、商品等)进行追踪 仅有一个计划阶段。 被追踪的实体实例(TEI)只能加入该计划一次。 | 办理出生证明和死亡证明。 |
| 多阶段追踪计划 | 包含注册程序的多事件(MEWR) 通过与卫生系统进行的每一笔单独交易,对实体(个人、商品等)进行追踪 包含多个项目阶段。 | 孕产妇保健项目,包括产前检查(2-4次及以上)、分娩和产后随访等阶段。 |
要创建项目,必须首先配置几种类型的元数据 对象。您可以在**维护**应用中创建这些元数据对象。
表格维护项目中的项目元数据对象
| CSV元数据导入 { #webapi_csv_metadata_import } | Parameter name | 可用功能 |
|---|---|---|
| 事件项目 | 无需注册即可记录单个事件的项目 | 创建、编辑、分享、删除、查看详情和翻译 |
| 追踪项目 | 记录单个或多个事件并进行注册的项目 | 创建、编辑、分享、删除、查看详情和翻译 |
| <dataelement-id> | 一种基于被追踪实体的数据元素和属性的表达式,您可利用它根据公式计算值。 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
| 程序规则 | 允许您在**Capture**应用中创建和控制用户界面的动态行为。 | 创建、编辑、克隆、删除、查看详情和翻译 |
| 项目规则变量 | 用于创建项目规则表达式的变量。 | 创建、编辑、克隆、删除、查看详情和翻译 |
| 关系类型 | 定义被追踪实体A与被追踪实体B之间的关系,例如母子关系。 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
| 追踪实体类型 | 可通过系统追踪的实体类型。从人到商品都可以,例如药品或人。 一个项目必须有一个被跟踪实体。要将一个被跟踪实体实例加入一个项目,实体的被跟踪实体和项目的被跟踪实体必须相同。 注 指定的项目必须只有一个跟踪实体。只有与项目跟踪实体相同的跟踪实体才能注册该项目。 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
| 组织单位组 | 用于注册被跟踪实体的额外信息。 项目之间可以共享。 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
| IndicatorGroup | 项目由项目阶段组成。 | 创建、编辑、分享、删除、分配给组织单位、查看详细信息和翻译 |
| 组织单位 | 程序阶段规定了在每个阶段应采取哪些行动。 | 创建、编辑、分享、更改排序顺序、删除、查看详情和翻译 |
| 项目指标组 | 一组项目指标 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
| 指示符 | 验证规则基于一个表达式,该表达式定义了数据元素值之间的关系。 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
| 项目通知 | 自动消息提醒 设置提醒,在预定就诊时间之前以及缺席就诊之后,自动向已注册的受追踪实体实例发送提醒。 | 创建、编辑和删除 |
| 项目阶段通知 | 自动消息提醒 设置提醒,当一个项目阶段完成时,或在到期日期之前或之后自动发送。 | 创建、编辑和删除 |
在维护应用项目中配置事件项目¶
关于活动计划¶
*没有*注册项目的单个事件称为事件项目。 您可以在**维护**应用中对其进行配置。活动节目可以有 三种类型的数据输入形式:
表:活动日程表的数据录入表单类型
| 表单类型 | Parameter name |
|---|---|
| 基础 | 列出属于项目的所有数据元素。您可以更改数据元素的顺序。 |
| 删除源指标,增加目标指标 | 一个部分用于分组数据元素。随后,您可以调整各部分的顺序,以创建所需的数据输入表单布局。 |
| 自定义 | 将数据输入表单定义为 HTML 页面。 |
注意
如果同时存在自定义表单和章节表单, 则自定义表单优先于章节表单。
如果未定义自定义表单或章节表单,则将 使用基本表单。
Android 应用仅支持章节表单。
您可以为活动项目创建*项目通知*。通知 通知可通过内部 DHIS2 消息系统发送、 电子邮件或短信(SMS)发送。您可以使用项目通知 例如,在预定约会前 10 天向被跟踪实体发送自动提醒。 自动提醒。您可以使用项目的被跟踪实体 属性(例如姓名)和项目参数(例如 注册日期)来创建通知模板。在 **参数**字段中,你可以找到可用的跟踪实体属性和计划参数列表。 属性和计划参数的列表。
工作流程:创建事件项目¶
-
输入事件项目详细信息。
-
分配数据元素。
-
创建数据输入表单:基本,部分**或**自定义。
-
将项目分配给组织单位。
-
创建项目通知。
创建或编辑事件项目¶
输入活动计划详细信息¶
-
打开 Maintenance 应用项目,然后单击 Program (> Program)。
-
单击添加按钮,然后在弹出菜单中选择**事件项目**。
-
输入项目详细信息,然后单击下一步。
字段 说明 名称 程序的名称。 颜色 数据采集应用中用于该程序的颜色。 图标 数据采集应用中用于该程序的图标。 简称 程序的简称。该简称将作为分析应用中图表或表格的默认标题。 描述 程序的详细描述。 版本 项目的版本号。例如,在 Android 实现中,当用户离线收集数据时会用到此信息。当他们上线并同步元数据时,应获取该项目的最新版本。 类别组合 您希望使用的类别组合。 默认设置为 无。 类别选项结束日期后的开放天数 如果您选择了“无”以外的类别组合,可以输入零或正数。这允许您在该类别选项结束日期后的指定天数内,为该计划的该类别选项输入数据。 已完成活动过期日期 定义您可以编辑已完成活动的天数。 这意味着当活动完成且指定的过期天数已过时,该活动将被锁定。
如果您将“已完成活动的过期天数”设置为“10”,则活动将在完成日期后十天被锁定。 此日期之后,您将无法再编辑该活动。过期周期类型
过期天数过期天数定义了在前一周期结束后的多少天内,可以编辑该活动。 有效期类型由“有效期类型”决定。这意味着,当自上一时段结束日期起已过去指定天数后,该时段内的事件将被锁定。
若将过期类型设置为“每月”,过期天数设为“10”,且当前月份为10月,则11月10日之后将无法在10月添加或编辑活动。活动用户分配 勾选此复选框以启用活动用户分配功能
这意味着表单中将显示可供分配该活动的用户列表。完成后锁定报名表 选中此复选框,可在该项目的活动完成后锁定报名表。
这意味着在将状态重置为“未完成”之前,报名表中的数据无法被修改。要素类型 设置该项目是否将采集地理要素类型。
- 无 不采集任何数据。
- 多边形 采集一个区域。对于单次活动项目,该区域将代表所采集的活动区域;对于追踪器项目,该区域将代表注册区域。
- 点 采集一个点/坐标。 对于单次活动程序,该点将代表正在捕获的活动;对于追踪器程序,该点将代表注册信息。验证策略 设置服务器端和客户端的验证要求。
无论采用何种验证策略,都会执行数据类型验证。例如,整数字段绝不会存储文本内容。
- 完成时 此选项将强制要求在完成事件时修正必填字段和错误信息,但事件即使未通过这些验证要求,仍可保存到服务器。出于兼容旧版系统的考虑,此验证策略始终适用于跟踪程序,在该程序中,事件中的每个数据值都会在输入数据时存储到服务器。
- 更新和插入时 此选项将在将事件保存至服务器时强制执行必填字段验证,无论事件的完成状态如何。使用此选项时,任何未通过验证的事件均无法存储。预生成事件 UID 选中此复选框可预生成唯一的事件 ID 编号。 报告日期的自定义标签 输入报告日期的描述。
该描述将显示在案例录入表单中。 -
点击下一步。
分配数据元素¶
-
点击**分配数据元素**。
-
在可用项目列表中,双击要删除的数据元素。 想要分配给事件项目。
-
(可选)为每个数据元素添加其他设置:
设置 说明 必填 必须在数据录入表中填写此数据元素的值,才能完成该事件。 允许从其他地方获取 指定此数据元素的值是否来自其他机构(而非当前录入数据的机构)。 在报告中显示 将此数据元素的值显示在无注册数据录入功能的单个事件中。 未来日期 允许用户为日期数据元素选择未来日期。 移动端渲染类型 用于为移动设备选择不同的渲染类型。可用选项因数据元素的值类型而异。例如,对于数值,您可以选择“默认”、“数值”、“滑块”、“线性刻度”和“旋转选择器”。 桌面渲染类型 警告:尚未实现。
用于为桌面端(即 Web 界面)选择不同的渲染类型。可用选项因数据元素的值类型而异。 例如,对于数值,您可以选择“默认”、“数值”、“滑块”、“线性刻度”和“旋转选择器”。 -
点击下一步。
创建数据输入表单¶
数据录入表单决定了数据元素将在 Capture 应用中如何向用户显示。
-
点击**创建数据输入表单**。
-
点击**基本**,部分**或**自定义。
-
要创建**基本**数据输入表单:拖放数据 元素按您想要的顺序排列。
-
要创建**部分**数据输入表单,请执行以下操作:
-
点击添加按钮,然后输入部分的名称,说明和 桌面设备和移动设备的渲染类型。
-
单击该部分,使其以黑线突出显示。
-
通过单击数据旁边的加号来添加数据元素 元素的名称。
-
重复上述步骤,直到获得所需的所有部分为止。
-
更改部分顺序:单击选项菜单,然后拖动 部分到您想要的地方。
-
-
要创建一个**自定义**数据输入表单:请使用所见即所得(WYSIWYG)编辑器来 创建一个完全定制的表单。如果您选择**来源**,则您 可以直接将HTML代码粘贴到编辑区域中。你也可以 插入图像,例如标志或徽标。
-
点击下一步。
shortName¶
访问选项决定谁可以捕获项目数据或查看/编辑数据 项目的元数据。项目可以与组织单位共享, 另外,主项目和任何项目阶段的访问选项 可以通过**共享对话框**进行配置。访问选项是 在**访问权限**标签中可用。
分配组织单位:
-
在组织树中,双击您的组织单位 想添加到程序中。
您可以通过展开目录树来在树中找到组织单位 分支(单击箭头符号),或通过搜索 名称。所选组织单位显示为橙色。
更改角色和访问权限:
-
向下滚动到**角色和访问权限**部分。
第一行显示主项目的访问选项,每个 下一行显示一个项目阶段的选项。项目 带有警告图标(感叹号)的阶段包含访问选项 偏离主项目,这意味着它们可以通过 不同的用户组合。
-
单击任一行,将显示**共享对话框**。
-
相应地修改访问选项。请参阅有关 共享对话框以获取详细信息。
-
点击**应用**按钮。
-
对每个项目/项目阶段重复该过程。您也可以复制 从主项目到子项目的所有访问选项:
-
选择您想要具有类似访问权限的项目阶段 切换复选框,将其作为主项目 项目阶段的右侧。您也可以选择 **选择全部**项目阶段,**取消选择全部**项目阶段 或根据访问选项**选择类似**阶段,以 主项目。默认情况下会切换相似的阶段。
-
点击**应用于选定阶段**
-
创建项目通知¶
-
创建您要发送的消息:
-
点击**发送什么?**。
-
输入一个**名称**。
-
创建**主题模板**:双击中的参数 **模板变量**字段将其添加到您的主题。
Note
The subject is not included in text messages.
-
创建**消息模板**:双击参数 **模板变量**列表中的名称以将它们添加到您的 信息。
亲爱的A {w75KJ2mc4zz}:您现在已注册V {program _name}。
-
-
定义*何时*要发送消息:
-
单击**什么时候发送?**。
-
选择一个**通知触发器**。
通知触发器 说明 计划阶段完成 计划阶段完成时发送计划阶段通知 计划天数(到期日) 在到期日之前或之后 XX 天发送项目阶段通知
您需要输入将发送通知的计划日期之前或之后的天数。
-
-
定义要将消息发送给的*谁*:
-
点击 发送给谁?。
-
选择**通知**。
通知接收人 说明 通过电子邮件或短信接收项目通知。
要接收节目通知,收件人必须有电子邮件地址或电话号码属性。组织单位联系人 通过电子邮件或短信接收项目通知。
要接收项目通知,接收组织单位必须有注册联系人,并带有电子邮件地址和电话号码。组织单位的用户 所有注册到所选组织单位的用户都会通过内部 DHIS2 消息系统接收节目通知。 用户组 所选用户组的所有成员通过内部 DHIS2 消息系统接收节目通知。 项目属性 通过电子邮件或短信接收项目通知。
要接收节目通知,收件人必须有电子邮件地址或电话号码属性。数据元素 通过电子邮件或短信接收节目通知。
要接收节目通知,收件人必须有电子邮件地址或电话号码数据元素。网络钩子 -
单击 保存。
-
-
重复上述步骤,创建所需的所有项目通知。
-
点击**保存**。
注意
您可以在 数据 管理 应用中的 > 计划 > 计划通知 计划程序 中配置计划通知的发送时间。
单击 立即运行 以立即发送计划通知。
选择时间并单击 开始,即可安排程序 通知在特定 时间发送。
参考信息:项目通知参数¶
表:项目通知中使用的项目通知参数
| 通知类型 | 变量名 | 变量代码 |
|---|---|---|
| IndicatorGroup | 当前日期 | V{current_date} |
| 自注册之日起的天数 | V{days_since_enrollment_date} | |
| 入学日期 | V{enrollment_date} | |
| 事件发生日期 | V{incident_date} | |
| 组织单位名称 | V{org_unit_name} | |
| 项目名称 | V{program_name} | |
| 组织单位 | 当前日期 | V{current_date} |
| 距预产期还有多少天 | V{days_since_due_date} | |
| 距离预产期还有几天 | V{days_until_due_date} | |
| 截止日期 | V{due_date} | |
| 组织单位名称 | V{org_unit_name} | |
| 项目名称 | V{program_name} | |
| 节目阶段名称 | V{program_stage_name} | |
| 活动状态 | V{event_status} |
在维护应用项目中配置跟踪器项目¶
关于跟踪器项目¶
*具有*注册的单个或多个事件项目。项目必须指定一个被查明的实体。只有与项目被查到的身份相同的被查实体才能加入被查明的实体 项目。项目需要您在。**维护**应用项目中创建的各种类型的元数据。
工作流程:创建一个跟踪项目¶
-
输入跟踪器项目的详细信息。
-
输入注册详细信息。
-
分配属性并创建**部分**或**自定义**注册表格。
-
创建项目阶段。
-
配置访问权限,并分配给组织单位。
-
创建项目和项目阶段通知。
创建或编辑Tracker项目¶
-
打开 Maintenance 应用项目,然后单击 Program (> Program)。
-
单击添加按钮并在弹出菜单中选择**随访项目**。
输入项目详细信息¶
| The manual merge is suitable when there are resolvable conflicts or when not all the data needs to be moved during the merge. For example, if an attribute has different values in both tracked entities , the user can specify whether to keep the original value or move over the duplicate's value. Since the manual merge involves the user explicitly requesting to move data, there are some additional checks: | Parameter name | |---|---| | 名称 | 项目名称。 | | 颜色 | “Capture”应用中用于该节目的颜色。 | | 图标 | “Capture”应用中用于此程序的图标 | | 简称 | 项目的简称。在分析应用项目中,该简称将用作默认的图表或表格标题。 | | 描述 | 该项目的详细说明。 | | 版本 | 项目的版本。例如,当人们在安卓系统中离线收集数据时就会用到。当他们上网同步元数据时,就会得到项目的最新版本。 | | 受追踪实体类型 | 您要使用的跟踪实体类型。一个项目只能有一种跟踪实体类型。 | | 类别组合 | 您要使用的类别组合。默认设置为 无。 | | 类别选项截止日期后的开放日 | 如果您选择的类别组合不是“无”,则可以输入零或正数。这样,您就可以为该程序的某个类别选项输入数据,输入时间范围可延长至该类别选项结束日期后的指定天数内。 | | 显示首页列表 | 选中此复选框,即可在“Capture”应用中显示“受追踪实体实例”列表。若未选中,则将显示“搜索”界面。 | | 第一阶段显示在注册页面上 | 选中此复选框,即可在注册(报名)页面同时显示项目的第一个阶段。 | | 访问级别 | 选择项目的访问级别。 | | 已结束活动的过期天数 | 定义了您可以编辑已完成活动的天数。这意味着,当活动完成且超过了指定的过期天数后,该活动将被锁定。
如果您将“已完成活动的过期天数”设置为“10”,则活动将在完成日期后的十天内被锁定。 在此日期之后,您将无法再编辑该活动。 | | 到期期限类型
到期天数 | “有效期天数”定义了在上一期间结束后的多少天内,仍可编辑该事件。期间类型由“有效期期间类型”决定。这意味着,当自上一期间结束日期起已过去指定天数后,该期间的事件将被锁定。
如果将过期类型设置为“按月”,过期天数设置为“10”,且当前月份为10月,那么在11月10日之后,您将无法在10月添加或编辑活动。 | | 搜索所需的最小属性数量 | 指定需要填写的跟踪实体属性数量,以便在项目中搜索跟踪实体。 | | 搜索中返回的被追踪实体最大数量 | 指定允许与捕获范围外的搜索结果匹配的被追踪实体最大数量。此设置可用于强制用户进行更有针对性的搜索并缩小搜索结果范围,而不是允许用户在搜索时看到大量超出其捕获范围的结果。 若不设限制,请输入 0。更多信息请参见 此处。|
输入注册信息{ #enter_enrollment_details }¶
| The manual merge is suitable when there are resolvable conflicts or when not all the data needs to be moved during the merge. For example, if an attribute has different values in both tracked entities , the user can specify whether to keep the original value or move over the duplicate's value. Since the manual merge involves the user explicitly requesting to move data, there are some additional checks: | Parameter name | |---|---| | 允许未来报名日期 |如果希望允许被追踪的实体实例在未来某个日期加入该计划,请勾选此复选框。| | 允许设置未来的事件日期 |如果要允许项目中的事件日期为未来日期,请选择复选框。| | 每个被追踪实体的生命周期内仅需注册一次 |如果希望被追踪对象只能在某项计划中注册一次,请勾选此复选框。此设置在儿童疫苗接种或尸检等计划中尤为有用,因为在这些情况下,让被追踪对象多次注册是没有意义的。| | 显示事件日期 |此设置允许您在被跟踪实体注册项目时显示或隐藏事件日期字段。| | 事件日期的自定义标签 | 定义了本程序中“发生日期”的含义。
例如:
在针对1岁以下儿童的免疫接种项目中,发生日期即为儿童的生日。
在针对孕产妇的项目中,发生日期即为末次月经日期。 | | 入学日期的自定义标签 |定义了本计划中“注册日期”的含义,通常指被追踪实体注册加入本计划的日期。| | 自定义标签:
- 注册情况
- 活动
- 项目阶段
- 随访
- 注册单位
- 关系
- 注释
- 被追踪实体的属性 | 重命名该项目中DHIS2的标准术语。这些标签仅影响术语在用户界面中的显示方式,不会改变其含义。注意:只有“注册”、“事件”和“项目阶段”支持复数形式;其他所有标签均不支持。目前,这些自定义标签仅在DHIS2安卓应用中使用。 | 忽略已过期的事件 |当被跟踪实体加入该计划时,系统会创建与计划阶段相对应的事件。如果选中此复选框,系统将不会生成逾期事件。| | 要素类型 |用于设置程序是否要捕获地理要素类型。
* None: 不捕获任何内容。
* Polygon: 捕获一个区域。 对于单次事件程序,该区域将代表正在捕获的事件。对于追踪器程序,该区域将代表注册范围。
* 点: 捕获一个点/坐标。对于单次事件程序,该点将代表正在捕获的事件。对于追踪器程序,该点将代表注册范围。 | | 相关节目 |选择与您要创建的项目相关的跟踪项目,例如 ANC 和儿童项目。|
分配跟踪的实体属性。¶
-
在**可用项目跟踪实体属性**列表中,双击 您要分配给项目的属性。
-
(可选)对于每个已分配的属性,添加其他设置:
| 设置 | Parameter name |
|---|---|
| 以列表形式显示 | 在“Capture”应用中,该属性值将显示在受监控实体实例列表中。 |
| 必填 | 在完成该活动之前,必须在数据输入表单中填写此属性的值。 |
| 未来日期 | 将允许用户为日期属性选择未来日期。 |
| 移动端渲染类型 | 可用于为移动设备选择不同的渲染类型。可用的选项取决于属性的值类型。例如,对于数值,您可以选择“默认”、“值”、“滑块”、“线性刻度”和“旋转按钮”。 |
| 桌面渲染类型 | 警告:尚未实现。 可用于为桌面端(即 Web 界面)选择不同的渲染类型。 可用选项因属性的值类型而异。 例如,对于数值,您可以选择“默认”、“数值”、“滑块”、“线性刻度”和“旋转选择器”。 |
-
创建注册表
注册表单定义了属性在消费型应用程序(例如 Capture 和 DHIS2 Android Capture 应用程序)中将如何向用户显示。
-
点击**创建注册表格**。
-
点击**部分**或**自定义**。
-
创建**部分**表格:
- 点击添加按钮,然后为台式机和移动设备输入版块的名称,说明和渲染类型。
- 单击该部分,使其以黑色边框突出显示。
- 通过单击要添加的数据元素名称旁边的加号来添加数据元素。
- 重复上述步骤,直到获得所需的所有部分。 要更改节的顺序:单击选项菜单,然后将节拖动到所需的位置。
-
创建** Custom **注册表:使用WYSIWYG编辑器创建一个完全定制的表单。如果选择“源”,则可以将HTML代码直接粘贴到编辑区域中。您还可以插入图像,例如标志或徽标。
-
单击添加阶段。
-
创建项目阶段¶
一个程序由多个程序阶段组成。程序阶段定义了 在每个阶段应采取哪些行动。
注意
除非您保存了该程序,否则对程序阶段所做的更改不会被保存。
- 单击加号创建一个项目阶段。
- 输入项目阶段详细信息:
- 输入一个**名称**。
- (可选)选择将要使用的**颜色**和**图标** 由数据捕获应用确定此项目阶段。
- 输入**说明**。
- 在**“从开始起计划的天数”字段中输入所需的天数:根据配置不同,该计划阶段的第一个事件将在注册日期或事件发生日期后的这几天内安排。如果在“注册详情”中配置了“显示事件发生日期”,系统将使用事件发生日期作为开始日期。 如果在 **项目阶段详细信息 中配置了 根据注册日期生成事件,系统将使用注册日期作为起始日期。
- 输入可重复的项目阶段详细信息。
- Specify if the program stage is Repeatable or not.
- Select a Period type.
- 如果满足以下条件,请清除 完成后显示的事件生成框: 不想显示*创建新事件框*以创建新事件 在点击某项活动的“完成”按钮后,作为可重复执行的步骤 以数据输入形式显示的阶段。该字段由 默认。
- 输入**标准间隔天数**。该值将作为可重复阶段中最后一个事件与下一个事件的计划日期之间建议的间隔。
- (可选)选择**默认下一个计划日期**。这将显示**日期**类型的指定数据元素列表。如果选择了某个元素,Tracker 客户端就会将其作为默认计划日期。项目规则可使用该数据元素动态安排事件之间的时间间隔。
- 输入表格详细信息
| Validation rule | 行动 |
|---|---|
| 自动生成活动 | 取消选中此复选框,以防止在实体注册该计划时自动创建该计划阶段的事件。 |
| 注册后打开数据录入表单 | 选中此复选框,即可在实体注册加入该计划后立即自动打开该阶段的活动。 |
| 应使用的报告日期 | 如果您已勾选了 “注册后打开数据录入表单” 复选框,请同时选择一个 “要使用的报告日期”:“事件发生日期” 或 “注册日期”。 这是作为已自动创建的事件的报告日期所使用的日期。 如果将**要使用的报告日期**选定为上述两个选项之一(“事件发生日期”/“注册日期”),则在仪表盘中,该事件的“报告日期”将被设置为上述两个选项之一。 |
| 用户对事件的分配 | 选中复选框以启用用户对程序阶段的分配功能。 这意味着在“Capture”应用中将显示一个用户列表,该事件可分配给这些用户。 |
| 表单填写完成后禁止提交 | 选中此复选框,可在本阶段活动结束后锁定报名表。 这意味着,除非您将状态重置为“未完成”,否则无法修改报名表中的数据。 |
| 阶段完成后要求用户完成项目 | 选中该复选框可触发一个弹出窗口,询问用户是否要创建下一阶段的事件。 |
| 当阶段完成后,提示用户创建新事件 | 选中此复选框,可在该阶段的事件完成时触发一个弹出窗口,询问用户是否要在该阶段创建一个新事件。 只有当您选择了 可重复 选项时,此属性才有效。 |
| 按注册日期生成事件 | 选中它可以根据注册日期从该项目的项目阶段自动生成事件的到期日期。如果未选中,则基于事件日期生成截止日期。 |
| 隐藏截止日期 | 选中复选框以隐藏活动的截止日期。 |
| 特征类型 | 设置程序是否要捕获地理要素类型。 * None: 不捕获任何内容。 * Polygon: 捕获一个区域。对于单事件程序,该区域将代表被捕获的事件。 对于追踪类程序,该区域将代表注册区域。 * 点: 捕获一个点/坐标。对于单事件程序,该点将代表正在捕获的事件。对于追踪类程序,该点将代表注册点。 |
| 预先生成事件 UID | 选中此复选框可预先生成唯一的事件 ID 编号。 |
| 报告日期的自定义标签 | 定义了该程序阶段中“报告日期”的含义。 该说明将显示在数据输入表单中。 |
| 到期日的自定义标签 | 定义了本程序阶段中“截止日期”的含义。 |
| 自定义标签: - 活动 - 节目舞台 | 重命名该项目中标准的 DHIS2 术语。这些标签仅影响术语在用户界面中的显示方式,不会改变其含义。注意:只有“事件”支持复数形式;“项目阶段”不支持。目前,这些自定义标签仅在 DHIS2 Android 应用中使用。 |
-
将数据元素分配给项目阶段:
-
在“可用数据元素”列表中,双击 您要分配给项目阶段的数据元素。
-
对于每个分配的数据元素,查看属性。您可以 选择:
-
| Validation rule | 行动 |
|---|---|
| 必修 | 在完成该活动之前,必须在数据 录入表中填写此数据项的值。 |
| 允许在其他地方提供 | 请说明该数据元素的值是否来自其他 机构,而非输入该数据的机构。 |
| 在报表中显示 | 将该数据元素的值显示在单个事件中, 且无需注册数据录入功能。 |
| 未来日期 | 允许为日期数据元素选择未来日期。 |
| 跳过同步 | 允许在运行数据同步任务时跳过数据元素。 |
| 移动端渲染类型 | 可用于为移动设备选择不同的渲染类型。可用选项因属性的值类型而异。例如,对于数值,您可以选择“默认”、“值”、“滑块”、“线性刻度”和“旋转按钮”。 |
| 桌面渲染类型 | 警告:尚未实现。 可用于为桌面端(即 Web 界面)选择不同的渲染类型。 可用选项因属性的值类型而异。 例如,对于数值,您可以选择“默认”、“数值”、“滑块”、“线性刻度”和“旋转按钮”。 |
-
创建项目阶段的数据输入表单
数据输入表单决定如何将数据元素显示为 Capture 应用中的用户。
-
点击**创建数据输入表单**。
-
点击**基本**,部分**或**自定义。
-
要创建**基本**数据输入表单:拖放数据 元素按您想要的顺序排列。
-
要创建**部分**数据输入表单,请执行以下操作:
-
点击添加按钮,然后输入部分的名称,说明和 桌面设备和移动设备的渲染类型。
-
单击该部分,使其以黑色边框突出显示。
-
通过单击数据旁边的加号来添加数据元素 元素的名称。
-
重复上述步骤,直到获得所需的所有部分为止。
-
更改部分顺序:单击选项菜单,然后拖动 部分到您想要的地方。
-
-
要创建一个**自定义**数据输入表单:请使用所见即所得(WYSIWYG)编辑器来 创建一个完全定制的表单。如果您选择**来源**,则您 可以直接将HTML代码粘贴到编辑区域中。你也可以 插入图像,例如标志或徽标。
-
单击添加阶段。
访问¶
访问选项决定谁可以捕获项目数据或查看/编辑数据 项目的元数据。项目可以与组织单位共享, 另外,主项目和任何项目阶段的访问选项 可以通过**共享对话框**进行配置。访问选项是 在**访问权限**标签中可用。
分配组织单位:
-
在组织树中,双击您的组织单位 想添加到程序中。
您可以通过展开目录树来在树中找到组织单位 分支(单击箭头符号),或通过搜索 名称。所选组织单位显示为橙色。
更改角色和访问权限:
-
向下滚动到**角色和访问权限**部分。
第一行显示主项目的访问选项,每个 下一行显示一个项目阶段的选项。项目 带有警告图标(感叹号)的阶段包含访问选项 偏离主项目,这意味着它们可以通过 不同的用户组合。
-
单击任一行,将显示**共享对话框**。
-
相应地修改访问选项。请参阅有关 共享对话框以获取详细信息。
-
点击**应用**按钮。
-
对每个项目/项目阶段重复该过程。您也可以复制 从主项目到子项目的所有访问选项:
-
选择您想要具有类似访问权限的项目阶段 切换复选框,将其作为主项目 项目阶段的右侧。您也可以选择 **选择全部**项目阶段,**取消选择全部**项目阶段 或根据访问选项**选择类似**阶段,以 主项目。默认情况下会切换相似的阶段。
-
点击**应用于选定阶段**
-
创建项目通知¶
您可以通过注册和创建项目的项目通知 他们的计划阶段。通知通过内部发送 DHIS2邮件系统,通过电子邮件或文本消息(SMS)。您可以 使用项目通知,例如,将自动提醒发送给 预定约会前10天跟踪的实体。您使用 项目的跟踪实体属性(例如名字)和项目 参数(例如注册日期)以创建通知 模板。
-
打开**维护**应用项目,点击**项目,然后点击 通知**。
所选项目的现有项目通知列表 打开。如果该项目没有任何项目通知,则 列表为空。
-
Click on add button and select Program notification.
-
输入一个**名称**。
-
创建**主题模板**。
双击**“参数”**字段中的参数以将其添加 对你的主题。
Note
The subject is not included in text messages.
-
创建**消息模板**。
双击**“参数”**字段中的参数名称以添加 他们到您的消息。
亲爱的A {w75KJ2mc4zz}:您现在已注册V {program _name}。
-
在“何时发送”字段中,选择应触发该操作的 If either side is present, the other must not be
触发条件 描述 备注 项目注册 当TEI注册该项目时,将发送项目通知。 - 项目完成 当TEI的项目完成时,将发送项目通知。 - 预定天数(事件日期) 项目通知将在事件日期前或后XX天发送 您需要输入通知将在预定日期前或后多少天发送。 计划天数(注册日期) 项目通知将在注册日期前或后XX天发送 您需要输入通知将在计划日期前或后多少天发送。 项目规则 通知将因项目规则的执行而触发。 必须设置包含 ProgramRuleActionType.SENDMESSAGE 的程序规则,才能使此触发成功。 -
在“收件人”字段中,选择应接收该邮件的 项目通知。
收件人类型 | 说明 | 备注 | 收件人类型 | 说明 | 备注 |---|---|---| | 通过电子邮件或短信接收项目通知。| 要接收节目通知,收件人必须有电子邮件地址或电话号码属性。| | 组织单位联系人 | 通过电子邮件或短信接收项目通知。| 要接收项目通知,接收组织单位必须有注册联系人,并带有电子邮件地址和电话号码。| | 组织单位的用户:| 所有注册到所选组织单位的用户都会通过内部 DHIS2 消息系统接收计划通知。| - | | 用户组: | 所选用户组的所有成员都会通过 DHIS2 内部邮件系统接收节目通知。 | Limit To Hierarchy(限制到层次结构) | 仅向属于层次结构中任何一个组织单位的用户发送通知。| 此选项仅在用户组被选为收件人时可用。| | 仅向上级组织单位的用户发送通知。| 此选项只有在用户组被选为收件人时可用。| | 项目属性(Program Attribute) | TrackedEntityAttribute 也可以被选为收件人。| 该参数只有在 TrackedEntityAttribute 值类型为 PHONE_NUMBER/EMAIL 时才有效。|
-
点击**保存**。
创建项目阶段通知¶

-
打开**维护**应用项目,点击**项目,然后点击 通知**。
所选项目的现有项目阶段通知的列表 项目阶段打开。如果项目阶段没有任何项目 阶段通知,列表为空。
-
点击添加按钮,然后选择**项目阶段通知**。
-
点击**添加新**。
-
输入一个**名称**。
-
创建**主题模板**。
双击**参数**字段中的参数名称以添加 他们对你的主题。
Note
The subject is not included in text messages.
-
创建**消息模板**。
双击**“参数”**字段中的参数名称以添加 他们到您的消息。
亲爱的A {w75KJ2mc4zz},欢迎前来预约 V {due _date}。
-
在 何时发送 字段中,选择应由什么触发该 If either side is present, the other must not be
触发条件 描述 备注 计划阶段完成 当计划阶段完成时,将发送计划阶段通知 - 计划天数(截止日期) 计划阶段通知将在截止日期前或后 XX 天发送 您需要输入通知将在计划日期前或后多少天发送。 项目规则 通知将在项目规则执行后触发。 需配置包含 ProgramRuleActionType.SENDMESSAGE 的项目规则,才能使此触发器生效。 -
允许多次发送通知
如果需要多次发送通知,可使用此标志。例如,在可重复的程序阶段中,该通知将随着阶段的重复次数相应地多次发送。
-
-
在“收件人”字段中,选择应接收该程序的人员 阶段通知。您可以选择:
接收方类型 说明 备注 受追踪实体实例 通过电子邮件或短信接收项目通知。 要接收项目阶段通知,接收方必须拥有电子邮件地址或电话号码属性。 组织单位联系人 通过电子邮件或短信接收项目通知。 要接收项目阶段通知,接收方组织单位必须已注册一名拥有电子邮件地址和电话号码的联系人。
系统将选择与事件发生地相同的组织单位。组织单位中的用户: 选定组织单位中所有已注册的用户将通过 DHIS2 内部消息系统接收项目通知。 - 用户组 选定用户组的所有成员将通过 DHIS2 内部消息系统接收项目通知 - 限定为层级结构 仅向属于该层级结构中任何组织单元的用户发送通知。 - 仅父组织单元 仅向属于父组织单元的用户发送通知。 - 数据元素 可选择与 ProgramStage 关联的数据元素作为收件人。 数据元素仅在数据元素的值类型为 PHONE_NUMBER/EMAIL 时才有效。 受追踪实体属性 与项目实例/注册相关的受追踪实体属性可被选为收件人。 仅当属性的值类型为 PHONE_NUMBER/EMAIL 时,该属性才有效。 Web Hook Web Hook 是发送到在“Web Hook URL”字段中配置的外部 URL 的自动化 HTTP 消息。通知模板变量将作为键值对包含在 HTTP 请求中。 - -
点击**保存**。
参考信息:项目通知参数¶
表:项目通知中使用的项目通知参数
| 通知类型 | 变量名 | 变量代码 |
|---|---|---|
| IndicatorGroup | 当前日期 | V{current_date} |
| 自注册之日起的天数 | V{days_since_enrollment_date} | |
| 入学日期 | V{enrollment_date} | |
| 事件发生日期 | V{incident_date} | |
| 组织单位名称 | V{org_unit_name} | |
| 项目名称 | V{program_name} | |
| 组织单位 | 当前日期 | V{current_date} |
| 距预产期还有多少天 | V{days_since_due_date} | |
| 距离预产期还有X天 | V{days_until_due_date} | |
| 截止日期 | V{due_date} | |
| 组织单位名称 | V{org_unit_name} | |
| 项目名称 | V{program_name} | |
| 节目阶段名称 | V{program_stage_name} | |
| 活动组织单位 | V{event_org_unit_id} | |
| 招生组织单位 | V{enrollment_org_unit_id} | |
| 程序阶段 ID | V{program_stage_id} | |
| 项目 ID | V{program_id} | |
| 课程实例 ID/注册 ID | V{enrollment_id} | |
| 被追踪实体的ID | V{tracked_entity_id} | |
| 事件/执行日期 | V{event_date} |
配置项目指示器¶
关于计划指标¶
项目指示符是基于数据元素和属性的表达式 跟踪实体的数量,可用于基于 式。计划指标包括汇总类型,分析 类型,表达式和过滤器。
根据分配的汇总类型评估计划指标, 表达式和过滤器。评估顺序为:
-
- filter *将过滤成为 评估/汇总例程。
-
- expression *将针对每个事件进行评估。
-
所有评估的表达式值将根据以下条件进行*统计* 项目指示器的聚合类型。
表:项目指标构成
| 程序规则组件 | Parameter name |
|---|---|
| 不 | 聚合类型决定了程序指标的聚合方式。 可用的聚合类型如下: * 平均值 * 平均值(数量) * 平均值(数量,拆分) * 平均值(组织单位层次结构中的总和) * 平均值(数量之和) * 平均值(数量之和,拆分) * 平均值(是/否) * 计数 * 自定义 “自定义”聚合类型允许您在表达式中内联指定聚合类型。 所有其他聚合类型均应用于整个表达式。 使用“自定义”聚合类型可能会导致上述评估顺序出现异常,即表达式的各个部分可能会被单独评估和聚合,而不是在聚合之前先评估整个表达式。 * 默认值 * 最大值 * 最小值 * 无 * 标准差 * 求和 * 方差 |
| 分析类型 | 可用的分析类型为 事件 和 注册。 分析类型决定了项目指标是基于事件还是项目注册情况进行计算的。这会影响可进行的计算类型。 * “事件”指数据源中每个事件都作为独立行存在。这适用于执行计数和求和等聚合操作。 * “注册”指数据源中同一注册的所有事件被合并到同一行上。这允许进行计算,以便比较同一注册内不同项目阶段的事件数据。 |
| 组织单位字段 | 确定将哪个组织单位分配给项目指标值。 对于活动项目(无注册),选项包括: * 活动组织单位(默认):活动举办地 * 分配给该项目的任何值类型为“组织单位”的数据元素(如有) 对于追踪器项目(含注册)和分析类型为*Enrollment*的项目,选项包括: * 注册组织单位:被追踪实体实例的创建地点 * 注册组织单位(默认):被追踪实体实例注册加入该计划的地点 * 起始所有者组织单位:在报告期开始时,被追踪实体实例所属的组织单位 * 期末所有者组织单位:被追踪实体实例在报告期结束时所属的组织单位 对于“追踪器”计划(含注册)和分析类型为*事件*的情况,选项包括: * 事件组织单位(默认):事件发生地 * 分配给该计划的任何值类型为“组织单位”的数据元素(如有) * 注册组织单位:被追踪实体实例的创建地 * 入读组织单位:被追踪实体实例加入该计划的地点 * 报告期初所有者组织单位:报告期初被追踪实体实例所属的组织单位 * 报告期末所有者组织单位:报告期末被追踪实体实例所属的组织单位 |
| 分析时段的边界 | 定义计划指标计算的边界。边界决定了哪些事件或注册人数会被包含在汇总中,并始终与汇总报告期的开始和结束相对应。创建计划指标时,会根据分析类型预选默认边界。 * 对于*事件*分析类型,默认边界将被配置为包含事件日期在报告期开始之后和报告期结束之前的任何事件。 * 对于*注册*分析类型,默认边界将包含所有注册日期在报告期开始之后、报告期结束之前的注册。此外,默认的注册计划指标会评估所有计划阶段的最新事件,无论日期如何。 可以更改上下限,以包括相对于报告期更长或更短的时间段,或删除其中一个界限--实际上是返回某个时间段之前或之后的所有数据。还可以添加更多的限制条件,例如,使注册计划指标只包括截至给定时间点的事件数据。 * 边界目标:可以是*事件日期*、事件日期、注册日期*或*自定义。指定边界限制的内容。 自定义*用于使边界以日期数据元素、跟踪实体属性或项目阶段的事件存在为目标。这是通过表单上的自定义表达式实现的: - 日期类型数据元素:#{programStageUid.dataElementUid}. #{A03MvHHogjR.a3kGcGDCuk6}- 日期类型的跟踪实体属性:#{attributeUid}. A{GPkGfbmArby}- 在特定项目阶段存在一个事件:PS_EVENTDATE:programStageUid。 PS_EVENTDATE:A03MvHHogjR注 此边界目标仅适用于分析类型注册 * 分析周期边界类型:定义边界是结束边界 - 以 "之前...... "开始,还是开始边界 - 以 "之后...... "开始。还定义了边界是与总体报告期的结束有关,还是与总体报告期的开始有关。 * 按金额抵消期间:在某些情况下,例如队列分析,在运行数据透视和报告时,边界应相对于总体报告期进行偏移。按金额偏移周期用于在时间上将当前边界后移(负值)或前移(正值)。金额和期间类型将共同决定偏移量的大小。例如,在制作一个简单的 1 年入学队列计划指标时,可以用"-1 "和 "年 "来抵消计划指标的每个边界 * 期间类型:见上文。可以是任何时期,如 *Weekly 或 Quarterly。 |
| 以目标取代源 | 该表达式定义了指标的计算方式。表达式中可包含对各类实体的引用,在计算指标时,这些引用将被相关值替换: * 数据元素:将被替换为用于计算的该时间段和组织单位对应的数据元素的值。 同时指代项目阶段和数据元素。 * 属性:将被替换为进行计算时所针对的人员/追踪实体的属性值。 * 变量:将被替换为与项目相关的特殊值,包括该人员的事件发生日期和入组日期,以及用于计算的特定时间段和组织单位内的当前日期和表达式中值的计数。 * 常量:将被替换为该常量的值。 表达式为数学表达式,也可包含运算符。 对于单次事件计划以及分析类型为 event 的跟踪器计划,该表达式将按 每次事件 进行计算,然后根据其聚合类型进行聚合。 对于分析类型为 enrollment 的跟踪器计划,该表达式将按 每次注册 进行计算,然后根据其聚合类型进行聚合。 |
| 过滤 | 筛选器应用于事件,并筛选用于计算指标的数据源。也就是说,过滤器应用于指标表达式求值前的事件集。该过滤器必须为 "true "或 "false"。过滤器应用于每个事件。如果过滤器返回值为 "true",则该事件将包含在后面的表达式评估中,否则将被忽略。与表达式类似,过滤器也可以包含对数据元素、属性和常量的引用。 此外,项目指示符过滤器还可以使用逻辑运算符。这些运算符可用于形成逻辑表达式,最终评估结果为真或假。例如,您可以断言多个数据元素必须是一个特定值,或者特定属性的数值必须小于或大于一个常量。 |
在**维护**应用项目中,您可以管理以下项目指示器 对象:
| CSV元数据导入 { #webapi_csv_metadata_import } | 可用功能 |
|---|---|
| <dataelement-id> | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
| 项目指标组 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
创建或编辑项目指示器¶
注意
项目指示器完全属于一个项目。
-
打开** Maintenance 应用项目,然后单击 Indicator ** > ** Program 指示符**。
-
点击添加按钮。
-
Select a Program and enter:
-
名称
-
简称
-
码
-
颜色
-
图标
-
描述
- Select number of Decimals in data output.
-
-
Select an Aggregation type.
-
如果希望**在表单中显示**,请勾选此选项。
-
Assign one or multiple **Legend**s.
-
(可选)输入汇总数据的** Category选项组合 出口**。
-
(可选)输入汇总的**属性选项组合 数据导出**。
-
创建表达式。
-
点击**编辑表达式**。
-
根据数学运算符和 属性,变量和常量在右侧列出。
-
-
创建过滤器。
-
点击**编辑过滤器**。
-
根据数学运算符和 属性,变量和常量在右侧列出。
-
-
点击**保存**。
创建或编辑项目指示器组¶
-
打开** Maintenance 应用项目,然后单击 Indicator ** > ** Program 指标组**。
-
点击添加按钮。
-
Enter Name and Code.
-
在可用项目指示符列表中,双击 您要分配给组的项目指示器。
-
点击**保存**。
参考信息:每种值类型的表达式和过滤器示例¶
下表显示了如何编写表达式和过滤器的示例 对于不同的数据元素和属性值类型:
表:按值类型划分的表达式和过滤器示例
| 值类型 | 语法示例 |
|---|---|
| 整数 负整数 正整数或零整数 正整数 数字 百分比 | 数值字段可用于聚合(作为表达式)或在筛选器中使用:#{mCXR7u4kNBW.K0A4BauXJDl} >= 3 |
| 是/否 仅限“是” | 布尔字段。“是”被转换为数值 1,“否”被转换为数值 0。可作为表达式用于聚合,或在筛选器中使用:#{mCXR7u4kNBW.Popa3BauXJss} == 1 |
| 文本 长文本 电话号码 电子邮件 | 文本字段。可在筛选器中检查其是否相等:#{mCXR7u4kNBW.L8K4BauIKsl} == 'LiteralValue' |
| 日期 年龄 | 日期字段。与 d2:daysBetween 函数结合使用时最有用,该函数可生成可聚合为表达式或在过滤器中使用的数字:d2:daysBetween(#{mCXR7u4kNBW.JKJKBausssl},V{enrollment_date}) >100 也可以直接检查过滤器中的相等性: #{mCXR7u4kNBW.JKJKBausssl} == '2011-10-28' |
参考信息:在项目指示器表达式和过滤器中使用的函数,变量和运算符¶
包含属性,数据元素和常量的表达式 看起来像这样:
(A {GPkGfbmArby} +#{mCXR7u4kNBW.NFkjsNiQ9PH})* C {bCqvfPR02Im}
使用自定义聚合类型的表达式,因此可以使用 内联聚合类型看起来像 这个:
(sum(#{mCXR7u4kNBW.K0A4BauXJDl} *#{mCXR7u4kNBW.NFkjsNiQ9PH})/ sum(#{mCXR7u4kNBW.NFkjsNiQ9PH})))* 100
注意在表达式内部如何使用“ sum”聚合运算符 本身。
在项目指示表达式或过滤器中添加注释{ #adding-comments-in-program-indicator-expression-or-filter }¶
单行和多行注释均支持统一的语法
d2:hasValue(#{mCXR7u4kNBW.NFkjsNiQ9PH}) /* 这是注释 */
d2:hasValue(#{mCXR7u4kNBW.NFkjsNiQ9PH}) && /* 这是
注释 */
d2:daysBetween(V{enrollment_date},PS_EVENTDATE:mCXR7u4kNBW)
项目指示符表达式或过滤器中使用的函数¶
项目指示符表达式和过滤器支持以下范围 职能。这些函数可以应用于数据元素和属性:
表格在项目指示表达式或过滤器中使用的函数
| 功能 | size | Parameter name |
|---|---|---|
| d2:hasValue | (对象) | 如果数据元素/属性有值,则返回 true。可在过滤器中使用该方法,以区分数字 0 与无值的情况,以及在“是/否”字段中区分明确的“否”与未作选择的情况。 |
| d2:minutesBetween | (日期时间, 日期时间) | 生成 "日期和时间 "类型的两个数据元素/属性之间的分钟数。当第一个参数 datetime 在第二个参数 datetime 之前时,数字为正数,反之则为负数。静态日期时间格式为 "yyyy-MM-dd hh:mm"。任何参数都可以用 PS_EVENTDATE:(programStageUid)替换,以比较给定项目阶段的最新事件日期。 |
| d2:daysBetween | (日期, 日期) | 计算两个日期类型数据元素/属性之间的天数。当第一个参数日期在第二个参数日期之前时,数字为正数,反之则为负数。静态日期格式为 "yyyy-MM-dd"。任何参数都可以用 PS_EVENTDATE:(programStageUid)替换,以比较给定项目阶段的最新事件日期。 |
| d2:星期之间 | (日期, 日期) | 计算两个日期类型的数据元素/属性之间的整周数。当第一个参数日期在第二个参数日期之前时,数字为正数,反之则为负数。静态日期格式为 "yyyy-MM-dd"。任何参数都可以用 PS_EVENTDATE:(programStageUid)替换,以比较给定项目阶段的最新事件日期。 |
| d2:monthsBetween | (日期, 日期) | 计算两个日期类型数据元素/属性之间的整月数。当第一个参数日期在第二个参数日期之前时,数字为正数,反之则为负数。静态日期格式为 "yyyy-MM-dd"。任何参数都可以用 PS_EVENTDATE:(programStageUid)替换,以比较给定项目阶段的最新事件日期。 |
| d2:年之间 | (日期, 日期) | 生成两个日期类型数据元素/属性之间的整年数。当第一个参数日期在第二个参数日期之前时,数字为正数,反之则为负数。静态日期格式为 "yyyy-MM-dd"。任何参数都可以用 PS_EVENTDATE:(programStageUid)替换,以比较给定项目阶段的最新事件日期。 |
| d2:条件 | (布尔表达式, 真表达式, 假表达式) | 对布尔表达式进行求值,若为 true 则返回 true 表达式的值,若为 false 则返回 false 表达式的值。条件表达式必须加引号。true-expr 和 false-expr 参数必须遵循任何项目指示表达式(包括函数)的规则。 |
| d2:zing | (表达式) | 如果表达式为负值,则返回零,否则返回表达式值。表达式必须遵循任何项目指示表达式(包括函数)的规则。 |
| d2:oizp | (表达式) | 如果表达式为 0 或正,则返回 1,否则返回 0。表达式必须遵循任何项目指示表达式(包括函数)的规则。 |
| d2:zpvc | (对象, [,对象 ...]) | 返回给定对象参数中数字零和正值的数量。可以提供任意数量的参数。 |
| d2:关系数量 | ([relationshipTypeUid]) | 返回与该注册或活动相关联的指定类型关系数量。若未指定类型,则统计所有类型。 |
| d2:计数 | (dataElement) | 仅适用于注册流程指标。统计在注册过程中,针对给定的流程阶段和数据元素已收集的数据值数量。数据元素参数采用 #{programStage.dataElement} 语法提供。 |
| d2:countIfValue | (dataElement, value) | 仅适用于注册计划指标。统计在注册过程中,给定计划阶段和数据元素中与给定字面值匹配的数据值数量。 数据元素参数采用 #{programStage.dataElement} 语法提供。该值可以是硬编码的文本或数字,例如 'No_anemia',若仅需统计包含此文本的值。 |
| d2:countIfCondition | (数据元素, 条件) | 仅适用于注册计划指标。统计在注册过程中,针对给定的计划阶段和数据元素,符合给定条件标准的数据值数量。 数据元素参数采用 #{programStage.dataElement} 语法提供。条件以单引号括起的表达式形式提供,例如,若仅需统计小于 10 的值,则为 '<10'。 |
| 如果 | (布尔表达式, 真表达式, 假表达式) | 评估布尔表达式,若为真则返回表达式的真值,若为假则返回表达式的假值。这与 d2:condition 函数完全相同,唯一区别在于布尔表达式(boolean-expr)未加引号。 |
| 是 | (表达式中的表达式1 [, 表达式 ...]) | 如果 expr1 与以下任一表达式相等,则返回 true;否则返回 false。 |
| 一片空白 | (对象) | 如果对象值为空(null),则返回 true;否则返回 false。 |
| isNotNull | (对象) | 如果对象值不为缺失(不为空),则返回 true;否则返回 false。 |
| firstNonNull | (对象 [, 对象 ...]) | 返回第一个不为空(not null)的对象的值。可以提供任意数量的参数。任何参数也可以是数字或字符串字面量,如果所有之前的对象都有缺失值,则将返回该参数。 |
| 最伟大的 | (表达式 [, 表达式 ...]) | 返回所给表达式的最大(最高)值。可提供任意数量的参数。每个表达式必须遵循任何项目指示表达式(包括函数)的规则。 |
| 最小 | (表达式 [, 表达式 ...]) | 返回给定表达式中最小(最低)的值。可提供任意数量的参数。每个表达式必须遵循任何项目指示表达式(包括函数)的规则。 |
| 日志 | (表达式 [, 底数 ]) | 返回数值表达式的自然对数(底为 e)。如果将一个整数作为第二个参数传入,则返回以该底为底的对数。 |
| log10 | (表达式) | 返回数值表达式的常用对数(底为 10)。 |
使用“ hasValue”函数的过滤器如下所示:
d2:hasValue(#{mCXR7u4kNBW.NFkjsNiQ9PH})
使用“ relationshipCount(relationshipTypeUid)”函数的过滤器如下所示:
d2:relationshipCount('KLkjshoQ90U')
使用“is( x in y, z )”函数的过滤器如下所示:
is(#{oahc9ooVema} in 'New', 'Relapse')
使用“ zing”和“ oizp”函数的表达式如下所示:
d2:zing(A {GPkGfbmArby})+ d2:oizp(#{mCXR7u4kNBW.NFkjsNiQ9PH}))
使用“ daysBetween”函数的表达式如下所示:
d2:daysBetween(#{mCXR7u4kNBW.k8ja2Aif1Ae},'2015-06-01')
使用“ yearBetween”函数将项目阶段“ mCXR7u4kNBW”的最新事件与注册日期进行比较的表达式如下所示:
d2:daysBetween(V {enrollment_date},PS_EVENTDATE:mCXR7u4kNBW)
使用“条件”函数的表达式如下所示:
d2:condition('#{mCXR7u4kNBW.NFkjsNiQ9PH}> 100',150,50)
使用“ countIfValue”函数的表达式仅计算收集值10的次数,如下所示:
d2:countIfValue(#{mCXR7u4kNBW.NFkjsNiQ9PH}),10)
使用“ zpvc”函数的表达式如下所示:
d2:zpvc(A {GPkGfbmArby}),#{mCXR7u4kNBW.NFkjsNiQ9PH}),4,-1)
使用“ if”和“ isnull”函数的表达式如下所示:
if(isNull(A {GPkGfbmArby}),10,20)
使用“ firstNonNull”函数的表达式如下所示:
firstNonNull(A {GPkGfbmArby}),#{mCXR7u4kNBW.NFkjsNiQ9PH},44)
使用“最大”函数的表达式如下所示:
最好的(#{mCXR7u4kNBW.k8ja2Aif1Ae},#{mCXR7u4kNBW.NFkjsNiQ9PH},1)
项目指示符表达式或过滤器中使用的变量¶
项目指示符表达式和过滤器支持以下范围 变量:
表格在项目指示表达式或过滤器中使用的变量
| #{<programstage-id>.<dataelement-id>} | Parameter name |
|---|---|
| event_date | 该事件或注册中最后一次事件发生的日期。 |
| creation_date | 在系统中创建事件或注册的日期。 |
| due_date | 事件到期的日期。 |
| sync_date | 事件或注册最后一次与Android应用项目同步的日期。 |
| incident_date | 事件发生的日期。 |
| enrollment_date | 跟踪的实体实例在项目中注册的日期。 |
| enrollment_status | 可用于包含或排除处于特定状态的登记记录。 在计算整个孕期血红蛋白水平的改善/恶化情况时,仅考虑已完成的随访数据可能更为合理。如果未过滤掉未完成的随访数据,这些数据将代表半途而废的产前检查随访,其最终的改善/恶化情况尚无法确定。 |
| current_date | 当前日期。 |
| value_count | 事件的表达式部分中非空值的数量。 |
| zero_pos_value_count | 事件的表达式部分中的正数值。 |
| event_count | 事件计数(与筛选器结合使用)。项目指标的聚合类型必须是 COUNT。 |
| enrollment_count | 注册人数(与筛选条件结合使用时非常有用)。该课程指标的聚合类型必须设置为 COUNT。 |
| tei_count | 跟踪实体实例的计数(与筛选器结合使用时非常有用)。项目指标的聚合类型必须是 COUNT。 |
| org_unit_count | 组织单位的计数(与过滤器结合使用时非常有用)。该程序指标的聚合类型必须为 COUNT。 |
| program_stage_name | 可在筛选器中使用,以便在跟踪项目的筛选器中只包含某些项目阶段。使用项目阶段的名称:V{program_stage_name} == 'ANC first visit' |
| program_stage_id | 可在筛选器中使用,以便在跟踪项目的筛选器中只包含某些项目阶段。使用项目阶段的唯一标识符:V{program_stage_id} == 'YPSSfbmAtt1' |
| analytics_period_start | 可用于筛选器或表达式中,用于将任意日期与每个报告期间的起始日期进行比较。d2:daysBetween(#{WZbXY0S00lP.w4ky6EkVahL}, V{analytics_period_start}) |
| analytics_period_end | 可以在过滤器或表达式中使用,以将任何日期与每个报告期间的最后一个包含日期进行比较。 |
| event_status | 可用于过滤器或表达式中,用于比较事件状态。V{event_status} == 'COMPLETED' |
| completed_date | 包含该事件的完成日期。如果该事件尚未完成,则“completed_date”为空。 |
使用“ Analytics(分析)期末”变量的过滤器仅包含 拥有LMP的女性 三个月:
d2:daysBetween(#{WZbXY0S00lP.w4ky6EkVahL},V {analytics_period_end})<= 84
使用“值计数”变量的表达式看起来像 这个:
(#{A03MvHHogjR.a3kGcGDCukuk6} +#{A03MvHHogjR.wQLfBvPrXqq})/ V {value_count}
使用“ event _date”和“ incident _date”变量的表达式 看起来像这样:
d2:daysBetween(V {incident_date},V {event_date})
操作员要在项目指示器过滤器中使用¶
表:在项目指示器过滤器中使用的运算符
| 所需值 | Parameter name |
|---|---|
| 以及 | 逻辑与 |
| 或 | 逻辑或 |
| == | /api/analytics/events/query/IpHINAT79UW?stage=A03MvHHogjR&startDate=2016-03-01 |
| &endDate=2016-12-31&dimension=ou:O6uvpzGd5pu&dimension=UXz7xuGCEhU:GT:2000 | |
| != | /api/analytics/events/query/eBAyeGv0exc?startDate=2016-01-01&endDate=2016-10-31 |
| &dimension=ou:O6uvpzGd5pu&dimension=qrur9Dvnyt5&desc=EVENTDATE&asc=qrur9Dvnyt5 | |
| < | 字符串、布尔值、整数、浮点、集合(检查大小)、日期 |
| <= | Filter by AGE is not null |
| > | 字符串、布尔值、整数、浮点、集合(检查大小)、日期 |
| >= | 您可以使用以下方法过滤多个特定年龄的“年龄”数据元素 |
| 像这样的 IN 运算符: |
这些运算符可用于形成逻辑表达式,最终 评估为真或假。例如,您可以断言 多个数据元素必须是一个特定的值,或者那个特定的 属性的数值必须小于或大于常数。
同时使用属性和数据元素的过滤器如下所示:
A {cejWyOfXge6} =='Female'和#{A03MvHHogjR.a3kGcGDCuk6} <= 2
提示
DHIS2正在使用JEXL库来评估表达式 支持超出此范围的其他语法 文档。请参阅[项目首页中的参考 页面](http://commons.apache.org/proper/commons-jexl/reference/syntax.html) 了解如何创建更复杂的表达式
设置新的项目细分映射{ #program_disaggregation_mapping }¶
DHIS2 v42 引入了将“细分类别组合”分配给项目指标的功能,并可在项目数据与该组合中包含的每个类别选项之间建立映射关系。这在追踪器与汇总数据模型之间建立了关联,从而能够以相同的方式分析单个数据,并将其与汇总数据一同进行分析。


在项目级别定义的“项目指标细分”映射,建立了DHIS2中两个数据模型之间的关联。这最终使用户能够在“数据可视化工具”中,通过单一的项目指标生成项目数据的细分视图,而此前则需要为每种细分分别设置一个指标。

-
安装或更新新的“维护”应用(预览版)
如果您的实例尚未安装新版维护应用,请转到“应用管理”应用,在“应用中心”中搜索“维护”,然后安装该应用。如果您已经安装了该应用,则应将其更新至最新版本。该应用会持续发布更新,因此请确保您使用的是最新版本。

注意:截至您阅读本文时,版本 0.63.0 可能已被更新版本取代,请更新至最新版本 -
通过在“其他”部分中选择“项目细分”,或浏览至 yourinstanceurl/apps/maintenance-preview#/programDisaggregations/,加载“维护(预览)”应用中的“项目细分”部分。

项目细分界面 -
从下拉菜单中选择一个项目以进入编辑区域并添加映射;在本例中,我们将使用**“住院患者发病率与死亡率”**项目
-
这将加载“程序指示符映射和类别定义”屏幕

程序指示器选择 -
从下拉列表中选择一个项目指标,本例中我们将使用 BMI
-
在“分类组合”下,选择 性别和5岁以下(如果不存在,您可能需要创建一个包含 性别 和 5岁以下/5岁及以上 这两个分类的新分类组合)

加载此类别组合后,将显示每个已定义类别的“映射”下拉菜单;由于这是首次选择这些类别,因此目前尚无可用映射。
- 在“分类细分”部分,您应该会看到组合中的两个分类均作为建议显示。请分别点击**“添加分类”,将“性别”和“5岁以下儿童”**添加进去。

创建类别映射{ #create-the-category-mappings }¶
- 在每个“类别”下方的文本框中,使用程序数据元素和属性输入一个表达式来定义该类别。 该表达式使用的语法与“程序指标”创建界面的“筛选”部分相同。建议在您正在映射的程序中打开一个“程序指标”,使用“筛选”界面构建表达式,然后将其复制到此字段中。这样,您就可以利用“程序指标”筛选器构建器内置的表达式验证功能。 程序指示符的功能和变量运算符

此示例将程序中**性别**数据元素中选定的值与类别选项相关联。由于此处的选项集是一个文本字段,因此该表达式被设置为匹配文本“Female”。接下来的关于年龄的示例展示了定义该关系的一种不同方式。

要为“5岁以下”和“5岁及以上”添加映射关系,由于这是一个数值字段,您可以使用运算符 `>`、`>=`、`<`、`<=`、`==` 和 `!=` 来定义关系。

-
当所有类别选项的映射都完成后,请点击“保存”并退出
-
开放数据可视化工具,首先让我们看看这些数据之前是如何展示的。为此,请创建一个可视化图表,展示现有5个项目指标的数据,并采用如下所示的内置细分方式。


-
现在,请移除那4个带有具体分类的方案指标,仅保留BMI方案指标。

-
现在,您可以从“项目指标”的“您的维度”列中添加**性别**和**5岁以下/5岁及以上**作为分类维度,点击“更新”即可查看结果。

现在,您可以比较这两个独立的项目指标与该已细分后的单一项目指标所提供的数据。
通过“聚合数据交换”应用传输项目指标数据{ #transferring-program-indicator-data-via-the-aggregate-data-exchange-app }¶
除了在“数据可视化工具”中查看细分的项目指标外,您现在还可以通过该细分项目指标,将项目数据导入到具有相同类别组合的数据元素中。

通过在**用于汇总数据导出的数据元素**字段中添加数据元素的 ID,然后配置汇总数据交换应用*以传输数据,您可以将程序数据保存到汇总数据模型中。

配置项目规则¶
关于计划规则¶
程序规则可让您在 Capture 应用中创建和控制用户界面的动态行为。 在数据录入过程中,每次 显示用户界面时,以及每次数据元素 发生更改时,都会对程序规则表达式进行求值。当用户在 Capture 应用中输入值时,大多数类型的操作都会立即生效。
表:程序规则组成部分
| 程序规则组件 | Parameter name |
|---|---|
| Table: Reserved values | 每个项目规则都包含一个或多个动作。当表达式为真时,用户界面会触发这些行为。如果表达式为真,操作将立即应用;如果表达式不再为真,操作将被还原。操作有多种类型,您可以在一个项目规则中包含多个操作。 |
| 项目规则表达式 | 每个项目规则都有一个表达式,如果表达式求值为 "true",则该表达式决定是否触发项目规则的操作。如果表达式为 true,项目规则生效,操作将被执行。如果表达式为假,则项目规则不再生效,操作也不再应用。 您可以使用标准数学运算符、自定义函数、用户定义的静态值和项目规则变量创建表达式。项目规则变量代表属性和数据元素值,将作为表达式的一部分进行评估。 |
| 项目规则变量 | 项目规则变量可让你在项目规则表达式中包含数据值和属性值。通常情况下,在创建项目规则之前,你必须创建一个或多个项目规则变量。这是因为项目规则表达式通常至少包含一个数据元素或属性值,这样才有意义。 项目规则变量在项目中的所有规则之间共享。当你为同一个项目创建多个项目规则时,这些规则将共享同一个项目规则变量库。 |
在**维护**应用项目中,您可以管理以下项目规则 对象:
| CSV元数据导入 { #webapi_csv_metadata_import } | 可用功能 |
|---|---|
| 程序规则 | 创建、编辑、克隆、删除、查看详情和翻译 |
| 项目规则变量 | 创建、编辑、克隆、分享、删除、查看详情和翻译 |
工作流程¶
-
在** Maintenance **应用项目中,如果需要,请创建项目规则变量 需要。
-
In the Maintenance app, create the program rule:
-
输入项目规则详细信息。
-
创建项目规则表达式。
-
定义项目规则操作。
-
-
在 Capture 应用中,请确认 项目规则的行为符合预期。
创建或编辑项目规则变量¶
-
打开**维护**应用项目,点击**项目** (> 项目规则 变量。
-
点击添加按钮。
-
选择**项目**并输入**名称**
请注意,程序名称中不得包含以下任何被排除的关键词: -
和-或-not -
Select if you want to Use code for option set.
仅当数据元素或已跟踪时,此选项才有效 实体属性连接到选项集。如果不选择 此选项时,项目规则变量将填充 选项集的名称。如果选择该选项,则项目规则 变量将使用选项集的代码填充。
-
选择**来源类型**,然后输入所需信息。
根据来源类型,您必须选择例如 项目阶段****数据元素**或**跟踪实体属性。
源类型确定项目规则变量的方式 填充一个值。
源类型 描述 来自某个程序阶段最新事件的数据元素 该源类型的工作方式与 来自当前程序最新事件的数据元素 相同,区别仅在于它仅评估来自一个程序阶段的值。
当同一数据元素在多个项目阶段中被使用,且规则需要评估某个特定阶段内最新的数据值时,此数据源类型在项目规则中会非常有用。
为了确定哪个事件是最新的,系统会使用报告日期(事件日期)。 如果有多个事件的报告日期相同,系统将选择其中“createdAt”属性时间最晚的事件。来自当前计划中最新事件的数据元素 当计划规则变量需要反映数据元素的最新已知值时,无论用户当前打开的是哪个事件,均可使用此数据源类型。
对于追踪计划和事件计划,此数据源类型的填充方式略有不同:
追踪计划:计划规则变量将填充该注册中针对给定数据元素收集到的最新数据值。
事件计划:计划规则变量将填充当前事件的数据。
注意 未来日期比当前或过去日期“更近”。
为了确定哪个事件是最新的,系统会使用报告日期(事件日期)。如果有多个事件的报告日期相同,系统会选择其中“createdAt”属性时间最晚的事件。当前事件中的数据元素 具有此数据源类型的程序规则变量将包含用户当前打开的同一事件中的数据值。
这是最常用的数据源类型,特别适用于跳转逻辑(隐藏操作)和警告/错误规则。来自上一个事件的数据元素 具有此源类型的程序规则变量将包含来自上一个事件中指定数据元素的值。 仅评估较早的事件,不包括用户当前打开的事件。
当某个数据元素在注册过程中仅需收集一次,且在后续事件中应被隐藏时,通常使用此源类型。
另一个用例是制定输入验证规则,其中需要从一个事件到下一个事件的预期进展——规则可以评估前一个值是更高还是更低,并在输入意外值时发出警告。计算值 具有此源类型的程序规则变量不会直接连接到任何表单数据——但会作为其他程序规则中 ASSIGN 操作的结果而被填充。
该变量将用于进行初步计算;通过**ASSIGN**程序规则操作进行赋值后,该值可被其他程序规则使用——这可能使表达式更简洁且更易于维护。
这些变量不会被持久化,仅在该组程序规则执行期间保留在内存中。 任何将数据值赋给预计算值的程序规则通常也会被分配一个 优先级 ——以确保在消耗该计算值的规则执行之前,先完成预计算。受追踪实体的属性 将当前注册的指定受追踪实体属性填入程序规则变量中。
使用此源类型可创建用于评估注册过程中输入的数据值的程序规则。
此源类型在创建将事件中的数据与注册过程中输入的数据进行比较的程序规则时也很有用。
此源类型仅用于跟踪器项目(带有注册功能的项目)。 -
点击**保存**。
创建或编辑项目规则¶
注意
项目规则完全属于一个项目。
-
打开** Maintenance 应用项目,然后单击 Program ** > ** Program 规则**。
-
点击添加按钮。
-
输入项目规则详细信息。这些字段未显示给 最终用户,它们仅适用于项目管理员。
-
项目
-
仅适用于计划阶段的触发规则
如果选择了项目阶段,则该项目规则将仅对所选项目阶段运行, 而不是针对项目中的每个项目阶段运行。
-
名称
-
描述
-
优先
假设您的项目中有16条项目规则。您 使用以下优先级配置项目规则 设置:
-
项目规则A的优先级1
-
计划规则B-K的优先级2
-
项目规则L-P没有优先级
结果:系统运行以下项目规则 订购:
-
计划规则A
-
项目规则B-K(您无法在其中找到或配置 系统运行这些项目规则的顺序)
-
项目规则L-P。
-
-
-
单击 输入项目规则表达式,创建项目规则 借助变量,函数和运算符进行表达。
-
单击**定义项目规则操作**并创建操作 当表达式为真时执行。
-
点击“添加”按钮,选择一个**操作**,然后输入 需要的信息。
根据操作类型,您必须执行不同的操作 设置类型。对于某些操作类型,还必须输入 自由文本或创建表达式。
操作类型 必填设置 说明 赋值 需赋值的数据元素
需赋值的受监视实体属性
需赋值的程序规则变量
需评估并赋值的表达式用于帮助用户计算并填写数据输入表单中的字段。 其设计理念是,用户无需手动填写系统可自动计算的数值,例如BMI。
当字段被赋值后,用户可见该值但无法编辑。
注意:要为受追踪实体的属性赋值,用户需要打开该受追踪实体的配置小部件,以便触发规则。
来自赞比亚免疫接种库存卡的示例:疫苗库存期末余额的数据元素是根据库存期初余额的数据元素减去消耗量和损耗量的数据元素计算得出的。
高级用法:配置“赋值”操作来执行部分计算,然后将计算结果赋值给程序规则变量。这就是“计算值”程序规则变量的用途。显示文本 显示控件
静态文本
在静态文本后进行求值并显示的表达式用于显示非错误或警告类的信息,例如对用户的反馈。 您还可以使用此操作向用户显示重要信息,例如患者的过敏史。 显示键/值对 显示控件
键标签
要评估并作为值显示的表达式用于显示既非错误也非警告的信息。
示例:计算怀孕的周数和天数,并以临床医生习惯的格式显示。计算基于先前记录的数据。完成时出错 需在旁边显示错误的数据元素
****需在旁边显示错误的受追踪实体属性**
静态文本
静态文本后需评估并显示的表达式用于表单中存在必须严格遵守的交叉一致性要求时。此操作会在错误解决前阻止用户继续操作。
此操作与常规的 显示错误 不同,因为只有当用户尝试实际提交表单时,错误才会显示。
如果您未选择要显示错误信息的数据元素或受跟踪实体属性,请确保编写一条详尽的错误消息,以帮助用户修正错误。隐藏字段 要隐藏的数据元素
要隐藏的受追踪实体属性
针对被清空字段的自定义消息用于向用户隐藏某个字段。
针对被清空字段的自定义提示信息 允许您定义一条自定义提示信息,当程序规则在用户输入或选择值后隐藏并清空该字段时,该信息将显示给用户。
如果“隐藏字段”操作隐藏的字段中已包含值,则该字段将始终被移除。 如果未定义消息,系统将显示标准消息以提醒用户。隐藏部分 要隐藏的程序阶段部分 用于希望向用户隐藏程序阶段中的某个部分时。 禁止向阶段添加新事件 用户无法向该程序阶段添加新事件 用于不希望用户向某个程序阶段再添加任何事件的情况。 现有事件不会被隐藏。 将字段设为必填 要设为必填的数据元素
要设为必填的受追踪实体属性用于将数据元素或受追踪实体属性设为必填,即在表单保存前必须填写这些内容。 显示错误 需在旁边显示错误的数据元素
需在旁边显示错误的受追踪实体属性
静态文本
在静态文本后进行评估并显示的表达式用于必须严格遵守规则的情况。 “显示错误”操作会阻止用户继续操作,直到错误得到解决。
此类严格的验证仅应在确定所评估的表达式绝不会为真(除非用户在数据输入时出错)的情况下使用。
当表达式为真且触发该操作时,必须定义一条向用户显示的消息。
您可以选择将错误关联到哪个数据元素或受跟踪实体的属性。这将有助于用户修复错误。
如果涉及多个数据元素或属性,请选择用户最有可能需要修改的那一个。显示警告 需在旁边显示警告的数据元素
需在旁边显示警告的受追踪实体属性
静态文本
需评估并在静态文本后显示的表达式用于就用户输入的数据向其发出警告,但同时允许用户保存并继续操作。
您可以使用警告来帮助用户避免在输入数据时出错,同时允许用户有意识地忽略警告,并保存超出预设预期的值。
静态文本 定义了当表达式为真且触发操作时向用户显示的消息。
您可以选择将错误与哪个数据元素或受追踪实体的属性关联。这将有助于用户修复错误。
如果涉及多个数据元素或属性,请选择用户最有可能需要修改的那一个。完成时的警告 需在旁边显示警告的数据元素
****需在其旁边显示警告的受追踪实体属性**
静态文本
静态文本后需评估并显示的表达式用于在用户尝试提交不一致的数据时向其发出警告,但同时允许用户继续操作。 当用户填写完表单时,警告将显示在对话框中。
静态文本 定义了当表达式为真且触发操作时向用户显示的消息。 此字段为必填项。
您可以选择将错误与哪个数据元素或受监控实体属性关联。这将有助于用户修复错误。
如果您未选择要显示错误信息的数据元素或受监控实体属性,请确保编写一份详尽的错误消息,以帮助用户修复错误。发送消息 待发送的消息模板 “发送消息”会根据提供的消息模板触发通知。此操作将立即执行。系统将解析消息模板,并将变量替换为实际值。 计划发送消息 待发送的消息模板
包含用于计算应发送通知日期的表达式的数据字段。如果该表达式计算出的结果不是“Date”类型,则该结果将被忽略,通知将不会被安排。“计划消息”将根据数据字段中表达式提供的日期安排通知。表达式示例如下:
d2:addDays( '2018-04-20', '2' )
消息模板将被解析,变量将被替换为实际值。安排事件 要为其安排事件的程序阶段
用于计算安排日期的表达式根据表达式返回的日期,为指定的程序阶段自动安排一个新事件。 该表达式必须计算出一个有效的日期;否则,将不会安排任何事件。
该事件仅安排一次——如果规则条件再次评估为真,则不会创建重复的事件。
适用于可从现有数据推算出下次就诊或随访时间的程序,例如在首次接种后固定天数安排第二剂疫苗接种。
以下示例表达式用于在记录日期后的 28 天安排事件:
d2:addDays(#{dateOfFirstDose}, 28)隐藏选项 需隐藏选项的数据元素
需隐藏选项的受追踪实体属性
应被隐藏的选项用于有选择地隐藏给定数据元素/受追踪实体属性中选项集中的单个选项。
当与 显示选项组 结合使用时,隐藏选项 具有优先级。隐藏选项组 要隐藏选项组的数据元素
要隐藏选项组的受追踪实体属性
应隐藏的选项组用于隐藏给定选项组以及数据元素/受追踪实体属性中的所有选项。
当与 显示选项组 结合使用时,隐藏选项组 具有更高优先级。显示选项组 要显示选项组的数据元素
要显示选项组的受追踪实体属性
应显示的选项组用于在给定的数据元素/受追踪实体属性中仅显示来自指定选项组的选项。 显示某个选项组会隐式隐藏所有不属于该显示选项组的选项。 -
点击 保存。
-
(可选)重复上述步骤以添加更多操作。
-
-
点击**保存**。
示例:项目规则¶
注意
您可以在演示服务器上查看所有示例: https://play.dhis2.org/dev/dhis-web-maintenance/#/list/programSection/programRule
本例演示了如何配置一条程序规则,该规则用于计算 孕周和孕天数,并将结果以 临床医生习惯的格式显示出来。该计算基于 先前记录的 数据。
-

-

-

** Data **字段中的完整表达式:
d2:concatenate(d2:weeksBetween(#{lmp},V {current_date}),'+', d2:modulus(d2:daysBetween(#{lmp},V {current_date}),7))

本示例演示了如何配置程序规则,以便在 Capture 应用的“反馈”小部件中显示文本。

本示例演示了如何配置程序规则,以便在**Capture**应用的“反馈”小部件中始终显示 特定数据。当您希望确保关键数据(例如 药物过敏信息)始终 可见时,此功能 非常有用。


通过使用“分配值”类型的项目规则,您可以计算 “访问时的胎龄”值并将其填写在数据输入表单中。您 配置项目规则以基于以下条件计算“访问时的胎龄” 在“ LMP日期”或“超声估计到期 日期”。

参考信息:项目规则表达式中使用的运算符和函数¶
注意
在程序规则表达式中使用绝对日期时,无论“系统日期格式”设置如何,请始终使用 “YYYY-MM-DD”日期格式。
提示
您可以将函数相互嵌套,并与子表达式结合, 以构建更复杂的条件。以下是一个示例,该示例根据 末次月经日期计算孕周:
d2:floor( d2:daysBetween(#{lastMenstrualDate},V{event_date}) / 7 )
提示
源类型将决定 d2: 函数调用如何 评估(源字段)参数。
示例:当 #{hemoglobinCurrent} 设置为源类型 当前事件中的数据 元素 时,以下函数调用将评估 当前事件中是否输入了血红蛋白值。
d2:hasValue( 'hemoglobinCurrent' )
示例:当 #{hemoglobin} 的源类型设置为 当前程序中 最新事件的数据元素 时。以下函数 调用将评估在入组过程中的 任何事件中是否存在血红蛋白的值。
d2:hasValue( 'hemoglobin' )
示例:其中 #{hemoglobinPrevious} 被设置为源类型 数据 元素来自上一个事件。以下函数调用将 评估在当前事件之前的 事件中是否存在血红蛋白的值。
d2:hasValue( 'hemoglobinPrevious' )
表:项目规则表达式中可能使用的运算符
| 所需值 | Parameter name |
|---|---|
| + | 将数字相加 |
Note that synthetic fields displayName and displayShortName are always | |
returning the translated value independent of the translate parameter. | 数与数相减 |
| 可识别 | 两个数的乘法 |
| / | 两个数的除法 |
| % | 两个数的模 |
| && | 逻辑“与”。仅当左右两侧的表达式均为真时,该表达式才为真。左右两侧可以是“是/否”、仅“是”或括号中的子表达式。 |
| > | 左边的数字大于右边的数字 |
| >= | 左侧数字大于或等于右侧数字 |
| < | 左侧数字小于右侧数字 |
| <= | 左侧数字小于或等于右侧数字。 |
| == | 左侧等于右侧。支持数字、文本、是/否以及仅“是”选项。 |
| != | 左侧与右侧不一致。支持数字、文本、“是/否”以及“仅是”选项。 |
| ! | 否定以下值。可用于“是/否”、仅“是”或括号中的子表达式。 |
| () | 圆括号用于将子表达式分组。 |
表格在项目规则表达式中使用的自定义函数
| 功能 | size | Parameter name |
|---|---|---|
| d2:addDays | (日期、数字) | 根据第一个参数 date,加上第二个参数指定的天数,生成一个日期。 以下是一个根据末次月经日期计算预产期的示例: d2:addDays(#{lastMenstrualDate},'283') |
| d2:ceil | (数字) | 将输入参数**向上舍入**到最接近的整数。 示例: d2:ceil(#{hemoglobinValue}) |
| d2:串联 | (对象, [,对象, 对象,...]) | 根据输入参数生成一个字符串拼接结果。支持任意数量的参数。该功能主要将在未来的操作类型中使用,例如通过 d2:concatenate('weeks','+','gestationalageDays') 来显示孕周。 |
| d2:包含 | (文本,文本, ...) | 在表达式中搜索一个或多个子字符串。如果表达式包含所有这些子字符串,则返回 true。 例如,以下情况均返回 true:contains("abcd", "abcd");contains("abcd", "b");以及 contains("abcd", "ab", "bc")。比较时区分大小写。 |
| d2:包含项目 | (文本,文本, ...) | 在表达式中搜索一个或多个项目。 该表达式由以逗号分隔的元素组成。如果每个项目都与表达式中的某个元素完全匹配,则 containsItems 返回 true。例如,containsItems("abcd", "abcd") 和 containsItems("ab,cd", "ab", "cd") 的结果均为 true,但 containsItems("abcd", "b") 和 containsItems("abcd", "ab", "bc") 的结果均为 false。 比较操作区分大小写。containsItems 可用于多值数据元素,以检查某项是否包含在数据元素的值中。 |
| d2:计数 | (sourcefield) | 统计参数中源字段所填入的值个数。 源字段参数是程序中已定义的源字段之一——请参见示例 以下是一个示例用法,其中 #{previousPregnancyOutcome} 是可重复程序阶段“previous pregnancy”中的一个源字段:d2:count('previousPregnancyOutcome') |
| d2:countIfValue | (源字段,文本) | 计算为第一个参数中的源字段输入的匹配值的个数。只计算与第二个参数匹配的次数。源字段参数是项目中已定义的一个源字段的名称(见示例)。 使用示例 #{previousPregnancyOutcome} 是可重复项目阶段 "前次怀孕 "中的一个源字段。以下函数将生成以流产告终的前次怀孕次数:d2:countIfValue('previousPregnancyOutcome','Abortion') |
| d2:countIfZeroPos | (sourcefield) | 统计参数中源字段所填入的值为零或正数的个数。源字段参数是程序中已定义的源字段之一——参见示例。 使用示例:其中 #{fundalHeightDiscrepancy} 是程序中的一个源字段,其值可以是正数或负数。 以下函数将返回正值出现的次数:d2:countIfZeroPos('fundalHeightDiscrepancy') |
| d2:daysBetween | (日期, 日期) | 计算第一个参数与第二个参数之间的天数。当第一个参数的日期早于第二个参数的日期时,结果为正数;反之,结果为负数。 静态日期格式为“yyyy-MM-dd”。 示例:根据最后一次月经日期和当前事件日期,计算孕妇的孕龄(以天为单位): d2:daysBetween(#{lastMenstrualDate},V{event_date}) |
| d2:提取数据矩阵值 | 根据应用项目标识符获取 GS1 值 | 给定一个使用 gs1 数据矩阵标准格式化的字段值和一个来自 GS1 应用项目标识符的字符串键。该函数查找并返回链接到提供的键的值。 示例表达式: d2:extractDataMatrixValue( 'gtin', A{GS1 Value} ) |
| d2:楼层 | (数字) | 将输入参数向下取整为最接近的整数。 以下示例计算该女子的孕周数。请注意,子表达式 #{gestationalAgeDays}/7 会在 floor 函数执行之前进行求值:d2:floor(#{gestationalAgeDays}/7) |
| d2:hasUserRole | (用户角色) | 如果当前用户具有此角色,则返回 true,否则返回 false 表达式示例: d2:hasUserRole('UYXOT4A3ASA') |
| d2:hasValue | (sourcefield) | 如果参数源字段包含值,则返回 true;若未输入任何值,则返回 false。 使用示例:检查源字段 #{currentPregnancyOutcome} 是否已填写: d2:hasValue('currentPregnancyOutcome') |
| d2:inOrgUnitGroup | (文本) | 判断当前组织单位是否属于该参数组。该参数可通过 ID 或组织单位组代码进行定义。 当规则在事件上下文中触发时,当前组织单位即为该事件的组织单位;当规则在TEI注册表单中触发时,当前组织单位即为进行注册的组织单位。 示例表达式: d2:inOrgUnitGroup('HIGH_RISK_FACILITY') |
| d2:inUserGroup | (文本) | 如果当前用户属于该用户组,则返回 true;否则返回 false。用户组由 ID 定义。 示例表达式: d2:inUserGroup('HrXOT4trAFG') |
| d2:lastEventDate | 获取已输入数据的最后事件日期 | 获取在项目阶段的上一个事件中输入基础数据元素时的事件日期 |
| d2:左 | (文本, 字符数) | 返回文本左侧从第一个字符开始的 num-chars 个字符。 该文本可以是引号包裹的字符串,也可以是从变量中求值得到的: d2:left(#{variableWithText}, 3) |
| d2:长度 | (文本) | 获取字符串的长度。 示例: d2:length(#{variableWithText}) |
| d2:最大值 | 获取所提供项目的最大价值 | 该函数获取整个注册数据中指定数据元素的最大值。 示例表达式: d2:maxValue( 'blood-pressure' ) |
| d2:minValue | 获取给定项的最小值 | 该函数用于获取整个注册数据中给定数据元素的最小值。 示例表达式: d2:minValue( 'blood-pressure' ) |
| d2:模数 | (数字,数字) | 返回第一个参数除以第二个参数的余数。 以下示例计算该女性当前怀孕周数中的天数: d2:modulus(#{gestationalAgeDays},7) |
| d2:monthsBetween | (日期, 日期) | 返回第一个和第二个参数之间的完整月份数。当第一个参数的日期早于第二个参数的日期时,该数值为正;反之,该数值为负。静态日期格式为“yyyy-MM-dd”。 |
| d2:oizp | (数字) | 如果值为零或正数,则将类型为number的参数评估为1,否则为零。 |
| d2:对 | (文本, 字符数) | 返回文本右侧部分,从最后一个字符开始计数num-chars个字符。 文本可以被引号包围,也可以从变量中求值: d2:right(#{variableWithText}, 2) |
| d2:圆 | (数值 [, 小数位数]) | 将输入参数四舍五入为最接近的整数。可提供一个可选的第二个参数,用于指定数字应四舍五入到的小数位数。 示例: d2:round(1.25, 1) = 1.3 |
| d2:子字符串 | (文本, 起始字符号, 结束字符号) | 返回由起始和结束字符编号指定的字符串片段。 示例表达式: d2:substring(#{variableWithText}, 1, 3) 如果上述示例中的 #{variableWithText} 为 'ABCD',则计算结果为 'BC' |
| d2:分割 | (文本, 分隔符, 元素编号) | 按分隔符拆分文本,并保留第 n 个元素(0 表示第一个)。 文本可以加引号,也可以从变量中求值,但分隔符必须加引号: d2:split(#{variableWithText}, '-', 1)注意:不支持逗号 (,) 作为分隔符。 |
| d2:validatePattern | (文本, 正则表达式模式) | 如果输入文本与提供的正则表达式模式完全匹配,则评估为 true。正则表达式需要转义。 示例表达式,如果数字不在模式 9999/99/9 上则触发操作, !d2:validatePattern(A{nrc},'\\d{6}\/\\d{2}\/\\d') 示例表达式,如果地址不包含字母或空格,则触发操作,然后是空格,然后是数字: !d2:validatePattern(A{registrationAddress},'[\\w ]+ \\d+') 示例,如果名称包含任何数字则触发操作: !d2:validatePattern(A{name},'[^\\d]*') 示例表达式,如果手机号码包含非法号码序列 555: d2:validatePattern(A{mobile} ,'.*555.*') |
| d2:星期之间 | (日期, 日期) | 返回第一个和第二个参数之间的完整周数。当第一个参数的日期早于第二个参数的日期时,该数值为正;反之,则为负。静态日期格式为“yyyy-MM-dd”。 |
| d2:年之间 | (日期, 日期) | 返回第一个和第二个参数之间的年数。当第一个参数的日期早于第二个参数的日期时,返回值为正数;反之,返回值为负数。静态日期格式为“yyyy-MM-dd”。 |
| d2:zing | (数字) | 如果值是负数,则将数字类型的参数评估为零,否则为值本身。 |
| d2:zpvc | (对象, [,对象, 对象,...]) | 返回给定对象参数中数字零和正值的数量。可以提供任意数量的参数。 |
| d2:zScoreWFA | 年龄指标的Z分值权重 | 根据 WHO 年龄别体重指标提供的数据计算 z 分数。 e 根据重量值在 -3.5 到 3.5 之间变化。 表达式示例: d2:zScoreWFA( 年龄、体重、性别 ) 性别 > 默认情况下,性别被视为女性。以下任何代码都可用于>表示男性: 'Male', 'MALE', 'male', 'ma', 'm', 'M', 0, false |
| d2:zScoreHFA | 身高-年龄Z分值指标 | 根据世界卫生组织(WHO)“身高/年龄”指标提供的数据计算z分值。其数值范围为-3.5至3.5,具体取决于身高的数值。 表达式示例: d2:zScoreHFA( ageInMonths, height, gender ) |
| d2:zScoreWFH | 身高指标的Z分值权重 | 根据世界卫生组织(WHO)“体重与身长比”和“体重与身高比”指标衍生的数据计算Z分值。 用于计算女孩数据的信息可查阅此处,用于计算男孩数据的信息 此处。 其数值在-3.5到3.5之间变化,具体取决于体重的数值。 示例表达式: d2:zScoreWFH( height, weight, gender ) |
表:数据矩阵码
| AI | 数据标题 | Parameter name | 固定长度 |
|---|---|---|---|
| 00 | SSCC | SSCC(序列号集装箱代码) | 20 |
| 01 | GTIN | 全球商品编码 | 16 |
| 02 | 内容 | 物流单元中所含商品的GTIN | 16 |
| 10 | LOT_NUMBER | 批次号或批号 | #{<programstage-id>.<dataelement-id>} |
| 11 | PROD_DATE | 生产日期(YYMMDD) | 8 |
| 12 | DUE_DATE | 截止日期(YYMMDD) | 8 |
| 13 | PACK_DATE | 包装日期(YYMMDD) | 8 |
| 15 | BEST_BEFORE_DATE | 最佳食用日期(YYMMDD) | 8 |
| 16 | SELL_BY | 最佳食用日期(YYMMDD) | 8 |
| 17 | EXP_DATE | 有效期(YYMMDD) | 8 |
| 20 | 变体 | 内部产品变体 | 4 |
| 21 | SERIAL_NUMBER | 序列号 | #{<programstage-id>.<dataelement-id>} |
| 22 | CPV | 消费品型号 | #{<programstage-id>.<dataelement-id>} |
| 235 | TPX | 由第三方控制的、带序列号的全球贸易项目编号(GTIN)扩展(TPX) | #{<programstage-id>.<dataelement-id>} |
| 240 | ADDITIONAL_ID | 制造商分配的额外产品标识 | #{<programstage-id>.<dataelement-id>} |
| 241 | 客户零件号 | 客户零件号 | #{<programstage-id>.<dataelement-id>} |
| 242 | MTO_VARIANT_NUMBER | 定制变体编号 | #{<programstage-id>.<dataelement-id>} |
| 243 | PCN | 包装部件编号 | #{<programstage-id>.<dataelement-id>} |
| 250 | SECONDARY_SERIAL | 辅助序列号 | #{<programstage-id>.<dataelement-id>} |
| 251 | REF_TO_SOURCE | 对源实体的引用 | #{<programstage-id>.<dataelement-id>} |
| 253 | GDTI | 全局文档类型标识符 | #{<programstage-id>.<dataelement-id>} |
| 254 | GLN_EXTENSION_COMPONENT | GLN 扩展组件 | #{<programstage-id>.<dataelement-id>} |
| 255 | GCN | 全球优惠券编号(GCN) | #{<programstage-id>.<dataelement-id>} |
| 30 | VAR_COUNT | 变量计数 | #{<programstage-id>.<dataelement-id>} |
| 310* | NET_WEIGHT_KG | 净重,千克(计量单位可变的贸易商品) | #{<programstage-id>.<dataelement-id>} |
| 311* | LENGTH_M | 长度或第一维度,米(可变计量贸易项目) | #{<programstage-id>.<dataelement-id>} |
| 312* | WIDTH_M | 宽度、直径或第二尺寸,单位:米(可变尺寸的贸易商品) | #{<programstage-id>.<dataelement-id>} |
| 313* | HEIGHT_M | 深度、厚度、高度或第三维度,单位为米(可变计量贸易项目) | #{<programstage-id>.<dataelement-id>} |
| 314* | AREA_M2 | 面积,平方米(可变计量单位,商品项) | #{<programstage-id>.<dataelement-id>} |
| 315* | NET_VOLUME_L | 净容量,升(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 316* | NET_VOLUME_M3 | 净体积,立方米(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 320* | NET_WEIGHT_LB | 净重,磅(计量单位可变的商品) | #{<programstage-id>.<dataelement-id>} |
| 321* | LENGTH_I | 长度或第一维度,英寸(可变尺寸的商品) | #{<programstage-id>.<dataelement-id>} |
| 322* | LENGTH_F | 长度或第一维度,英尺(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 323* | LENGTH_Y | 长度或第一维度,码(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 324* | WIDTH_I | 宽度、直径或第二尺寸,英寸(可变尺寸的贸易商品) | #{<programstage-id>.<dataelement-id>} |
| 325* | WIDTH_F | 宽度、直径或第二尺寸,英尺(可变计量贸易项目) | #{<programstage-id>.<dataelement-id>} |
| 326* | WIDTH_Y | 宽度、直径或第二尺寸,码(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 327* | HEIGHT_I | 深度、厚度、高度或第三维度,英寸(可变尺寸的贸易商品) | #{<programstage-id>.<dataelement-id>} |
| 328* | HEIGHT_F | 深度、厚度、高度或第三维度,英尺(可变计量单位) | #{<programstage-id>.<dataelement-id>} |
| 329* | HEIGHT_Y | 深度、厚度、高度或第三维度,码(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 330* | GROSS_WEIGHT_GF | 物流重量,千克 | #{<programstage-id>.<dataelement-id>} |
| 331* | LENGTH_M_LOG | 长度或第一维,米 | #{<programstage-id>.<dataelement-id>} |
| 332* | WIDTH_M_LOG | 宽度、直径或第二尺寸,单位:米 | #{<programstage-id>.<dataelement-id>} |
| 333* | HEIGHT_M_LOG | 深度、厚度、高度或第三维度,单位:米 | #{<programstage-id>.<dataelement-id>} |
| 334* | AREA_M2_LOG | 面积,平方米 | #{<programstage-id>.<dataelement-id>} |
| 335* | VOLUME_L_LOG | 物流体积,升 | #{<programstage-id>.<dataelement-id>} |
| 336* | VOLUME_M3_LOG | 物流量,立方米 | #{<programstage-id>.<dataelement-id>} |
| 337* | KG/m² | 千克每平方米 | #{<programstage-id>.<dataelement-id>} |
| 340* | GROSS_WHEIGHT_LB | 物流重量,磅 | #{<programstage-id>.<dataelement-id>} |
| 341* | LENGTH_I_LOG | 长度或第一维,英寸 | #{<programstage-id>.<dataelement-id>} |
| 342* | LENGTH_F_LOG | 长度或第一维,英尺 | #{<programstage-id>.<dataelement-id>} |
| 343* | LENGTH_Y_LOG | 长度或第一维度,码 | #{<programstage-id>.<dataelement-id>} |
| 344* | WIDTH_I_LOG | 宽度、直径或第二尺寸,英寸 | #{<programstage-id>.<dataelement-id>} |
| 345* | WIDTH_F_LOG | 宽度、直径或第二尺寸,英尺 | #{<programstage-id>.<dataelement-id>} |
| 346* | WIDTH_Y_LOG | 宽度、直径或第二维度,码 | #{<programstage-id>.<dataelement-id>} |
| 347* | HEIGHT_I_LOG | 深度、厚度、高度或第三维度,英寸 | #{<programstage-id>.<dataelement-id>} |
| 348* | HEIGHT_F_LOG | 深度、厚度、高度或第三维度,英尺 | #{<programstage-id>.<dataelement-id>} |
| 349* | HEIGHT_Y_LOG | 深度、厚度、高度或第三维度,码 | #{<programstage-id>.<dataelement-id>} |
| 350* | AREA_I2 | 面积,平方英寸(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 351* | AREA_F2 | 面积,平方英尺(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 352* | AREA_Y2 | 面积,平方码(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 353* | AREA_I2_LOG | 面积,平方英寸 | #{<programstage-id>.<dataelement-id>} |
| 354* | AREA_F2_LOG | 面积,平方英尺 | #{<programstage-id>.<dataelement-id>} |
| 355* | AREA_Y2_LOG | 面积,平方码 | #{<programstage-id>.<dataelement-id>} |
| 356* | NET_WEIGHT_T | 净重,金衡盎司(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 357* | NET_VOLUME_OZ | 净重(或净容量),盎司(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 360* | NET_VOLUME_Q | 净容量,夸脱(计量单位可变的商品) | #{<programstage-id>.<dataelement-id>} |
| 361* | NET_VOLUME_G | 净容量,美国加仑(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 362* | VOLUME_Q_LOG | 物流体积,夸脱 | #{<programstage-id>.<dataelement-id>} |
| 363* | VOLUME_G_LOG | 物流量,美制加仑 | #{<programstage-id>.<dataelement-id>} |
| 364* | VOLUME_I3 | 净容积,立方英寸(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 365* | VOLUME_F3 | 净体积,立方英尺(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 366* | VOLUME_Y3 | 净体积,立方码(可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 367* | VOLUME_I3_LOG | 物流体积,立方英寸 | #{<programstage-id>.<dataelement-id>} |
| 368* | VOLUME_F3_LOG | 物流量,立方英尺 | #{<programstage-id>.<dataelement-id>} |
| 369* | VOLUME_Y3_LOG | 物流量,立方码 | #{<programstage-id>.<dataelement-id>} |
| 37 | COUNT | 物流单元中包含的贸易项目数量或贸易项目件数 | #{<programstage-id>.<dataelement-id>} |
| 390* | 金额 | 应付适用金额或息票面值,以当地货币计 | #{<programstage-id>.<dataelement-id>} |
| 391* | AMOUNT_ISO | 应付金额(使用ISO货币代码) | #{<programstage-id>.<dataelement-id>} |
| 392* | 价格 | 应付适用金额,单一货币区(可变计量贸易项目) | #{<programstage-id>.<dataelement-id>} |
| 393* | PRICE_ISO | 应付适用金额(带ISO货币代码的可变计量单位商品) | #{<programstage-id>.<dataelement-id>} |
| 394* | PRCNT_OFF | 优惠券的折扣比例 | #{<programstage-id>.<dataelement-id>} |
| 395* | PRICE_UOM | 单一货币区域内每计量单位的应付金额(可变计量单位贸易项目) | N4+N6 |
| 400 | ORDER_NUMBER | 客户采购订单号 | #{<programstage-id>.<dataelement-id>} |
| 401 | GINC | 货物全球识别码(GINC) | #{<programstage-id>.<dataelement-id>} |
| 403 | 路线 | 路由代码 | #{<programstage-id>.<dataelement-id>} |
| 410 | SHIP_TO_GLOB_LOC | 发货至/送货至全球位置编号(GLN) | #{<programstage-id>.<dataelement-id>} |
| 411 | BILL_TO_LOC | 开票对象 / 发票对象的全球位置编号(GLN) | #{<programstage-id>.<dataelement-id>} |
| 412 | PURCHASED_FROM | 从全球位置编号(GLN)处购买 | #{<programstage-id>.<dataelement-id>} |
| 413 | SHIP_FOR_LOG | 发货至/送货至——转寄至全球位置编号(GLN) | #{<programstage-id>.<dataelement-id>} |
| 414 | LOC_NUMBER | 物理位置的标识——全球位置编号(GLN) | #{<programstage-id>.<dataelement-id>} |
| 415 | PAY_TO | 发票方的全球位置编号 (GLN) | #{<programstage-id>.<dataelement-id>} |
| 416 | PROD_SERV_LOC | 生产或服务地点的全球地点编号(GLN) | #{<programstage-id>.<dataelement-id>} |
| 417 | PARTY | 交易方全球定位编号(GLN) | #{<programstage-id>.<dataelement-id>} |
| 420 | SHIP_TO_POST | 发往/送达至同一邮政管辖区域内的邮政编码 | #{<programstage-id>.<dataelement-id>} |
| 421 | SHIP_TO_POST_ISO | 收货地邮政编码(含ISO国家代码) | #{<programstage-id>.<dataelement-id>} |
| 422 | 起源 | 贸易商品的原产国 | #{<programstage-id>.<dataelement-id>} |
| 423 | 国家_初始化流程 | 初次加工国 | #{<programstage-id>.<dataelement-id>} |
| 424 | COUNTRY_PROCESS | 加工国 | #{<programstage-id>.<dataelement-id>} |
| 425 | 国家_拆解 | 拆解国家 | #{<programstage-id>.<dataelement-id>} |
| 426 | COUNTRY_FULL_PROCESS | 涵盖完整工艺链的国家 | #{<programstage-id>.<dataelement-id>} |
| 427 | ORIGIN_SUBDIVISION | 原产地国家细分 | #{<programstage-id>.<dataelement-id>} |
| 4300 | SHIP_TO_COMP简体中文(大陆) | 收货公司名称 | #{<programstage-id>.<dataelement-id>} |
| 4301 | 收货人姓名 | 收货人/送货联系人 | #{<programstage-id>.<dataelement-id>} |
| 4302 | SHIP_TO_ADD1 | 收货地址/送货地址 第1行 | #{<programstage-id>.<dataelement-id>} |
| 4303 | SHIP_TO_ADD2 | 收货地址/送货地址 第2行 | #{<programstage-id>.<dataelement-id>} |
| 4304 | SHIP_TO_SUB(简体中文(大陆)) | 送货至/交付至的郊区 | #{<programstage-id>.<dataelement-id>} |
| 4305 | SHIP_TO_LOCALITY | 收货地 / 送货地 | #{<programstage-id>.<dataelement-id>} |
| 4306 | SHIP_TO_REG | 收货地区 | #{<programstage-id>.<dataelement-id>} |
| 4307 | SHIP_TO_COUNTRY | 发货地/收货地国家代码 | #{<programstage-id>.<dataelement-id>} |
| 4308 | SHIP_TO_PHONE | 收货地址/送货地址电话号码 | #{<programstage-id>.<dataelement-id>} |
| 4310 | RTN_TO_COMP | 返回公司名称 | #{<programstage-id>.<dataelement-id>} |
| 4311 | RTN_TO_NAME | 返回-联系 | #{<programstage-id>.<dataelement-id>} |
| 4312 | RTN_TO_ADD1 | 回邮地址第1行 | #{<programstage-id>.<dataelement-id>} |
| 4313 | RTN_TO_ADD2 | 回邮地址第2行 | #{<programstage-id>.<dataelement-id>} |
| 4314 | RTN_TO_SUB | 重返郊区 | #{<programstage-id>.<dataelement-id>} |
| 4315 | RTN_TO_LOCALITY | 回归本地 | #{<programstage-id>.<dataelement-id>} |
| 4316 | RTN_TO_REG | 返回地区 | #{<programstage-id>.<dataelement-id>} |
| 4317 | RTN_TO_COUNTRY | 返回国家代码 | #{<programstage-id>.<dataelement-id>} |
| 4318 | RTN_TO_POST | 回邮邮政编码 | #{<programstage-id>.<dataelement-id>} |
| 4319 | RTN_TO_PHONE | 回电号码 | #{<programstage-id>.<dataelement-id>} |
| 4320 | SRV_DESCRIPTION | 服务代码说明 | #{<programstage-id>.<dataelement-id>} |
| 4321 | DANGEROUS_GOODS | 危险品标志 | #{<programstage-id>.<dataelement-id>} |
| 4322 | AUTH_LEAV | 离境许可 | #{<programstage-id>.<dataelement-id>} |
| 4323 | SIG_REQUIRED | “需签名”标记 | #{<programstage-id>.<dataelement-id>} |
| 4324 | NBEF_DEL_DT | 不早于交货日期和时间 | #{<programstage-id>.<dataelement-id>} |
| 4325 | NAFT_DEL_DT | 交货日期和时间之后不可 | #{<programstage-id>.<dataelement-id>} |
| 4326 | REL_DATE | 发行日期 | #{<programstage-id>.<dataelement-id>} |
| 7001 | NSN | 北约物资编号(NSN) | #{<programstage-id>.<dataelement-id>} |
| 7002 | MEAT_CUT | 联合国欧洲经济委员会(UN/ECE)肉类胴体及分割部位分级标准 | #{<programstage-id>.<dataelement-id>} |
| 7003 | EXP_TIME | 到期日期和时间 | #{<programstage-id>.<dataelement-id>} |
| 7004 | ACTIVE_POTENCY | 有效成分 | #{<programstage-id>.<dataelement-id>} |
| 7005 | CATCH_AREA | 捕捞区 | #{<programstage-id>.<dataelement-id>} |
| 7006 | 首次冻结日期 | 首次霜冻日期 | #{<programstage-id>.<dataelement-id>} |
| 7007 | HARVEST_DATE | 收获日期 | #{<programstage-id>.<dataelement-id>} |
| 7008 | AQUATIC_SPECIES | 用于渔业目的的物种 | #{<programstage-id>.<dataelement-id>} |
| 7009 | 钓鱼_装备_类型 | 渔具类型 | #{<programstage-id>.<dataelement-id>} |
| 7010 | PROD_METHID | 生产方法 | #{<programstage-id>.<dataelement-id>} |
| 7020 | REFURB_LOT | 翻新地块编号 | #{<programstage-id>.<dataelement-id>} |
| 7021 | FUNC_STAT | 功能状态 | #{<programstage-id>.<dataelement-id>} |
| 7022 | REV_STAT | 修订状态 | #{<programstage-id>.<dataelement-id>} |
| 7023 | GIAI_ASSEMBLY | 一个装配体的全球单项资产标识符(GIAI) | #{<programstage-id>.<dataelement-id>} |
| 703* | PROCESSOR_NUMBER | 带ISO国家代码的处理器数量 | #{<programstage-id>.<dataelement-id>} |
| 7040 | UIC_EXT | 带扩展码1和进口商索引的GS1 UIC | #{<programstage-id>.<dataelement-id>} |
| 710 | NHRN_PZN | 国家医疗报销编号(NHRN)——德国 PZN | #{<programstage-id>.<dataelement-id>} |
| 711 | NHRN_CIP | 国家医疗报销编号(NHRN)——法国CIP | #{<programstage-id>.<dataelement-id>} |
| 712 | NHRN_CN | 国家医疗报销编号(NHRN)——西班牙 CN | #{<programstage-id>.<dataelement-id>} |
| 713 | NHRN_DRN | 国家医疗报销编号(NHRN)——巴西 DRN | #{<programstage-id>.<dataelement-id>} |
| 714 | NHRN_AIM | 国家医疗报销编号(NHRN)——葡萄牙 AIM | #{<programstage-id>.<dataelement-id>} |
| 723* | 证书编号 | 认证参考 | #{<programstage-id>.<dataelement-id>} |
| 7240 | 项目 | 协议 ID | #{<programstage-id>.<dataelement-id>} |
| 8001 | 尺寸 | 卷材产品(宽度、长度、芯径、方向、接头) | #{<programstage-id>.<dataelement-id>} |
| 8002 | CMT_NUMBER | 蜂窝移动电话标识符 | #{<programstage-id>.<dataelement-id>} |
| 8003 | GRAI | 全球可循环资产标识符(GRAI) | #{<programstage-id>.<dataelement-id>} |
| 8004 | GIAI | 全球个人资产识别码(GIAI) | #{<programstage-id>.<dataelement-id>} |
| 8005 | PRICE_PER_UNIT | 每计量单位的单价 | #{<programstage-id>.<dataelement-id>} |
| 8006 | ITIP | 单个贸易项目(ITIP)的识别 | #{<programstage-id>.<dataelement-id>} |
| 8007 | IBAN | 国际银行账户号码(IBAN) | #{<programstage-id>.<dataelement-id>} |
| 8008 | PROD_TIME | 制作日期和时间 | #{<programstage-id>.<dataelement-id>} |
| 8009 | OPTSEN | 光学可读传感器指示器 | #{<programstage-id>.<dataelement-id>} |
| 8010 | CPID | 部件/零件标识符 (CPID) | #{<programstage-id>.<dataelement-id>} |
| 8011 | CPID_SERIAL | 部件/零件标识符序列号 (CPID SERIAL) | #{<programstage-id>.<dataelement-id>} |
| 8012 | 版本 | 软件版本 | #{<programstage-id>.<dataelement-id>} |
| 8013 | GMN | 全球型号(GMN) | #{<programstage-id>.<dataelement-id>} |
| 8017 | GSRN_PROVIDER | 全球服务关系编号(GSRN),用于标识提供服务的组织与服务提供商之间的关系 | #{<programstage-id>.<dataelement-id>} |
| 8018 | GSRN_RECIPIENT | 全球服务关系编号(GSRN),用于识别服务提供组织与服务接受方之间的关系 | #{<programstage-id>.<dataelement-id>} |
| 8019 | SRIN | 服务关系实例编号(SRIN) | #{<programstage-id>.<dataelement-id>} |
| 8020 | 参考编号 | 付款单参考编号 | #{<programstage-id>.<dataelement-id>} |
| 8026 | ITIP_CONTENT | 识别物流单元中所含贸易项目的各件(ITIP) | #{<programstage-id>.<dataelement-id>} |
| 8110 | COUPON_USA | 适用于北美地区的优惠码识别 | #{<programstage-id>.<dataelement-id>} |
| 8111 | 要点 | 优惠券的积分 | #{<programstage-id>.<dataelement-id>} |
| 8121 | POSITIVE_OFFER_COUPON_USA | 适用于北美的无纸化优惠券代码识别 | #{<programstage-id>.<dataelement-id>} |
| 8200 | PRODUCT_URL | 扩展包装网址 | #{<programstage-id>.<dataelement-id>} |
| 90 | AGREEMENT_INTERNAL | 交易伙伴之间共同商定的信息 | #{<programstage-id>.<dataelement-id>} |
| 91 | COMPANY_INTERNAL_1 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 92 | COMPANY_INTERNAL_2 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 93 | COMPANY_INTERNAL_3 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 94 | COMPANY_INTERNAL_4 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 95 | COMPANY_INTERNAL_5 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 96 | COMPANY_INTERNAL_6 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 97 | COMPANY_INTERNAL_7 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 98 | COMPANY_INTERNAL_8 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
| 99 | COMPANY_INTERNAL_9 | 公司内部信息 | #{<programstage-id>.<dataelement-id>} |
表格项目规则表达式中使用的标准变量
| #{<programstage-id>.<dataelement-id>} | Potential duplicate status | Parameter name |
|---|---|---|
| V {current_date} | (日期) | 在规则执行时,该表达式包含当前日期。 示例表达式: d2:daysBetween(#{symptomDate},V{current_date}) < 0 |
| V {event_date} | (日期) | 包含当前事件执行的事件日期。规则作为注册表格的一部分执行时将没有值。 |
| V {event_status} | (字符串) | 包含当前活动或注册的状态。 检查状态的示例表达式如下: V{event_status} == 'COMPLETED' |
| V {due_date} | (日期) | 执行规则时,此变量将包含当前日期。注意:这意味着该规则可能会在不同时间产生不同的结果,即使没有其他改变。 |
| V {event_count} | (数字) | 包含注册中的事件总数。 |
| V {enrollment_date} | (日期) | 包含当前注册的注册日期。对于单个事件项目将没有值。 |
| V {incident_date} | (日期) | 包含当前注册的事件日期。对于单个事件项目将没有值。 |
| V {enrollment_id} | (字符串) | 当前注册的通用标识符字符串(UID)。对于单次活动项目,该字段将无值。 |
| V {enrollment_status} | (字符串) | 包含当前注册的状态。 状态可以是 ACTIVE、COMPLETED 或 CANCELLED。检查状态的示例表达式如下: V{enrollment_status} == 'COMPLETED' |
| V {event_id} | (字符串) | 当前事件上下文的通用标识符字符串(UID)。在作为注册表单的一部分执行该规则时,该字段将没有值。 |
| V {orgunit_code} | (字符串) | 包含与当前注册相关联的组织单位的代码。对于单个事件项目,将使用当前事件 orgunit 的代码。 检查orgunit 代码是否以 WB_ 开头的表达式示例: d2:left(V{orgunit_code},3) == 'WB_' |
| V {environment} | (字符串) | 包含代表规则的当前运行时环境的代码。可能的值为“ WebClient”,“ AndroidClient”和“ Server”。当项目规则仅应在一种或多种客户端类型中运行时可以使用。 |
| V {program_stage_id} | (字符串) | 包含触发规则的当前项目阶段的ID。这可用于在特定项目阶段运行规则,或避免在某些阶段执行。在TEI注册表单中执行规则时,变量将为空。 |
| V {program_stage_name} | (字符串) | 包含触发规则的当前项目阶段的名称。这可用于在特定项目阶段运行规则,或避免在某些阶段执行。在TEI注册表单中执行规则时,变量将为空。 |
| V {completed_date} | (字符串) | 此变量包含触发此规则的事件的完成日期。如果事件尚未完成,则"completed_date"不包含任何内容。 |
配置关系类型¶
关于关系类型¶
在Tracker模型中,关系代表两个实体之间的关联。在DHIS2中,关系被视为数据,并基于某种“关系类型”,这与“被追踪实体”基于“被追踪实体类型”的情况类似。
关系总是包含两个实体,这些实体可以是“被追踪实体”、“注册信息”和“事件”,以及它们的任意组合。
[!注] 请注意,当前应用中并非所有这些组合都可用。目前在“Capture”应用中,您可以创建: * 被追踪实体与被追踪实体之间的关系 * 活动计划中的活动与被追踪实体之间的关系(仅限从活动一侧创建) * 同一项目中某个项目阶段内的活动与另一个项目阶段内的活动之间的关系(相关阶段——更多信息请参见 此处)
另外,关系可以定义为单向或双向。当前唯一的功能差异是这些功能需要不同级别的创建权限。单向关系要求用户对“从”实体具有数据写访问权限,而对“至”实体具有数据读访问权限,而双向关系则要求双方都具有数据写访问权限。
有关配置以及“起始约束”和“终止约束”含义的更多信息,请参阅 关系模型。
创建或编辑关系类型¶
-
打开** Maintenance 应用项目,然后单击 Program ** > ** Relationship 类型**。
-
点击添加按钮。
-
Type a Name of the relationship type.
-
(可选)分配**代码**。
-
(Optional) Provide a Description of the relationship.
-
(可选)选择关系是否应为双向
-
请提供**发起实体所见的关系名称**。这是将在“数据录入”应用中显示在关系“左侧”的关系名称。例如,在“母子”关系中,该名称可以是“母亲”。
-
(可选)提供**从接收实体看到的关系名称**。这是关系的名称,将显示在“数据输入”应用项目中关系的“右侧”。例如。在母子关系中,这可能是“母亲”。
-
选择一个“来源约束”。这将限制关系中可以包含的实体类型。 关系模型。选择“来源约束”后,您可以选择在 Capture 应用的关系控件中,针对该“来源约束”显示哪些属性或数据元素。列表内容将根据约束的不同而有所差异:
- 选择“被追踪实体实例”后,仅需选择一个被追踪实体类型,然后从已配置的被追踪实体类型属性中进行选择
- 选择“受监控实体实例”后,需进一步选择“受监控实体类型”和“程序”,并从已为“受监控实体类型”和“程序”配置的属性中进行选择
- 在选择“项目注册”时,请从该项目已配置的属性中进行选择
- 选择 "项目或项目阶段中的事件 "时,在为该事件项目或项目阶段配置的数据元素中进行选择
-
选择一个“目标约束”。这将限制可以包含在关系中的实体类型。关系模型。重复选择应显示在“目标约束”关系控件中的属性或数据元素。
-
点击**保存**。
配置跟踪的实体类型¶
关于跟踪的实体类型¶
可追踪实体是指可通过 系统进行追踪的实体类型。它可以是任何对象,从人员到商品,例如 药品或某个人。
一个项目必须包含一个受追踪实体。若要将一个受追踪实体的 实例注册到某个项目中,该实体的受追踪实体类型与 该项目的受追踪实体类型必须相同。
跟踪的实体属性用于为 跟踪的实体。跟踪的实体属性可以在之间共享 程式。
创建或编辑跟踪的实体属性¶
-
打开**维护**应用项目,点击**项目** (> 跟踪 实体属性。
-
点击添加按钮。
-
In the Name field, type the tracked entity attribute name.
-
(Optional) Type a Short name.
-
(Optional) Type a Form name.
-
(可选)在 Code 字段中,分配一个代码。
-
(可选)输入**说明**。
-
(可选)在 字段掩码 字段中,您可以输入一个用于提供 关于正确格式化该属性的提示。注意:目前仅在 DHIS2 Android 版 Capture 应用中实现,Capture 网页应用中尚未实现。 以下是可在遮罩中使用的特殊字符。特殊字符与给定类型的一个字符完全匹配。
| 性格匹配 | |
|---|---|
| \ d | 数字 |
| \ x | 小写字母 |
| \ X | 大写字母 |
| \ w | 任何字母数字字符 |
例如,该模式可用于在数据元素的输入字段中根据需要显示连字符。例如“ d d d- d d d- d d d, 每三位数显示一个连字符。
-
选择一个**选项集**。
-
在“值类型”字段中,选择该 跟踪的实体属性将记录。
表格:值类型
值类型 描述 年龄 以日历控件显示日期,或通过输入年、月和/或天数,系统将根据当前日期计算出具体日期。该日期将保存在后端。 坐标 以十进制度数形式指定的经纬度坐标。所有坐标应采用“-19.23 , 56.42”的格式,经纬度之间用逗号分隔。 日期 数据输入时以日历控件形式显示的日期。 日期 由 日期 和 时间 数据元素组合而成。 电子邮件 有效的电子邮件地址。 文件 文件资源,用于存储外部文件,例如文档和照片。 图片 用于存储照片的文件资源。
与 FILE 数据元素不同,IMAGE 数据元素可在表单中直接显示上传的图片。整数 任何整数(正数和负数),包括零。 字母 单个字母。 长文本 文本值。在表单中以文本区域形式呈现,无长度限制。 负整数 小于零(但不包括零)的任何整数。 数字 任何带有单一小数点的实数。 不支持千位分隔符和科学记数法。 百分比 0 到 100 之间的整数(含 0 和 100)。 电话号码 电话号码。 正整数 大于零(但不包括零)的任何整数。 正整数(含零) 任何正整数,包括零。 组织单位 以层次树控件形式呈现的组织单位。
如果用户已分配“搜索组织单位”,则将显示这些单位,而非已分配的组织单位。单位区间 任何大于或等于 0 且小于或等于 1 的实数。 文本 文本值。每个值允许的字符数上限为 50,000。 时间 时间以 HH:mm 格式存储。
HH 是 0 到 23 之间的数字
mm 是 00 到 59 之间的数字用户名 DHIS2 用户。以包含用户列表和搜索字段的对话框形式呈现。 用户需具备“查看用户”权限,方可使用此数据类型。 是/否 布尔值,在数据录入界面中显示为下拉列表。 仅是 真值,在数据录入界面中显示为复选框。 -
Select an Aggregation type.
表:聚合运算符
| 聚合运算符 | Parameter name |
|---|---|
| 平均 | 对“期间”和“组织单位”这两个维度的值分别求平均值。 |
| 平均值(组织单位层级中的总和) | 在“时间段”维度中计算数据值的平均值,在“组织单位”维度中计算数据值的总和。 |
| 计数 | 数据值的个数。 |
| Min | 数据值的最小值。 |
| 马克斯 | 数据值的最大值。 |
| 时间 | 任何维度均未进行聚合。 |
| 和 | 该时间段和组织单位维度中数据值的总和。 |
| 标准差 | 数据值的标准差(基于总体)。 |
| 方差 | 数据值的方差(基于总体)。 |
{ "periodFrom": -15, "periodTo": 15} | |
| 12. 选择 唯一 以指定被跟踪实体的值 | |
| 属性是唯一的。 |
唯一设置有两个选项:
- **整个系统**:被跟踪实体属性的值
可以重复使用属于其他跟踪实体的值
属性。但是此跟踪实体属性中的值必须
不重复。
选择 **自动生成** 以启用自动生成功能
跟踪实体的属性值。当生成设置
被选中时,用于指定图案的可选字段也被选中
显示。此字段应包含基于
TextPattern语法。当值自动生成时,
对于整个系统,此属性将是唯一的。看到
TextPattern部分以获取有关其工作原理的更多信息。
- **组织单位**:被跟踪实体的值
属性不得在同一单位部门中重复。
-
选择 继承 以注册一个新的实体,用于与一个 可用实体,所有继承实体的实体属性值 将预先填写在注册表中。
-
(Optional) Select Display in list without program.
-
(可选)分配一个或多个**传奇**。
-
点击**保存**。
创建或编辑跟踪的实体类型¶
-
打开**维护**应用项目,点击**项目** (> 跟踪 实体类型。
-
点击添加按钮或一个已经存在的**已跟踪实体 类型**。
-
Type a Name of the tracked entity.
-
(可选)选择一个**颜色**和一个**图标**,供 数据捕获应用项目以识别此跟踪的实体类型。
-
(Optional) Enter a Description of the tracked entity.
-
(可选)输入**所需的最少数量的属性 搜索**。这指定了需要设置的属性数量 填写以便能够搜索此**跟踪的实体 在 全局搜索 中输入 type。参见 [配置 搜索以获取更多信息。
-
(可选)输入**要跟踪的实体最大数量为 搜索结果**。此处指定了被追踪实体的数量 在捕获范围之外进行搜索时将返回该值。参见 [配置 搜索 以获取更多信息。
-
(可选)添加**被追踪实体的类型属性**。这用于 配置搜索,请参阅[配置 搜索以获取更多信息。
-
(Optional) Enter an Alternative name of the tracked entity.
-
点击**保存**。
配置搜索¶
可以为用户提供搜索组织单位,从而可以 在数据捕获之外搜索跟踪的实体实例 组织单位。
搜索既可以在程序上下文中进行,也可以在 受监控实体类型的上下文中进行。为了让用户能够 在程序上下文中进行搜索,必须配置 受监控实体的哪些程序属性可供搜索。 若要让 用户能够选择在受监控实体类型的上下文中进行搜索, 则必须配置哪些受监控实体类型的属性 可供搜索。
配置搜索跟踪器项目¶
为了能够使用项目进行搜索,您必须制作一些 项目属性可搜索。唯一的项目属性将始终是 可搜索的。
-
打开**维护应用项目**,点击**项目**
-
打开或创建跟踪项目
-
Go to Attributes
-
如果没有属性,请添加一个
-
将属性设置为可搜索
可搜索的程序属性将被分配到一个搜索组中。
-
唯一组。每个唯一项目属性一组。独特 属性不能与项目中的其他项目属性组合 搜索。搜索结果只能是0或1个跟踪实体 实例。
-
非唯一组。该组包含所有非唯一项目 属性,并可以在一个属性中组合多个属性 搜索。
在 节目详情 配置中,可以为节目搜索设置两项限制。
- 搜索所需的最少属性数量:此属性 定义必须输入多少个非唯一属性 才能执行搜索。
-
要返回的被追踪实体最大数量:此属性定义了 搜索必须通过限制用户可获取的匹配追踪实体数量来实现 他们的搜索条件。如果匹配的记录数超过此设置,他们将不会 返回。此时,用户必须提供更具体的搜索条件,以减少结果数量 匹配记录的数量,然后才会返回结果。有关限制的更多信息 此处。
NOTE
This maximum limit setting is only applied to search results when searching outside the users capture org unit. Within the capture scope, the user can see any number of results.
配置搜索以跟踪实体类型¶
注意
TET =跟踪的实体类型
为了能够在没有项目的情况下进行搜索,您必须做一些 TET属性可搜索。唯一的TET属性将始终是 可搜索的。
-
Open Tracked entity type app
-
打开一个跟踪实体类型
-
如果TET没有属性,请添加一个
-
将属性设置为可搜索
可搜索的 TET 属性将被分配到一个搜索组中。
-
唯一组。每个唯一的TET属性一组。独特属性 不能与搜索中的其他TET属性结合使用。结果 来自搜索的只能是0或1个跟踪的实体实例。
-
非唯一组。该组包含所有非唯一的TET属性 并可以在搜索中组合多个属性。
可以为TET搜索设置两个限制
- 搜索所需的最少属性数量:此属性 定义必须输入多少个非唯一属性 才能执行搜索。
-
返回的跟踪实体类型的最大数量:此属性通过限制允许用户为其搜索条件获取的匹配跟踪实体类型的数量,定义搜索的特定程度。如果匹配的记录数大于此最大值,则不会返回它们。在返回匹配记录之前,用户必须提供更具体的搜索条件,以减少匹配记录的数量。
NOTE
This maximum is only applied to search results outside the users capture org unit. Within the capture scope, the user can see any number of results.
为用户配置搜索组织单位¶
若要在用户数据录入组织单位以外的其他组织单位中进行搜索, 必须将搜索组织单位分配给该用户。将搜索组织单位分配给用户后, 该用户还将获得在该组织单位所有子单位中进行搜索的权限。
-
开启**使用者应用程式**
-
点击一个用户
-
打开**分配搜索组织单位**
-
选择组织单位
-
点击**保存**
克隆元数据对象¶
克隆数据元素或其他对象可以在创建时节省时间 许多相似的对象。
-
打开**维护**应用项目,找到元数据对象类型 你想克隆。
-
在对象列表中,单击选项菜单并选择**克隆**。
-
修改所需的选项。
-
点击**保存**。
删除元数据对象¶
注意
您只能在以下情况下删除数据元素和其他数据元素对象: 没有数据与数据元素本身关联。
警告
从系统删除的所有数据集都将不可避免地丢失。所有 数据输入表格,以及可能已经制定的部分表格 也将被删除。确保您已经备份了您的 数据库,然后删除任何数据集,以防您需要还原它 在某个时间点。
-
打开**维护**应用项目,找到元数据对象类型 您要删除。
-
在对象列表中,单击选项菜单并选择**删除**。
-
点击**确认**。
更改元数据对象的共享设置¶
您可以为元数据对象分配不同的共享设置,例如 示例组织单位和跟踪的实体属性。这些分享 设置可控制哪些用户和用户组可以查看或编辑 元数据对象。
某些元数据对象还允许您更改该对象 数据条目的共享设置。这些附加设置用于控制谁可以 查看或使用该元数据在表单字段中输入数据。
注意
默认设置是所有人(公共访问权限)都可以找到, 查看和编辑元数据对象。
-
打开**维护**应用项目,找到元数据对象类型 您要修改。
-
在对象列表中,单击右键并选择 共享 设置**。
-
(可选)添加用户或用户组:搜索一个或多个用户 分组并选择它。用户或用户组已添加到列表中。
-
更改要修改的访问组的共享设置。
-
可以编辑和查看:访问组可以查看和编辑 目的。
-
只能查看:访问组可以查看对象。
-
禁止访问(仅适用于**公共访问**):公众 将无法访问该对象。
-
-
更改您要访问的访问组的数据共享设置 修改。
-
可以捕获数据:访问组可以查看和捕获数据 为对象。
-
可以查看数据:访问组可以查看以下数据: 目的。
-
无访问权限:访问组将无法访问以下数据: 物体。
-
-
点击**关闭**。
显示元数据对象的详细信息¶
-
打开**维护**应用项目,找到元数据对象类型 您想查看。
-
在对象列表中,单击选项菜单,然后选择 显示 细节。
翻译元数据对象¶
DHIS2提供了用于翻译数据库内容的功能, 示例数据元素,数据元素组,指标,指标组 或组织单位。您可以将这些元素转换为任意数量的 语言环境。地区代表特定的地理,政治或 文化区。
提示
要激活翻译,请打开 System Settings 应用项目,单击 > **外观**并选择一种语言。
-
打开**维护**应用项目,找到元数据对象类型 您要翻译。
-
在对象列表中,单击选项菜单并选择**翻译**。
Tip
If you want to translate an organisation unit level, click directly on the Translate icon next to each list item.
-
选择一个语言环境。
-
输入**名称**、简称**和**说明。
-
点击**保存**。










