Saltar a contenido
For the complete DHIS2 documentation index, see llms.txt.

DHIS2 services

DHIS2 Business Logic

Los repositorios SDK dan acceso a metadatos y permiten crear y modificar datos, pero son perezosos cuando se trata de la validación de datos. Por ejemplo, en el caso de que una inscripción esté COMPLETA, no debería permitir al usuario crear nuevos eventos. Los repositorios del SDK no validan esto y simplemente crearán el nuevo evento; la aplicación es responsable de bloquear la creación de nuevos eventos.

Para facilitar esta tarea, el SDK incluye algunos servicios que evalúan la lógica de negocio pura de DHIS2. Se encuentran en su módulo relacionado y normalmente tienen el sufijo Service. Algunos ejemplos de esto:

// Event services
d2.eventModule().eventService()
    | .canAddEventToEnrollment("enrollment_uid", "program_stage_uid")
    | .getEditableStatus("event_uid")
    | .isEditable("event_uid") 
    | .hasDataWriteAccess("event_uid")

// Enrollment services
d2.enrollmentModule().enrollmentService()
    | .getEnrollmentAccess("tracked_entity_instance_uid", "program_uid")
    | .isOpen("enrollment_uid")

// Tracked entity instance services
d2.trackedEntityModule().trackedEntityInstanceService()
    | .inheritAttributes("from_tei_uid", "to_tei_uid", "program_uid")

Consulte la documentación de javadoc en el IDE para conocer más detalles sobre cada método.

Value Type helper

The SDK include a enum helper class called ValueType. This class defines all the different types of values that you can find in DHIS2. In addition, for each of them you can find a validator for the type of value and information about the type of value it is, whether it is a date, a string, a boolean or other type.

Para acceder al tipo de valor, simplemente puede acceder a él a través de los métodos del valueType.

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

Para validar un valor a partir de su valueType se puede hacer de la siguiente manera:

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

Este validador devolverá un Resultado que puede ser Éxito o Fallo. Además, cada ValueType devolverá diferentes tipos de errores, lo que facilitará la identificación del problema si el valor no pasa la validación.