Covid-19 Electronic Immunization Registry - Tracker Installation Guide¶
This document includes an installation guide for the updated COVAC Electronic Immunization Registry tracker package and a supplementary aggregate module for daily reporting based on tracker data.
Idioma predeterminado del sistema: Inglés
Available translations: French, Spanish, Portuguese
Instalación¶
La instalación del módulo consta de varios pasos:
- Preparar el archivo de metadatos con metadatos DHIS2.
- Importar el archivo de metadatos en DHIS2.
- Configurar los metadatos importados.
- Adaptar el programa después de la importación
Se recomienda leer primero cada sección de la guía de instalación antes de comenzar el proceso de instalación y configuración en DHIS2. Identifique las secciones aplicables según el tipo de su importación:
- importar a una instancia DHIS2 en blanco
- importar a una instancia DHIS2 con metadatos existentes.
Los pasos descritos en este documento deben probarse en una instancia de prueba/preparación de DHIS2 y solo luego aplicarse a un entorno de producción.
Requisitos¶
Para instalar el módulo, se requiere una cuenta de usuario administrador en DHIS2.
Se debe tener mucho cuidado para garantizar que el servidor en sí y la aplicación DHIS2 estén bien protegidos, asimismo se deben definir los derechos de acceso a los datos recopilados. Los detalles sobre cómo proteger un sistema DHIS2 están fuera del alcance de este documento, por lo que remitimos a la documentación de DHIS2.
Archivos de metadatos¶
Si bien no siempre es necesario, a menudo puede resultar ventajoso realizar ciertas modificaciones en el archivo de metadatos antes de importarlo a DHIS2.
The Covid-19 Electronic Immunization Registry tracker package includes three metadata files. The contents and purposose of each individual file are described below:
| Package identifier | Contents | Purpose |
|---|---|---|
| CVC_EIR-TRK-Electronic_Immunization_Registry_Covid19_Vaccines | Updated tracker package, aggregate data set for automated tracker-to-aggregate-transfer, dashboard based on aggregate indicator values | New implementation |
| CVC_EIR-AGG-Electronic_Immunization_Registry_Covid19_Vaccines | Aggregate data set for automated tracker-to-aggregate-transfer, dashboard based on aggregate indicator values | Update to an existing tracker implementation, Setup of tracker-to-aggregate transfer, Use of Daily aggregate dashboard |
| CVC_EIR-PI-Electronic_Immunization_Registry_Covid19_Vaccines | 13 updated program indicators from the original package. PIs are mapped to the aggregate data elements and Category option combinations in the daily aggregate data set | Update to an existing implementation |
Note
The package is not an out-of-the-box tool for tracker-to-aggregate data transfer. The structure of the metadata package and the suggested mapping of metadata allow the implementer to set up the transfer of data based on existing tools and guidance. More information is available in the Tracker to aggregate data Transfer Document.
Preparar el archivo de metadatos¶
Mapping guide for data transfer¶
The 13 program indicators that can be used for tracker-to-aggregate data transfer are mapped to the corresponding data elements and category option combinations of the aggregate data set.
Example
Program indicator Number of people receiving a first dose (Female 0-59)
RJ6pdxga9Odis mapped to the category option combination Female, 0-59 yearsFsZSFGKirY0of the data element COVAC - People with 1st doseRjT7dmzunF4
The mapping is based on codes of metadata objects.
The custom attribute Data element for aggregate data export vudyDP7jUy5 contains the reference code of the aggregate data elements, eg. CVC_EIR_AGG_PPL_1ST_DOSE
The Category option combination for agggregate export field contains reference codes of the category option combinations, eg. CVC_EIR_0059Y_F
The suggested transfer of the tracker-to-aggregate values is based on the following GET and POST API requests:
- Source request:
../api/analytics/dataValueSet.json?dimension=dx:"{program indicator uid/s}"&dimension=pe:"{relative period/s}"&dimension=ou:{organisation unit level}&outputIdScheme=ATTRIBUTE:{"custom attribute:vudyDP7jUy5"} - Target request:
..api/dataValueSets?dataElementIdScheme=CODE&categoryOptionComboIdScheme=CODE&importStrategy=CREATE_AND_UPDATE&mergeMode=REPLACE&dryRun=false
Program indicators¶
The program indicators required for the aggregation of the data values are included in the program indicator group COVAC - Tracker to aggregate NXBR4r6MwAO
| Program Indicator | UID | Code | DE for aggregate export | CoC for aggregate export |
|---|---|---|---|---|
| Number of people receiving a first dose (Female 0-59) | RJ6pdxga9Od | CVC_EIR_PPL_1ST_DOSE_0059Y_F | CVC_EIR_AGG_PPL_1ST_DOSE | 0059Y_F |
| Number of people receiving a first dose (Female 60+) | x4L0LuEBHhW | CVC_EIR_PPL_1ST_DOSE_60PLUSY_F | CVC_EIR_AGG_PPL_1ST_DOSE | 60PLUSY_F |
| Number of people receiving a first dose (Male 0-59) | hqm8znlAzkT | CVC_EIR_PPL_1ST_DOSE_0059Y_M | CVC_EIR_AGG_PPL_1ST_DOSE | 0059Y_M |
| Number of people receiving a first dose (Male 60+) | aIIHyDy8AMW | CVC_EIR_PPL_1ST_DOSE_60PLUSY_M | CVC_EIR_AGG_PPL_1ST_DOSE | 60PLUSY_M |
| Number of people receiving a second, third or booster dose (Female 0-59) | xY4T9hHXNji | CVC_EIR_PPL_2ND_DOSE_0059Y_F | CVC_EIR_AGG_PPL_2ND_DOSE | 0059Y_F |
| Number of people receiving a second, third or booster dose (Female 60+) | h9G7i6mQKef | CVC_EIR_PPL_2ND_DOSE_60PLUSY_F | CVC_EIR_AGG_PPL_2ND_DOSE | 60PLUSY_F |
| Number of people receiving a second, third or booster dose (Male 0-59) | MGjwUUNsE60 | CVC_EIR_PPL_2ND_DOSE_0059Y_M | CVC_EIR_AGG_PPL_2ND_DOSE | 0059Y_M |
| Number of people receiving a second, third or booster dose (Male 60+) | qh0kIjHZbP8 | CVC_EIR_PPL_2ND_DOSE_60PLUSY_M | CVC_EIR_AGG_PPL_2ND_DOSE | 60PLUSY_M |
| Number of people who received the last recommended dose for the respective vaccine product (Female 0-59) | Zp39TSOR8eW | CVC_EIR_PPL_LAST_DOSE_0059Y_F | CVC_EIR_AGG_PPL_LAST_DOSE | 0059Y_F |
| Number of people who received the last recommended dose for the respective vaccine product (Female 60+) | XFUvVgqPukT | CVC_EIR_PPL_LAST_DOSE_60PLUSY_F | CVC_EIR_AGG_PPL_LAST_DOSE | 60PLUSY_F |
| Number of people who received the last recommended dose for the respective vaccine product (Male 0-59) | FZNIlzPRMmL | CVC_EIR_PPL_LAST_DOSE_0059Y_M | CVC_EIR_AGG_PPL_LAST_DOSE | 0059Y_M |
| Number of people who received the last recommended dose for the respective vaccine product (Male 60+) | zovL7DKBRuK | CVC_EIR_PPL_LAST_DOSE_60PLUSY_M | CVC_EIR_AGG_PPL_LAST_DOSE | 60PLUSY_M |
| Underlying conditions - People with | Zn0UuSRYyJw | CVC_EIR_PPL_UNDER_CONDITIONS | CVC_EIR_AGG_PPL_UNDER_CONDITIONS | DEFAULT |
These program indicators are part of the original package but need to be updated because of the added mapping.
Note
If the original program indicators in your system were modified as part of local adaptation process, be aware that all changes will be overwritten once you import the updated set of program indicators. If any of your modified program indicators have the same UID as the program indicators listed in the table above, make sure to duplicate the modified program indicators before import.
Dimensión de datos predeterminada¶
En las primeras versiones de DHIS2, los UID de las dimensiones de datos predeterminadas se generaban automáticamente. Por lo tanto, si bien todas las instancias de DHIS2 tienen una opción de categoría predeterminada, una categoría de elemento de datos, una combinación de categoría y una combinación de opciones de categoría, los UID de estos valores predeterminados pueden ser diferentes. Las versiones posteriores de DHIS2 tienen UID codificados para la dimensión predeterminada y estos UID se utilizan en los paquetes de configuración.
Para evitar conflictos al importar los metadatos, es recomendable buscar y reemplazar en todo el archivo .json todas las apariciones de estos objetos predeterminados, reemplazando los UID del archivo .json con los UID de la instancia en la que se importará el archivo. La Tabla 1 muestra los UID que deben reemplazarse, así como los API endpoints para identificar los UID existentes
| Objeto | UID | API endpoint |
|---|---|---|
| Categoría | GLevLNI9wkl | ../api/categories.json?filter=name:eq:default |
| Opción de categoría | xYerKDKCefk | ../api/categoryOptions.json?filter=name:eq:default |
| Combinación de categoría | bjDvmb4bfuf | ../api/categoryCombos.json?filter=name:eq:default |
| Combinación de opciones de categoría | HllvX50cXC0 | ../api/categoryOptionCombos.json?filter=name:eq:default |
Identifique los UID de las dimensiones predeterminadas en su instancia utilizando las solicitudes API enumeradas y reemplace los UID en el archivo json con los UID de la instancia.
NOTA
Tenga en cuenta que esta operación de búsqueda y reemplazo debe realizarse con un editor de texto plano, no con un procesador de textos como Microsoft Word.
Tipos de indicadores¶
El tipo de indicador es otro tipo de objeto que puede crear conflictos de importación porque ciertos nombres se utilizan en diferentes bases de datos DHIS2 (por ejemplo, "Porcentaje"). Dado que los tipos de indicadores se definen por su factor (incluido 1 para indicadores "solo numerador"), no son ambiguos y se pueden reemplazar mediante una búsqueda y reemplazo de los UID. Este método ayuda a evitar posibles conflictos de importación y evita que el implementador cree tipos de indicadores duplicados. La siguiente tabla contiene los UID que podrían reemplazarse, así como los API endpoints para identificar los UID existentes:
| Objeto | UID | API endpoint |
|---|---|---|
| Sólo numerador (número) | CqNPn5KzksS | ../api/indicatorTypes.json?filter=number:eq:true&filter=factor:eq:1 |
Tipo de entidad Tracked¶
Like indicator types, you may have already existing tracked entity types in your DHIS2 database. The references to the tracked entity type should be changed to reflect what is in your system so you do not create duplicates. The table below contains the UIDs which could be replaced, as well as the API endpoints to identify the existing UIDs:
| Objeto | UID | API endpoint |
|---|---|---|
| Persona | MCPQUTHX1Ze | ../api/trackedEntityTypes.json?filter=name:eq:Person |
Visualizaciones utilizando el UID de la unidad organizativa raíz¶
Las visualizaciones, informes de eventos, tablas de informes y mapas que están asignados a un nivel de unidad organizativa específico o grupo de unidades organizativas tienen una referencia a la unidad organizativa raíz (nivel 1). Dichos objetos, si están presentes en el archivo de metadatos, contienen un marcador de posición <OU_ROOT_UID>. Utilice la función de búsqueda en el editor de archivos .json para identificar este marcador de posición y reemplazarlo con el UID de la unidad organizativa de nivel 1 en la instancia de destino.
Option codes¶
According to the DHIS2 naming conventions, the metadata codes use capital letters, underscores and no spaces. Some exceptions that may occur are specified in the corresponding package documentation. All codes included in the metadata objects in the current version of the package were adjusted to match the naming conventions. It may occur that the codes used in the earlier versions of the package used lower case characters. If data values in the existing implementations contain lower case codes, it is important to update those values directly in the database.
The table below contains all option sets where codes were changed to upper case in the metadata package. Before importing metadata into the instance, check whether the option sets in the existing system match those in the package .json and use the same upper case option codes.
| Option set name | Option set UID |
|---|---|
| COVAC - AEFI Pregnancy | ilxtWultuYP |
| COVAC - Occupation | CNNH0YKxRh9 |
| COVAC - Trimester | kgDmgTYZICP |
| COVAC Vaccine brand | UJTnyCB3cyk |
| COVAC - Vaccine Manufacturers | DtOGtoLbaB5 |
| COVAC - Vaccine Names | VQo3HkUlMHc |
| Sex | WDUwjiW2rGH |
| Yes/No/Unknown | L6eMZDJkCwX |
The table below contains metadata elements that use an affected option set:
| Metadata object | Nombre | UID |
|---|---|---|
| Elemento de datos | COVAC - Pregnancy | BfNZcj99yz4 |
| Elemento de datos | COVAC - Pregnancy gestation | CBAs12YL4g7 |
| Elemento de datos | COVAC - Previously infected with COVID | LOU9t0aR0z7 |
| Elemento de datos | COVAC - Underlying condition | bCtWZGjSWM8 |
| Elemento de datos | COVAC - Vaccine Brand | rWYryQb3ohn |
| Elemento de datos | COVAC - Vaccine Manufacturer | rpkH9ZPGJcX |
| Elemento de datos | COVAC - Vaccine Name | bbnyNYD1wgS |
| Tracked Entity Attribute | COVID - Occupation | LY2bDXpNvS7 |
| Tracked Entity Attribute | Sex | oindugucx72 |
Important
During the import, the existing option codes will be overwritten with the updated upper case codes. In order to update the data values for existing data in the database, it is necessary to update the values stored in the database using database commands. Make sure to map existing old option codes and new option codes before replacing the values. Use staging instance first, before making adjustments on the production server.
For data element values, use:
```SQL
UPDATE programstageinstance
SET eventdatavalues = jsonb_set(eventdatavalues, '{"<affected data element uid>","value"}', '"<new value>"')
WHERE eventdatavalues @> '{"<affected data element uid>":{"value": "<old value>"}}'::jsonb
AND programstageid=<database_programsatgeid>;
```
For tracked entity attribute values, use:
```SQL
UPDATE trackedentityattributevalue
SET value = <new value>
WHERE trackedentityattributeid=<affected trackedentityattribute database_id> AND value=<old value>;
```
Example
To replace the option code 'yes' with 'YES' for existing data values (data element COVAC - Previously infected with COVID
LOU9t0aR0z7) in the programstage with the id=1510410385 (example id), the command will be configured as follows:UPDATE programstageinstance SET eventdatavalues = jsonb_set(eventdatavalues, '{"LOU9t0aR0z7","value"}', '"YES"') WHERE eventdatavalues @> '{"LOU9t0aR0z7":{"value": "yes"}}'::jsonb AND programstageid=1510410385;
Option codes are also used in program rule expressions, program indicators, etc. If you are updating code options in your system, make sure you update the codes in all affected metadata objects.
Sort order for options¶
Check whether the sort order sortOrder of options in your system matches the sort order of options included in the metadata package. This only applies when the json file and the target instance contain options and option sets with the same UID.
After import, make sure that the sort order for options within an option set starts at 1. There should be no gaps (eg. 1,2,3,5,6) in the sort order values.
Sort order can be adjusted in the Maintenance app.
- Go to the applicable Option Set
- Open the "Options" section
- Use "SORT BY NAME", "SORT BY CODE/VALUE" or "SORT MANUALLY" alternatives.
Importar metadatos¶
Utilice la aplicación DHIS2 Importar/Exportar para importar paquetes de metadatos. Es recomendable utilizar la función de proceso de prueba "dry run" para identificar problemas antes de intentar realizar una importación real de los metadatos. Si el "dry run" informa algún problema o conflicto, consulte la sección conflictos de importación más abajo. Si la importación "dry run"/"validar" funciona sin errores, intente importar los metadatos. Si la importación se realiza correctamente sin errores, puede proceder a configurar el módulo. En algunos casos, los conflictos o problemas de importación no se muestran durante el proceso de prueba "dry run", pero aparecen cuando se intenta la importación real. En este caso, el resumen de la importación enumerará los errores que deben resolverse.
Gestión de conflictos de importación¶
NOTA
Si está importando el paquete a una nueva instancia de DHIS2, no experimentará conflictos de importación, ya que no hay metadatos en la base de datos de destino. Después de importar los metadatos, vaya a la sección “Configuración”.
Pueden ocurrir varios conflictos diferentes, aunque el más común es que haya objetos de metadatos en el paquete de configuración con un nombre, nombre corto y/o código que ya existe en la base de datos de destino. Hay un par de soluciones alternativas a estos problemas, con diferentes ventajas y desventajas. Cuál sea la más adecuada dependerá, por ejemplo, del tipo de objeto para el que se produce un conflicto.
Alternativa 1¶
Cambiar el nombre del objeto existente en su base de datos DHIS2 para el cual existe un conflicto. La ventaja de este enfoque es que no es necesario modificar el archivo .json, ya que los cambios se realizan a través de la interfaz de usuario de DHIS2. Es probable que esto sea menos propenso a errores. También significa que el paquete de configuración se deja como está, lo que puede ser una ventaja, por ejemplo, cuando se publican actualizaciones del paquete. Con frecuencia también se hace referencia a los objetos del paquete original en la documentación y los materiales de formación.
Alternativa 2¶
Cambiar el nombre del objeto para el que existe un conflicto en el archivo .json. La ventaja de este enfoque es que los metadatos DHIS2 existentes se dejan como están. Este puede ser un factor cuando existe material de formación o documentación como SOPs de diccionarios de datos vinculados al objeto en cuestión, y no implica ningún riesgo de confundir a los usuarios al modificar los metadatos con los que están familiarizados.
Tenga en cuenta que, tanto para la alternativa 1 como para la 2, la modificación puede ser tan simple como agregar un pequeño pre/post-fijo al nombre, para minimizar el riesgo de confusión.
Alternativa 3¶
Un tercer enfoque, más complicado, es modificar el archivo .json para reutilizar los metadatos existentes. Por ejemplo, en los casos en los que ya existe un set de opciones para un determinado concepto (por ejemplo, "sexo"), ese set de opciones podría eliminarse del archivo .json y todas las referencias a su UID podrían reemplazarse con el set de opciones correspondiente que ya se esté en la base de datos. La gran ventaja de esto (que no se limita a los casos en los que existe un conflicto de importación directo) es evitar la creación de metadatos duplicados en la base de datos. Hay algunas consideraciones clave que se deben tener en cuenta al realizar este tipo de modificación:
- requiere conocimiento especializado de la estructura detallada de metadatos de DHIS2
- el enfoque no funciona para todos los tipos de objetos. En particular, ciertos tipos de objetos tienen dependencias que son complicadas de resolver de esta manera, por ejemplo relacionadas con desagregaciones.
- las futuras actualizaciones del paquete de configuración serán complicadas.
Configuración¶
Una vez que todos los metadatos se hayan importado correctamente, hay algunos pasos que deben seguirse antes de que el módulo sea funcional.
Compartir¶
Primero, tendrá que usar la funcionalidad Compartir de DHIS2 para configurar qué usuarios (grupos de usuarios) deben ver los metadatos y los datos asociados con el programa, así como quién puede registrar/introducir datos en el programa. De forma predeterminada, el uso compartido se ha configurado para lo siguiente:
- Tipo de entidad Tracked
- Programa
- Etapas del programa
- Tableros
- Visualizaciones, mapas, informes de eventos y tablas de informes
- Sets de datos
- Opciones de categoría
Consulte la documentación DHIS2 para obtener más información sobre compartir.
Four core user groups are included in the package:
- COVAC - COVID-19 Immunization Data Analysis
- COVAC - COVID-19 Immunization Data Admin
- COVAC - COVID-19 Immunization Data Entry
- COVAC - COVID-19 Immunization Metadata Admin
By default, the following permissions are assigned to these user groups:
| Objeto | User Group | |||
|---|---|---|---|---|
| COVAC - COVID-19 Immunization Data Analysis | COVAC - COVID-19 Immunization Data Admin | COVAC - COVID-19 Immunization Data Entry | COVAC - COVID-19 Immunization Metadata Admin | |
| Tracked entity type | Metadatos: puede ver Datos: puede ver | Metadatos: puede ver Datos: puede ver | Metadatos : puede ver Datos: puede ver y capturar | Metadatos : puede ver y editar Datos: puede ver |
| Program | Metadatos: puede ver Datos: puede ver | Metadatos: puede ver Datos: puede ver | Metadatos : puede ver Datos: puede ver y capturar | Metadatos : puede ver y editar Datos: puede ver |
| Program Stages | Metadatos: puede ver Datos: puede ver | Metadatos: puede ver Datos: puede ver | Metadatos : puede ver Datos: puede ver y capturar | Metadatos : puede ver y editar Datos: puede ver |
| Dashboards | Metadata : can view | Metadata : can view | Sin acceso | Metadata : can edit and view |
| Data Sets | Metadatos: puede ver Datos: puede ver | Metadatos : puede ver Datos: puede ver y capturar | Sin acceso | Metadata : can edit and view Data: No access |
The users are assigned to the appropriate user group based on their role within the system. Sharing for other objects in the package may be adjusted depending on the set up. Refer to the DHIS2 Documentation on sharing for more information.
User roles¶
Los usuarios necesitarán roles de usuario para poder interactuar con las diversas aplicaciones dentro de DHIS2. Se recomiendan los siguientes roles mínimos:
- Análisis de datos Tracker: puede ver análisis de eventos y acceder a tableros, informes de eventos, visualizador de eventos, visualizador de datos, tablas dinámicas, informes y mapas.
- Captura de datos Tracker: puede agregar valores de datos, actualizar entidades de tracker, buscar entidades de tracker en unidades organizativas y acceder a la captura de tracker
Consulte la Documentación de DHIS2 para obtener más información sobre la configuración de roles de usuario.
Organisation units¶
The program and the data sets must be assigned to organisation units within existing hierarchy in order to be accessible via tracker capture/capture apps.
Metadatos duplicados¶
NOTE
This section only applies if you are importing into a DHIS2 database in which there is already meta-data present. If you are working with a new DHIS2 instance, please skip this section and go to Adapting the tracker program. If you are using any third party applications that rely on the current metadata, please take into account that this update could break them.
Incluso cuando los metadatos se han importado exitosamente sin ningún conflicto de importación, puede haber duplicados en los metadatos: elementos de datos, atributos de entidad tracker o set de opciones que ya existen. Como se señaló en la sección anterior sobre resolución de conflictos, una cuestión importante a tener en cuenta es que las decisiones sobre la realización de cambios en los metadatos en DHIS2 también deben tener en cuenta otros documentos y recursos que están asociados de diferentes maneras tanto con los metadatos existentes, como con los metadatos que se han importado a través del paquete de configuración. Por lo tanto, resolver duplicados no es sólo una cuestión de "limpiar la base de datos", sino también de asegurarse de que esto se haga sin, por ejemplo, romper la posible integración con otros sistemas, la posibilidad de utilizar material de capacitación, romper los SOP, etc. Esto dependerá en gran medida del contexto.
Una cosa importante a tener en cuenta es que DHIS2 tiene herramientas que pueden ocultar algunas de las complejidades de posibles duplicaciones en los metadatos. Por ejemplo, cuando existen set de opciones duplicados, se pueden ocultar para grupos de usuarios mediante compartir.
Adaptar el programa¶
Una vez que se haya importado el programa, es posible que desee realizar ciertas modificaciones en él. Algunos ejemplos de adaptaciones locales que podrían realizarse son:
- Añadir variables adicionales al formulario.
- Adaptar los nombres de los elementos de datos/opciones según las convenciones nacionales.
- Añadir traducciones a las variables y/o al formulario de entrada de datos.
- Modifying program indicators based on local case definitions
Sin embargo, se recomienda fuertemente tener mucho cuidado si decide cambiar o eliminar cualquiera de los formularios/metadatos incluidos. Existe el peligro de que las modificaciones puedan alterar la funcionalidad, por ejemplo las reglas y los indicadores de programa.
Eliminar metadatos¶
In order to keep your instance clean and avoid errors, it is recommended that you remove the unnecessary metadata from your instance.
The original dashboard COVAC - COVID-19 vaccine registry YYtAbckt77l has been removed from the updated package and replaced by the new dashboard: COVAC - Daily monitoring iBWlFCvvtkH
In order to remove the old dashboard from your system, you need to:
- Note the names/UIDs of all objects included on the dashboard.
- Remove all dashboard items from the dashboard and save.
- Delete the dashboard.
- Delete all visualizations, maps, event reports and report tables included in the original dashboard.
NOTE
It is possible to delete the dashboard, its dashboard items and all relevant visualizations, maps and reports directly from the database using SQL commands.