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 结果,可以是 Success 或 Failure。此外,每种 ValueType 都会返回不同类型的错误,这样如果值没有通过验证,就能更容易地找出问题所在。