IDS - 综合疾病监测安装指南{ #ids-agg-installation }¶
本文件包括 IDS 聚合软件包的安装指南。
系统默认语言:系统默认语言:英语
可用翻译法语
总览¶
元数据参考和元数据 json 文件提供了软件包版本和内容的技术细节。
元数据包由以下模块组成:
- 综合疾病监测
- 综合疾病监测(仪表板)
安装¶
模块的安装包括以下几个步骤:
在开始 DHIS2 的安装和配置过程之前,建议首先阅读安装指南的各个部分。根据导入类型确定适用的章节:
- 导入空白的 DHIS2 实例
- 导入具有现有元数据的 DHIS2 实例。
本文件中概述的步骤应在测试/暂存 DHIS2 实例中进行测试,然后才应用于生产环境。
要求¶
安装模块需要 DHIS2 的管理员用户账户。
应格外注意确保服务器本身和 DHIS2 应用程序的安全,并应定义对所收集数据的访问权限。有关 DHIS2 系统安全的详细信息不在本文讨论范围之内,请参阅DHIS2 文档。
元数据文件{ #metadata-files }¶
尽管并非总是必要,但在将元数据文件导入DHIS2之前对其进行某些修改通常可能是有利的。
准备元数据文件{ #preparing-the-metadata-file }¶
默认数据维度¶
在 DHIS2 早期版本中,默认数据维度的 UID 是自动生成的。因此,虽然所有 DHIS2 实例都有默认类别选项、数据元素类别、类别组合和类别选项组合,但这些默认值的 UID 可能不同。DHIS2 的后期版本对默认维度的 UID 进行了硬编码,这些 UID 在配置包中使用。
为避免导入元数据时发生冲突,建议搜索并替换整个 .json 文件中所有出现的这些默认对象,将 .json 文件中的 UID 替换为导入该文件的实例中的 UID。表 1 显示了应替换的 UID,以及用于识别现有 UID 的 API 端点
| 目的 | 用户标识 | 应用程序接口端点 |
|---|---|---|
| 类别 | GLevLNI9wkl | .../api/categories.json?filter=name:eq:default。 |
| 类别选项 | xYerKDKCefk | .../api/categoryOptions.json?filter=name:eq:default。 |
| 不 | bjDvmb4bfuf|.../api/categoryCombos.json?filter=name:eq:default`。 | |
| 类别选项组合 | HllvX50cXC0 | .../api/categoryOptionCombos.json?filter=name:eq:default`。 |
使用列出的 API 请求识别实例中默认 dimesions 的 UID,并用实例中的 UID 替换 json 文件中的 UID。
注
请注意,必须使用纯文本编辑器,而不是 Microsoft Word 等文字处理程序来执行搜索和替换操作。
指标类型¶
指标类型是另一种可能造成导入冲突的对象类型,因为某些名称在不同的 DHIS2 数据库中 使用(如 "百分比")。由于指标类型由其因子(包括 "仅分子 "指标的 1)定义,因此它们是明确的,可通过搜索和替换 UID 来替换。这种方法有助于避免潜在的导入冲突,并防止实施者创建重复的指标类型。下表包含可替换的 UID,以及用于识别现有 UID 的 API 端点:
| 目的 | 用户标识 | 应用程序接口端点 |
|---|---|---|
| 仅分母(数字) | kHy61PbChXr | .../api/indicatorTypes.json?filter=number:eq:true&filter=factor:eq:1`。 |
使用根组织单位 UID 的可视化{ #visualizations-using-root-organisation-unit-uid }¶
分配给特定组织单位级别或组织单位组的可视化、事件报告、报告表和地图都有一个对根(第 1 级)组织单位的引用。此类对象(如果存在于元数据文件中)包含一个占位符 <OU_ROOT_UID>。使用 .json 文件编辑器中的搜索功能可以识别该占位符,并将其替换为目标实例中 1 级组织单位的 UID。
选项代码{ #option-codes }¶
根据 DHIS2 命名规则,元数据代码使用大写字母、下划线和空格。可能出现的一些例外情况在相应的软件包文档中有所说明。 当前软件包中元数据对象的所有代码都符合命名约定。目标数据库中使用的现有元数据对象的代码可能使用小写字母。在这种情况下,必须直接在数据库中更新这些值。
重要**
在导入过程中,现有的选项代码将被更新的大写代码覆盖。 为了更新数据库中现有数据的数据值,必须使用数据库命令更新数据库中存储的值。 在替换值之前,请确保映射现有的旧选项代码和新选项代码。先使用暂存实例,然后再在生产服务器上进行调整。
对于数据元素值,请使用
``SQL UPDATE programstageinstance SET eventdatavalues = jsonb_set(eventdatavalues,'{"### 选项的排序顺序{ #sort-order-for-options }
检查系统中选项的排序顺序 `sortOrder` 是否与元数据包中选项的排序顺序一致。这仅适用于 json 文件和目标实例包含相同 UID 的选项和选项集时。
导入后,确保选项集中选项的排序顺序从 1 开始,排序顺序值中不应有间隙(如 1、2、3、5、6)。
排序顺序可在维护应用程序中调整。
1. 转到适用的选项集
2. 打开 "选项 "部分
3. 使用 "按名称排序"、"按代码/数值排序 "或 "手动排序"。
IDS 软件包包含一个选项集和两个选项:
``json
{
"optionSets":[
{
"名称":"是/否(数字)"、
"id":"TdDqpX1kdd2"、
"代码":"YES_NO_NUM"、
"valueType"(值类型):"integer_zero_or_positive"(整数或正数)、
"选项": [[
{
"id":"VavIEUmBv8j"
},
{
"id":"Xu8ieCbS7jH"
}
]
}
],
"选项":[
{
"名称":"是"、
"id":"VavIEUmBv8j"、
"代码":"1",
"sortOrder":1,
"optionSet":{
"id":"TdDqpX1kdd2"
}
},
{
"名称":"没有"、
"id":"Xu8ieCbS7jH"、
"代码":"0",
"sortOrder":2,
"optionSet":{
"id":"TdDqpX1kdd2"
}
}
]
}
该 "是/否 "选项集以 "INTEGER_ZERO_OR_POSITIVE "选项值为基础,这些值被分配给两个数据元 素,并在下面列出的预测器中进行评估:
| 类型 | 名称 | 用户标识 | 详细信息 |
|---|---|---|---|
| 数据元素 | IDS 一名年龄大于 5 岁的人死于严重急性肢体残疾 | v2FeCwrKNt5 | 在数据集中使用:m9yPuQEqxmS, ZyZmZTUwctj |
| 数据元素 | IDS 两名或更多 2 岁及以上的儿童严重脱水或死亡(时间和地点相关)。 | ZOVJGcrCdCH | 在数据集中使用:m9yPuQEqxmS, ZyZmZTUwctj |
| 预测变量 | IDS - 霍乱/AWD 警报 | nrJQj0Kxp03 | 生成器: if( #{ZOVJGcrCdCH}>= 1 || #{my2vljFIgT3}>= 1 || #{v2FeCwrKNt5}>= 1,1,0) |
人口数据{ #population-data }¶
IDS 软件包包括与**人口**数据有关的数据元素、指标和其他元数据对象。
| 数据元素 | 用户标识 |
|---|---|
| GEN - 人口 | DkmMEcubiPv |
| GEN - 每周人口 | iLEkjJcYTJd |
| GEN - 人口 < 15 岁 | cPLAnOTldta` |
如果目标实例已有元数据基础架构,可用于收集**人口数据**,请参考以下步骤:
- 选择对齐目标实例和 .json 文件中人口元数据的策略。
- 替代方案 1:用目标系统中的 UID 替换 json 文件中数据元素的 UID 及其所有出现次数
-
替代方案 2:考虑用 json 文件中的 UID 替换目标系统中这些数据元素的 UID。GEN 数据元素是 DHIS2 核心元数据文件库的一部分,并在其他元数据包中使用。
-
使用**人口数据**的指标将在输入数据的层面/层面上汇总数据。
-
导入软件包后可能还需要额外的映射和配置。请参阅数据集配置部分
注
当更新现有 DHIS2 实例中元数据元素的 UID 时,您需要在数据库中运行 SQL 命令,并在其他元数据对象(预测器、指标、验证规则表达式等)中替换其 UID 的所有出现和引用。
预测因素{ #idsr-predictors }¶
该软件包包括以下预测因子:
| 名称 | 用户标识 | 期间类型 | 缺失值策略 | 输出数据元素 - 名称 | 输出数据元素 - UID | 组织单位级别 |
|---|---|---|---|---|---|---|
| IDS - 急性扁桃体瘫痪爆发 | vclhob0deoe | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 急性扁桃体瘫痪爆发 | yCjneRUc565 | 县级 | ||
| IDS - 霍乱/AWD 警报 | nrJQj0Kxp03 | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 霍乱/AWD 警报 | k2hYvS8LTFl | 县级 | ||
| IDS - 霍乱爆发 | b64lroD7kZI | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 霍乱爆发 | fVYqPV4Yfuv | 县级 | ||
| IDS - 登革热警报 | r64RbaAOIri | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 登革热警报 | j3t0jhGOHHP | 县级 | ||
| IDS - 腹泻伴血警报 | Frp6BqdLOsQ | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 腹泻伴血警报 | ZYvr5OITjBa | 县级 | ||
| IDS - 白喉警报 | eZad6JpXT0E | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 白喉警报 | qFGp7kAZ5Me | 县级 | ||
| IDS - 麻疹确诊疫情 | sieOmlObW8L | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 麻疹确诊疫情 | Z1lCDUuuuHg | 县级 | ||
| IDS - 麻疹疑似疫情 | C1ocEPMZUWn` | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 麻疹疑似疫情 | mZ08SCurQVX | 县级 | ||
| IDS - 脑膜炎警报 | qN9hTkwE4Ye | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 脑膜炎警报 | KNruIU8QeKP | 县级 | ||
| IDS - 脑膜炎爆发 | HXBvKxWaujs | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 脑膜炎爆发 | I3570OWVcKN | 县级 | ||
| IDS - 新生儿破伤风警报 | iuNfzUx351B | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 新生儿破伤风警报 | RGXZgVrOQyo | 县级 | ||
| IDS - 非新生儿破伤风警报 | SQ5BUEZpsgd | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 非新生儿破伤风警报 | f45l3xKDAPs | 县级 | ||
| IDS - 百日咳警报 | BlwExnIXNEA | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 百日咳警报 | I5V4NUxtTre | 县级 | ||
| IDS - 狂犬病警报 | mdYA6Hfl2J4 | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 狂犬病警报 | f3MTBlkGjZw | 县级 | ||
| IDS - 病毒性出血热警报 | XhrFVuATU9L | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 病毒性出血热警报 | BSyp9DU4HWn | 县级 | ||
| IDS - 黄热病警报 | hub5RjpxB7b | ADX 数据消息的结构与您可能的结构非常相似 | ||||
| 从前面描述的 DXF 2 数据中已经熟悉了。有一个 | ||||||
| 几个重要的区别。我们将描述这些差异 | ||||||
| 参考一个小例子: | 如果所有值都缺失,则跳过 | IDS - 黄热病警报 | jUaZniVe1Uq | 县级 |
预测器元数据包括用于聚合数据值的组织单位级别。软件包元数据文件包含占位符,需要用目标数据库中相应组织单位级别的 UID 替换。
准备导入预测因子的步骤如下:
- 确定将汇总预测因子数据的地区级组织单位级别 UID。使用以下 API 端点确定所需的 UID:
.../api/organisationUnitLevels.json?fields=id,name。 - 在 json 文件中找到以下组织单位级别占位符:
<OU_LEVEL_DISTRICT_UID> - 用目标实例中已识别设备级别的 UID 替换占位符。
验证规则{ #idsr-validation-rules }¶
元数据参考文件中列出了软件包中包含的所有验证规则。
所有验证规则的组织单位组都设置为地区级别。地区级别值位于每个验证规则的 "organisationUnitLevels "属性中。默认设置为3`。在导入软件包之前,请调整元数据文件中的这些级别,使其与目标实例中的地区级别相匹配。
验证规则通知{ #idsr-validation-notifications }¶
元数据参考文件中列出了软件包中包含的所有验证通知。
请注意,此软件包的所有验证规则通知都设置为 "单个通知"。这意味着在触发通知时,每个组织单位/周期组合都会发出一份通知。这也可以配置为 "集体汇总"。发送这些通知的策略位于每个验证通知的 "发送策略 "属性中。默认设置为SINGLE_NOTICIATION。如果您想在导入软件包前更改该策略,请在元数据文件中将这些值调整为COLLECTIVE_SUMMARY`。
注:请注意,您也可以在导入每个验证规则通知后,随时在维护中更改这一点,因为您可能想演示或测试这两种策略,以选择适合自己设置的策略*。
导入元数据¶
使用 Import/Export DHIS2 应用程序导入元数据包。建议在尝试实际导入元数据之前使用 "模拟运行 "功能来发现问题。如果 "模拟运行 "报告了任何问题或冲突,请参阅下面的[导入冲突](#处理-导入-冲突)部分。如果 "试运行"/"验证 "导入无误,请尝试导入元数据。如果导入成功且无任何错误,则可以继续配置 模块。在某些情况下,"模拟 "过程中不会显示导入冲突或问题,但在尝试实际导入时会显示。在这种情况下,导入摘要将列出需要解决的任何错误。
处理导入冲突¶
注
如果将软件包导入新的 DHIS2 实例,由于目标数据库中没有元数据,因此不会出现导入冲突。导入元数据后,进入"配置 "部分。
可能会发生多种冲突,但最常见的是配置包中的元数据对象的名称、简称和/或代码已经存在于目标数据库中。这些问题有几种不同的解决方案,各有利弊。例如,哪种方案更合适取决于发生冲突的对象类型。
备选方案1¶
重命名 DHIS2 数据库中存在冲突的现有对象。这种方法的优点是无需修改 .json 文件,而是通过 DHIS2 的用户界面进行更改。这可能更不容易出错。这也意味着配置包保持原样,例如在发布包更新时,这可能是一个优势。在培训材料和文档中也经常引用原始软件包对象。
备选方案2¶
重命名.json文件中存在冲突的对象。这种方法的优点是现有的DHIS2元数据保持不变。当存在培训材料或文档(例如链接到所讨论对象的数据字典的SOP)时,这可能是一个因素,并且不存在通过修改用户熟悉的元数据而使用户感到困惑的风险。
请注意,对于备选项1和2,修改可以简单到在名称中添加一个小的前缀/后缀,以最大程度地减少混乱的风险。
备选3¶
第三种也是更复杂的方法是修改.json文件以重新使用现有的元数据。例如,在某个概念的某个选项集已经存在的情况下(例如“性别”),可以从.json文件中删除该选项集,并且对其UID的所有引用都将替换为数据库中已经存在的相应选项集。这样做的最大优点(不限于直接导入冲突的情况)是避免在数据库中创建重复的元数据。执行这种类型的修改时,需要考虑一些关键因素:
- 它需要有关DHIS2详细元数据结构的专业知识
- 该方法不适用于所有类型的对象。特别地,某些类型的对象具有依赖关系,这种依赖关系以这种方式难以解决,例如与分解有关。
- 将来对配置包的更新将很复杂。
组态¶
成功导入所有元数据后,需要执行一些步骤,模块才能正常运行。
分享中¶
首先,您必须使用 DHIS2 的*共享*功能来配置哪些用户(用户组)应查看与程序相关的元数据和数据,以及谁可以在程序中注册/输入数据。默认情况下,共享配置如下:
- 仪表板
- 可视化、地图、事件报告和报告表格
- 数据集
- 表格对象类型和关键字
有关共享的更多信息,请参阅 DHIS2 文档。
软件包包括三个核心用户组:
- IDS 访问(查看元数据/查看数据)
- IDS 管理员(查看和编辑元数据/无法访问数据)
- IDS 警报(查看元数据/捕获和查看数据)
用户会根据其在系统中的角色被分配到相应的用户组。软件包中其他对象的共享可能会根据设置进行调整。更多信息请参阅 DHIS2 共享文档。
用户角色¶
用户将需要用户角色才能参与DHIS2中的各种应用程序。建议以下最低角色:
- 汇总数据分析:可访问仪表盘、数据可视化器、数据透视表、报告和地图。
- 汇总数据采集:可进入数据录入应用程序,添加/修改数据值、
有关配置用户角色的更多信息,请参阅 DHIS2 文档。
组织单位分配{ #organisation-unit-assignment }¶
数据集必须分配给现有层次结构中的组织单位,以便数据输入和数据分析人员使用。
在调度程序中创建工作{ #idsr-scheduling }¶
您必须使用 scheduler app 才能利用软件包中的预测器和验证通知组件。您至少需要 3 个作业,顺序如下:
- 预测变量
- 分析表
- 监测
您希望在运行下一个作业前完成每个作业(即预测器应在分析开始前全部创建;监控作业应在分析完成后才开始)。每个 DHIS2 实施方案都需要审查其配置,以确定运行每个作业所需的时间,并相应地安排它们。建议您在深夜 DHIS2 实例内活动不多时运行这些作业,因为这些作业一般都是资源密集型作业。
为每种工作类型提供几个小贴士:
预测变量¶
预测作业由相对的开始和结束日期组成。这意味着您可以运行最近一段时间的预测器,生成所需的最新数据。如果您之前的数据没有更改,这将非常有用,因为其他预测值已经生成并存储(因此,对于那些已经生成但仍然有效的值,这个过程不一定需要再次发生)。这种操作耗费的资源特别多,如果以前的数据不是经常变化,建议采用为需要数据的最近时期生成数据的方法。
您还可以选择要在任务中运行的特定预测器或预测器组。此软件包的预测组简称为 "IDS"。如果您选择多个组,它将按照所选组的顺序运行预测器。您可以在 DHIS2 文档 中阅读更多相关信息。
这需要是序列中启动的第一个任务,并应在下一个任务(分析)启动前完成。
分析表{ #analytics-table }¶
分析表作业会获取所有已输入的原始数据,并根据配置对其进行必要的聚合。如果您使用的是集成系统,在实例中包含多个程序,那么您可能已经安排了一个分析表作业在常规时间间隔内运行。如果是这种情况,您可能需要修改它的运行周期,以便它能在预测器任务完成后运行。
这需要作为序列中的第二项工作,并应在下一项工作(监控)开始前完成。
监控¶
与预测器类似,监控任务也包括相对的开始和结束日期。如果您的数据在之前的时间段内没有变化,您可以只在需要查看的时间段内运行监控任务。
您可以为监控任务指定验证规则组。使用验证规则组 "IDS - Weekly "创建一个每周运行一次的监控任务
如果要发送验证通知,请确保选择了 "发送通知 "项。

发送通知{ #sending-out-notifications }¶
默认情况下,通知将通过 DHIS2 消息应用程序发送。
要通过短信或电子邮件发送通知,您需要在 DHIS2 实例中设置短信网关 和/或电子邮件配置。这些必要的设置因实施方式而异,最好查阅此处提供的文档链接以获取更多信息。
重复的元数据¶
注意
本节仅适用于导入已有元数据的 DHIS2 数据库。如果您使用的是新的 DHIS2 实例,请跳过本节,转到调整程序。 如果您正在使用任何依赖于当前元数据的第三方应用程序,请考虑到此更新可能会破坏它们"。
即使成功导入了元数据而没有任何导入冲突,元数据中也可能存在重复项-数据元素,跟踪的实体属性或已存在的选项集。正如上面有关解决冲突的部分所述,要牢记的一个重要问题是,在DHIS2中更改元数据的决定还需要考虑与现有元数据有不同关联的其他文档和资源。 ,以及通过配置包导入的元数据。因此,解决重复项不仅是“清理数据库”的问题,而且还要确保做到这一点,例如,不破坏与其他系统的集成,使用培训材料的可能性,破坏SOP等。这将非常很大程度上取决于上下文。
需要牢记的重要一点是,DHIS2 有一些工具可以隐藏元数据中潜在重复的一些复杂问题。例如,如果存在重复的选项集,可以通过[共享](#sharing)为用户组隐藏这些选项集。
调整计划{ #adapting-the-program }¶
程序导入后,您可能需要对程序进行某些修改。可以**的本地改编例子包括:
- 向表单添加其他变量。
- 根据国家惯例调整数据元素名称。
- 向变量和/或数据输入表单添加翻译。
- 根据当地案例定义修改指标
- 添加仪表盘/仪表盘项目
不过,我们强烈建议,如果您决定更改或删除任何包含的表单/元数据,请务必小心谨慎。修改有可能会破坏功能,例如预测器或通知。
删除元数据{ #removing-metadata }¶
为了保持实例整洁并避免出错,建议您删除实例中不必要的元数据。删除不必要的元数据需要 DHIS2 的高级知识和各种依赖关系。