跳转至
For the complete DHIS2 documentation index, see llms.txt.

DHIS2 服务{ #android_sdk_dhis2_services }

DHIS2 业务逻辑{ #dhis2-business-logic }

SDK 资源库提供元数据访问权限,允许创建和修改数据,但在数据验证方面比较懒惰。例如,如果注册已完成,就不允许用户创建新事件。SDK 资源库不会对此进行验证,而是直接创建新事件;应用程序负责阻止创建新事件。

为了让这项任务变得更容易,SDK 包含了一些评估纯 DHIS2 业务逻辑的服务。这些服务位于相关模块中,通常以 Service 作为后缀。例如

Java // 事件服务 d2.eventModule().eventService() | .canAddEventToEnrollment("enrollment_uid", "program_stage_uid") | .getEditableStatus("event_uid") | .isEditable("event_uid") | .hasDataWriteAccess("event_uid")

// 注册服务 d2.enrollmentModule().enrollmentService() | .getEnrollmentAccess("tracked_entity_instance_uid", "program_uid") | .isOpen("enrollment_uid")

// 跟踪实体实例服务 d2.trackedEntityModule().trackedEntityInstanceService() | .inheritAttributes("from_tei_uid", "to_tei_uid", "program_uid")

请查看集成开发环境中的 javadoc 文档,了解每个方法的详细信息。

## 值类型助手{ #value-type-helper } 

SDK 包含一个名为 "ValueType "的枚举辅助类。该类定义了 DHIS2 中所有不同类型的值。此外,您还可以为每种类型的值找到一个验证器,并找到值类型的相关信息,如日期、字符串、布尔或其他类型。

要访问值的类型,只需通过 valueType 的方法即可。

```Java
    valueType.isInteger();
    valueType.isDecimal();
    valueType.isNumeric();
    valueType.isBoolean();
    valueType.isText();
    valueType.isDate();
    valueType.isFile();
    valueType.isCoordinate();
    valueType.isGeo();
    valueType.isJson();

从 valueType 开始验证一个值的方法如下:

Java valueType.getValidator().validate("value"); ```

该验证器将返回一个 Result 结果,可以是 SuccessFailure。此外,每种 ValueType 都会返回不同类型的错误,这样如果值没有通过验证,就能更容易地找出问题所在。