Údržba¶
Resource and analytics tables¶
DHIS2 features a set of generated database tables which are used as a basis for various system functionality. These tables can be executed immediately or scheduled to be executed at regular intervals through the user interface. They can also be generated through the Web API as explained in this section. This task is typically one for a system administrator and not consuming clients.
The resource tables are used internally by the DHIS2 application for various analysis functions. These tables are also valuable for users writing advanced SQL reports. They can be generated with a POST or PUT request to the following URL:
/api/33/resourceTables
The analytics tables are optimized for data aggregation and used currently in DHIS2 for the pivot table module. The analytics tables can be generated with a POST or PUT request to:
/api/33/resourceTables/analytics
Tabulka: Volitelné parametry dotazu tabulek Analytiky
| Parametr dotazu | Možnosti | Popis |
|---|---|---|
| skipResourceTables | false | true | Přeskočit generování tabulek zdrojů |
| skipAggregate | false | true | Přeskočit generování souhrnných dat a dat o úplnosti |
| skipEvents | false | true | Přeskočit generování dat událostí |
| skipEnrollment | false | true | Přeskočit generování dat o zápisu |
| skipOrgUnitOwnership | false | true | Skip generation of organization unit ownership data |
| lastYears | celé číslo | Počet údajů za poslední roky, které mají být zahrnuty |
Note
lastYears=0 means latest or continuous analytics, as defined in Continuous analytics table.
"Kvalitu dat" a "Dohled nad daty" lze spustit prostřednictvím monitorovací úlohy, která se spouští pomocí následujícího koncového bodu:
/api/33/resourceTables/monitoring
This task will analyse your validation rules, find any violations and persist them as validation results.
These requests will return immediately and initiate a server-side process.
Údržba¶
To perform maintenance you can interact with the maintenance resource. You should use POST or PUT as a method for requests. The following methods are available.
Vymazání analytických tabulek zruší všechny analytické tabulky.
POST PUT /api/maintenance/analyticsTablesClear
Analýza analytické tabulky shromáždí statistiky o obsahu analytických tabulek v databázi.
POST PUT /api/maintenance/analyticsTablesAnalyze
Expired invitations clear will remove all user account invitations which have expired.
POST PUT /api/maintenance/expiredInvitationsClear
Period pruning will remove periods which are not linked to any data values.
POST PUT /api/maintenance/periodPruning
Zero data value removal will delete zero data values linked to data elements where zero data is defined as not significant:
POST PUT /api/maintenance/zeroDataValueRemoval
Odebráním hodnot s měkkými odstraněnými daty trvale odstraníte hodnoty s měkkými odstraněnými daty.
POST PUT /api/maintenance/softDeletedDataValueRemoval
Odebrání instance instance programu s měkkým odstraněním trvale odstraní události s měkkým odstraněním.
POST PUT /api/maintenance/softDeletedProgramStageInstanceRemoval
Odebrání instance programu s měkkým odstraněním trvale odstraní registrace s měkkým odstraněním.
POST PUT /api/maintenance/softDeletedProgramInstanceRemoval
Odstranění instance trasované entity s měkkým odstraněním trvale odstraní instance s trasovanou entitou s měkkým odstraněním.
POST PUT /api/maintenance/softDeletedTrackedEntityInstanceRemoval
Zrušit zobrazení SQL zruší všechna zobrazení SQL v databázi. Všimněte si, že neodstraní entity zobrazení DHIS2 SQL.
POST PUT /api/maintenance/sqlViewsDrop
Vytvoření pohledů SQL znovu vytvoří všechny pohledy SQL v databázi.
POST PUT /api/maintenance/sqlViewsCreate
Aktualizace kombinace možností kategorie odstraní zastaralé a vygeneruje chybějící kombinace možností kategorie pro všechny kombinace kategorií.
POST PUT /api/maintenance/categoryOptionComboUpdate
Je také možné aktualizovat kombinace možností kategorie pro kombo jedné kategorie pomocí následujícího koncového bodu.
POST PUT /api/maintenance/categoryOptionComboUpdate/categoryCombo/<category-combo-uid>
Vyčištění mezipaměti vymaže mezipaměť aplikace Hibernate a mezipaměti analytického oddílu.
POST PUT /api/maintenance/cacheClear
Aktualizace cest organizačních jednotek znovu vygeneruje vlastnost cesty organizační jednotky. To může být užitečné např. pokud jste importovali organiyační jednotky s SQL.
POST PUT /api/maintenance/ouPathsUpdate
Ořezání dat odstraní kompletní registrace datových sad, schválení dat, audity hodnot dat a hodnoty dat, v tomto případě pro organizační jednotku.
POST PUT /api/maintenance/dataPruning/organisationUnits/<org-unit-id>
Ořezávání dat pro datové prvky, které odstraní audity a hodnoty dat.
POST PUT /api/maintenance/dataPruning/dataElement/<data-element-uid>
Ověření metadat použije všechna pravidla ověření metadat a vrátí výsledek operace.
POST PUT /api/metadataValidation
Opětovné načtení aplikace obnoví mezipaměť spravovanou DHIS2 nainstalovaných aplikací čtením ze systému souborů.
POST PUT /api/appReload
Operace údržby jsou podporovány v dávkovém stylu s požadavkem POST na prostředek api / údržba, kde jsou operace dodávány jako parametry dotazu:
POST PUT /api/maintenance?analyticsTablesClear=true&expiredInvitationsClear=true
&periodPruning=true&zeroDataValueRemoval=true&sqlViewsDrop=true&sqlViewsCreate=true
&categoryOptionComboUpdate=true&cacheClear=true&ouPathsUpdate=true
Systémová informace¶
The system resource provides you with convenient information and functions. The system resource can be found at /api/system.
Generování identifikátorů¶
Chcete-li vygenerovat platné, náhodné identifikátory DHIS2, můžete zadat požadavek GET na tento zdroj:
/api/33/system/id?limit=3
The limit query parameter is optional and indicates how many identifiers you want to be returned with the response. The default is to return one identifier. The response will contain a JSON object with an array named codes, similar to this:
{
"codes": [
"Y0moqFplrX4",
"WI0VHXuWQuV",
"BRJNBBpu4ki"
]
}
Formát DHIS2 UID má tyto požadavky:
-
Délka 11 znaků.
-
Alphanumeric characters only, ie. alphabetic or numeric characters (A-Za-z0-9).
-
Začíná abecedním znakem (A-Za-z).
Zobrazení informací o systému¶
To get information about the current system you can do a GET request to this URL:
/api/33/system/info
JSON and JSONP response formats are supported. The system info response currently includes the below properties.
{
"contextPath": "http://yourdomain.com",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/29.0.1547.62",
"calendar": "iso8601",
"dateFormat": "yyyy-mm-dd",
"serverDate": "2021-01-05T09:16:03.548",
"serverTimeZoneId": "Etc/UTC",
"serverTimeZoneDisplayName": "Coordinated Universal Time",
"version": "2.13-SNAPSHOT",
"revision": "11852",
"buildTime": "2013-09-01T21:36:21.000+0000",
"serverDate": "2013-09-02T12:35:54.311+0000",
"environmentVariable": "DHIS2_HOME",
"javaVersion": "1.7.0_06",
"javaVendor": "Oracle Corporation",
"javaIoTmpDir": "/tmp",
"javaOpts": "-Xms600m -Xmx1500m -XX:PermSize=400m -XX:MaxPermSize=500m",
"osName": "Linux",
"osArchitecture": "amd64",
"osVersion": "3.2.0-52-generic",
"externalDirectory": "/home/dhis/config/dhis2",
"databaseInfo": {
"type": "PostgreSQL",
"name": "dhis2",
"user": "dhis",
"spatialSupport": false
},
"memoryInfo": "Mem Total in JVM: 848 Free in JVM: 581 Max Limit: 1333",
"cpuCores": 8
}
Poznámka
Pokud uživatel požadující tento zdroj nemá plné oprávnění, budou zahrnuty pouze vlastnosti, které nejsou považovány za citlivé.
To get information about the system context only, i.e. contextPath and userAgent, you can make a GET request to the below URL. JSON and JSONP response formats are supported:
/api/33/system/context
Zkontrolujte, zda je kombinace uživatelského jména a hesla správná¶
To check if some user credentials (a username and password combination) is correct you can make a GET request to the following resource using basic authentication:
/api/33/system/ping
You can detect the outcome of the authentication by inspecting the HTTP status code of the response header. The meanings of the possible status codes are listed below. Note that this applies to Web API requests in general.
Tabulka: Stavové kódy HTTP
| Stavový kód HTTP | Popis | Výsledek |
|---|---|---|
| 200 | OK | Ověření proběhlo úspěšně |
| 302 | Nalezeno | S požadavkem nebyly dodány žádné přihlašovací údaje – neproběhlo žádné ověření |
| 401 | Neoprávněný | Kombinace uživatelského jména a hesla byla nesprávná – ověření se nezdařilo |
Zobrazení stavu asynchronního úkolu¶
Tasks which often take a long time to complete can be performed asynchronously. After initiating an async task you can poll the status through the system/tasks resource by supplying the task category and the task identifier of interest.
When polling for the task status you need to authenticate as the same user which initiated the task. The following task categories are supported:
Tabulka: Kategorie úkolů
| Identifikátor | Popis |
|---|---|
| ANALYTICS_TABLE | Generování analytických tabulek. |
| RESOURCE_TABLE | Generování tabulek zdrojů. |
| MONITORING | Zpracování validačních pravidel dohledu / monitorování dat. |
| DATAVALUE_IMPORT | Import hodnot dat. |
| EVENT_IMPORT | Import událostí. |
| ENROLLMENT_IMPORT | Import zápisů. |
| TEI_IMPORT | Import instancí trasovaných entit. |
| METADATA_IMPORT | Import metadat. |
| DATA_INTEGRITY | Zpracování kontrol integrity dat. |
Každému asynchronnímu úkolu je automaticky přiřazen identifikátor, který lze použít ke sledování stavu úkolu. Tento identifikátor úkolu je vrácen API, když inicializujete asynchronní úkol prostřednictvím různých koncových bodů s povolenou async.
Monitorování úkolu¶
You can poll the task status through a GET request to the system tasks resource like this:
/api/33/system/tasks/{task-category-id}/{task-id}
Příklad požadavku může vypadat takto:
/api/33/system/tasks/DATAVALUE_IMPORT/j8Ki6TgreFw
The response will provide information about the status, such as the notification level, category, time and status. The completed property indicates whether the process is considered to be complete.
[{
"uid": "hpiaeMy7wFX",
"level": "INFO",
"category": "DATAVALUE_IMPORT",
"time": "2015-09-02T07:43:14.595+0000",
"message": "Import done",
"completed": true
}]
Monitorování všech úkolů pro kategorii¶
You can poll all tasks for a specific category through a GET request to the system tasks resource:
/api/33/system/tasks/{task-category-id}
An example request to poll for the status of data value import tasks looks like this:
/api/33/system/tasks/DATAVALUE_IMPORT
Monitorujte všechny úkoly¶
You can request a list of all currently running tasks in the system with a GET request to the system tasks resource:
/api/33/system/tasks
Odpověď bude vypadat podobně jako tato:
[{
"EVENT_IMPORT": {},
"DATA_STATISTICS": {},
"RESOURCE_TABLE": {},
"FILE_RESOURCE_CLEANUP": {},
"METADATA_IMPORT": {},
"CREDENTIALS_EXPIRY_ALERT": {},
"SMS_SEND": {},
"MOCK": {},
"ANALYTICSTABLE_UPDATE": {},
"COMPLETE_DATA_SET_REGISTRATION_IMPORT": {},
"DATAVALUE_IMPORT": {},
"DATA_SET_NOTIFICATION": {},
"DATA_INTEGRITY": {
"OB1qGRlCzap": [{
"uid": "LdHQK0PXZyF",
"level": "INFO",
"category": "DATA_INTEGRITY",
"time": "2018-03-26T15:02:32.171",
"message": "Data integrity checks completed in 38.31 seconds.",
"completed": true
}]
},
"PUSH_ANALYSIS": {},
"MONITORING": {},
"VALIDATION_RESULTS_NOTIFICATION": {},
"REMOVE_EXPIRED_RESERVED_VALUES": {},
"DATA_SYNC": {},
"SEND_SCHEDULED_MESSAGE": {},
"DATAVALUE_IMPORT_INTERNAL": {},
"PROGRAM_NOTIFICATIONS": {},
"META_DATA_SYNC": {},
"ANALYTICS_TABLE": {},
"PREDICTOR": {}
}]
Zobrazit asynchronní souhrny úkolů¶
The task summaries resource allows you to retrieve a summary of an asynchronous task invocation. You need to specify the category and optionally the identifier of the task. The task identifier can be retrieved from the response of the API request which initiated the asynchronous task.
Chcete-li načíst souhrn konkrétního úkolu, můžete vystavit požadavek na:
/api/33/system/taskSummaries/{task-category-id}/{task-id}
Příklad požadavku může vypadat takto:
/api/33/system/taskSummaries/DATAVALUE_IMPORT/k72jHfF13J1
Odpověď bude vypadat podobně jako tato:
{
"responseType": "ImportSummary",
"status": "SUCCESS",
"importOptions": {
"idSchemes": {},
"dryRun": false,
"async": true,
"importStrategy": "CREATE_AND_UPDATE",
"reportMode": "FULL",
"skipExistingCheck": false,
"sharing": false,
"skipNotifications": false,
"datasetAllowsPeriods": false,
"strictPeriods": false,
"strictCategoryOptionCombos": false,
"strictAttributeOptionCombos": false,
"strictOrganisationUnits": false,
"requireCategoryOptionCombo": false,
"requireAttributeOptionCombo": false,
"skipPatternValidation": false
},
"description": "Import process completed successfully",
"importCount": {
"imported": 0,
"updated": 431,
"ignored": 0,
"deleted": 0
},
"dataSetComplete": "false"
}
You might also retrieve import summaries for multiple tasks of a specific category with a request like this:
/api/33/system/taskSummaries/{task-category-id}
Získejte informace o vzhledu¶
You can retrieve the available flag icons in JSON format with a GET request:
/api/33/system/flags
You can retrieve the available UI styles in JSON format with a GET request:
/api/33/system/styles
Trigram Index Summary¶
Trigram indexes can be created using Tracker Search Optimization jobs. It is useful to know which tracked entity attributes are indexed and which ones are not. The following API can be used to get a summary of the trigram index status. The API supports field selection and filtering using the field query parameter.
The attributes corresponding to the property "indexedAttributes" are currently indexed in the system. The attributes corresponding to the property "indexableAttributes" are not indexed currently but are candidates for creating indexes if required. The attributes corresponding to the property "obsoleteIndexedAttributes" are indexed in the system, but those indexes are obsolete due to changes in the attribute configuration which do not qualify them as indexable anymore.
GET /api/39/trigramSummary
Ukázková odpověď JSON vypadá takto:
{
"indexedAttributes": [{
"displayName": "First name",
"id": "w75KJ2mc4zz"
}, {
"displayName": "Last name",
"id": "zDhUuAYrxNC"
}],
"indexableAttributes": [{
"displayName": "Phone number",
"id": "P2cwLGskgxn"
}],
"obsoleteIndexedAttributes": [{
"displayName": "TB identifier",
"id": "xs8A6tQJY0s"
}, {
"displayName": "Provider ID",
"id": "DODgdr5Oo2v"
}]
}
Cluster info¶
Když je DHIS 2 nastaven v konfiguraci klastru, je užitečné vědět, který uzel v klastru funguje jako vedoucí klastru. Následující API lze použít k získání podrobností o instanci vedoucího uzlu. Rozhraní API podporuje formáty JSON i XML.
GET /api/36/cluster/leader
Ukázková odpověď JSON vypadá takto:
{
"leaderNodeId": "play-dhis2-org-dev",
"leaderNodeUuid": "d386e46b-26d4-4937-915c-025eb99c8cad",
"currentNodeId": "play-dhis2-org-dev",
"currentNodeUuid": "d386e46b-26d4-4937-915c-025eb99c8cad",
"leader": true
}
Min-max datové prvky¶
Prostředek datových prvků min-max umožňuje nastavit rozsahy minimálních a maximálních hodnot pro datové prvky. Je jedinečnou kombinací organizační jednotky, datového prvku a kombinace možnosti kategorie.
/api/minMaxDataElements
Tabulka: Min-max datová struktura datového prvku
| Položka | Popis | Datový typ |
|---|---|---|
| zdroj | Identifikátor organizační jednotky | Řetězec |
| dataElement | Identifikátor datového prvku | Řetězec |
| optionCombo | Kombinovaný identifikátor kategorie datových prvků | Řetězec |
| min | Minimální hodnota | Celé číslo |
| max | Maximální hodnota | Celé číslo |
| vytvořené | Označuje, zda je tento objekt generován systémem (a není nastaven ručně). | Boolean |
Seznam všech datových prvků min-max lze získat z následujícího zdroje:
GET /api/minMaxDataElements.json
Odpověď můžete filtrovat takto:
GET /api/minMaxDataElements.json?filter=dataElement.id:eq:UOlfIjgN8X6
GET /api/minMaxDataElements.json?filter=dataElement.id:in:[UOlfIjgN8X6,xc8gmAKfO95]
Parametr filtru pro datové prvky min-max podporuje dva operátory: eq a in. Můžete také použít parametr dotazu fields.
GET /api/minMaxDataElements.json?fields=:all,dataElement[id,name]
Přidat / aktualizovat datový prvek min-max¶
Chcete-li přidat nový datový prvek min-max, použijte požadavek POST k:
POST /api/minMaxDataElements.json
Formát obsahu JSON vypadá takto:
{
"min": 1,
"generated": false,
"max": 100,
"dataElement": {
"id": "UOlfIjgN8X6"
},
"source": {
"id": "DiszpKrYNg8"
},
"optionCombo": {
"id": "psbwp3CQEhs"
}
}
Pokud existuje kombinace datového prvku, organizační jednotky a kombinace možností kategorie, bude aktualizována minimální a maximální hodnota.
Odstranit datový prvek min-max¶
Chcete-li odstranit datový prvek min-max, odešlete požadavek metodou DELETE:
DELETE /api/minMaxDataElements.json
Obsah JSON je v podobném formátu jako výše:
{
"min": 1,
"generated": false,
"max": 100,
"dataElement": {
"id": "UOlfIjgN8X6"
},
"source": {
"id": "DiszpKrYNg8"
},
"optionCombo": {
"id": "psbwp3CQEhs"
}
}
Zamknout výjimky¶
Prostředek pro uzamykání výjimek umožňuje otevřít jinak uzamčené datové sady pro zadávání dat pro konkrétní datovou sadu, období a organizační jednotku. Výjimky ze zamykání můžete číst z následujícího zdroje:
/api/lockExceptions
To create a new lock exception you can use a POST request and specify the data set, period and organisation unit:
POST /api/lockExceptions?ds=BfMAe6Itzgt&pe=201709&ou=DiszpKrYNg8
Chcete-li odstranit výjimku ze zámku, můžete použít podobnou syntaxi požadavku s požadavkem DELETE:
DELETE /api/lockExceptions?ds=BfMAe6Itzgt&pe=201709&ou=DiszpKrYNg8