This page shows how DHIS2 vocabulary codes map to PublicSchema canonical values. If you work with DHIS2 and spot an error, please report it.
3 vocabularies covered: 3 value mapping.
Vocabularies
| Vocabulary | System name | Relationship | Coverage | Gaps |
|---|---|---|---|---|
| gender-type | Gender | Value mapping | 2/2 mapped | 2 not covered |
| marital-status | Civil status | Value mapping | 1/2 mapped | 5 not covered |
| sp/enrollment-status | EnrollmentStatus | Value mapping | 3/3 mapped | 4 not covered |
Concept matches
Entities in DHIS2 that align with PublicSchema concepts.
| PublicSchema concept | System entity | Match | Notes |
|---|---|---|---|
| Person | TrackedEntityType(name="Person") | Broad | DHIS2 Person is not a fixed type: it is a TrackedEntityType whose attributes are configured per deployment. The demo instance ships eleven attributes (Unique ID, First name, Last name, Gender, Email, Date of birth, Address, City, National identifier, Mobile number, Civil status). This aligns semantically with v2 Person but DHIS2 treats the attribute set as open and deployment-specific. PersonName components are flat string fields on the DHIS2 side; v2 Person uses a structured `name` object. |
| Organization | OrganisationUnit | OrganisationUnit is the single tree DHIS2 uses for anything place-shaped (countries, regions, districts, facilities, offices). It conflates what v2 separates into Organization, Location, GeographicArea, and HealthFacility. Mapping to Organization applies when an OrganisationUnit represents a service-delivery actor (a ministry, a facility's administrative owner) rather than a geographical or physical place. | |
| Location | OrganisationUnit | When an OrganisationUnit carries `geometry` (point or polygon) or `featureType` it functions as a physical place. v2 Location covers that physical-place aspect; the same OrganisationUnit record may simultaneously be a v2 Organization and a v2 Location. | |
| HealthFacility | OrganisationUnit | DHIS2 has no HealthFacility type. Facilities are leaf-ish nodes in the OrganisationUnit tree, typically distinguished by level or by an OrganisationUnitGroup tagging. Deployments often define a "Facility type" option set configured per country. | |
| GeographicArea | OrganisationUnit | Upper levels of the OrganisationUnit tree (country, region, district) function as geographic areas. The same conflation note applies: v2 GeographicArea is one projection of an OrganisationUnit, not a dedicated DHIS2 type. | |
| Event | TrackerEvent | v2 Event is an abstract supertype for real-world occurrences with temporal grounding (vital events, payment events, hazard events). DHIS2 TrackerEvent is a data-collection occurrence: when a form was filled in, by whom, at which OrganisationUnit. The semantic overlap is partial: a TrackerEvent can represent a vaccination administration (real-world event) or a household survey completion (collection event). Deployments need to inspect the ProgramStage to know which. | |
| Relationship | TrackerRelationship | Broad | TrackerRelationship links any two tracker items (TrackedEntity, Enrollment, or Event). v2 Relationship is narrower: it links parties only. The type and direction metadata live in RelationshipType, not on the Relationship itself. |
| Identifier | TrackedEntityAttribute | Narrow | DHIS2 TrackedEntityAttributes with `unique=true` and (typically) `valueType=TEXT` function as identifiers. The demo instance uses "Unique ID" and "National identifier" this way. v2 Identifier is a first-class entity with type, issuer, validity; DHIS2 collapses all of that into a TEA configuration plus the stored attribute value. |
| Profile | ProgramStage | v2 Profile is an abstract supertype for observation records (FunctioningProfile, SocioEconomicProfile, etc.). DHIS2 expresses the same intent structurally: a ProgramStage defines which data elements are collected; a TrackerEvent is an instance; each TrackerDataValue on that event is one observation. Reading a v2 Profile from DHIS2 means projecting an event's DataValues into the Profile shape. The mapping is a pattern, not a type equivalence. | |
| sp/Enrollment | TrackerEnrollment | Broad | TrackerEnrollment is DHIS2's operational record of a TrackedEntity joining a Program. It is broader than sp/Enrollment: it applies to any tracker program, health or otherwise. The eligibility/entitlement side of sp/Enrollment has no DHIS2 counterpart; a TrackerEnrollment has been admitted by the time it exists. |
| sp/Program | Program | Broad | DHIS2 Program is broader than sp/Program: it covers any tracker or event programme, including health surveillance and data collection forms. The benefit-schedule / entitlement side of sp/Program has no counterpart. |
Documented gaps
PublicSchema items that DHIS2 does not model, with the documented reason.
| PublicSchema item | Reason |
|---|---|
| Agent | Abstract supertype for Person/Organization/SoftwareAgent. DHIS2 has no analogous abstraction; User, TrackedEntity, and OrganisationUnit are unrelated types. |
| Party | Abstract supertype for Person/Group. DHIS2 does not abstract "beneficiary-side" actors; TrackedEntity (the closest construct) is concrete and has no sibling for Group. |
| Address | DHIS2 stores address as a free-text string TEA on Person. There is no structured Address type in the meta-model. |
| BiometricSample | DHIS2 core does not model biometric enrolment. Attachments on a tracked entity via file resource TEAs are possible but carry no modality, template, or capture metadata. |
| ConsentRecord | No consent-record construct in DHIS2. Programs can be configured with a `captureCoordinates` or `selectIncidentDatesInFuture` flag, but consent as a reified record is not modelled. |
| DeliveryItem | DHIS2 is not a benefit-delivery system; no delivery-item concept. |
| Family | DHIS2 tracker has no first-class Family construct. Some deployments model kinship via Relationships between tracked entities; no reified Family group exists. |
| Farm | DHIS2 does not model agricultural holdings. |
| Group | Abstract supertype for Family/Household/Farm. DHIS2 has no equivalent abstraction over collective parties. |
| GroupMembership | No group-membership construct. The closest pattern is a TrackerRelationship with a parent/child-of-household RelationshipType, which does not carry role or validity. |
| HazardEvent | DHIS2 does not model hazard events as a first-class type. |
| Household | No household construct in DHIS2 core (see Group above). |
| IdentityDocument | DHIS2 records identifier values on a Person via unique TEAs, but does not reify the issuing document, its validity period, or jurisdiction. |
| InKindDelivery | DHIS2 is not a benefit-delivery system. |
| Instrument | DHIS2 does not catalog data-collection instruments as reified records with authorship, version, and provenance. A ProgramStage plus its DataElements is the closest operational analogue but carries no Instrument metadata. |
| PaymentEvent | DHIS2 is not a payment system. |
| PrivacyNotice | No privacy-notice construct in DHIS2 core. |
| RegistrationOffice | No registration-office construct. OrganisationUnits can represent offices but carry no distinct registration-office typing. |
| School | DHIS2 does not model schools as a typed OrganisationUnit subtype. |
| ScoringEvent | DHIS2 has no construct recording the application of a scoring rule to observation data. Indicators exist in the aggregate analytics side but are out of scope for the meta-model mapping. |
| ScoringRule | DHIS2 programIndicators and predictors can compute values, but they live in the analytics layer rather than in tracker metadata. They are out of scope here. |
| ServicePoint | No generic service-point construct distinct from OrganisationUnit. |
| SocioEconomicProfile | Profile subtypes are not reified as types in DHIS2. A deployment could encode a socio-economic assessment as a ProgramStage but the meta-model does not name it. |
| FunctioningProfile | Same pattern as SocioEconomicProfile: no Profile-subtype reification in the meta-model. |
| SoftwareAgent | DHIS2 has a User model and API tokens, but no SoftwareAgent concept for recording the identity/version of scoring software or other automated actors. |
| Voucher | DHIS2 is not a voucher-delivery system. |
| VoucherRedemption | Same as Voucher. |
| WaterPoint | No water-point construct; would be an OrganisationUnit subtype if modelled. |
| sp/BenefitSchedule | DHIS2 does not model benefit schedules. |
| sp/EligibilityDecision | DHIS2 has no eligibility-decision record. Admission is implicit in the existence of a TrackerEnrollment. |
| sp/Entitlement | DHIS2 is not an entitlement-management system. |
| sp/Grievance | No grievance/complaint workflow in DHIS2 core. |
| sp/Referral | DHIS2 can model referrals as tracker relationships or program events but has no first-class Referral type with status, origin, and destination facility semantics. |
| crvs/VitalEvent | DHIS2 is not a CRVS. Births/deaths can be recorded as tracker events within a health programme, but not as legal vital events. |
| crvs/Birth | Not modelled in DHIS2. Birth Notification programs exist as deployment content; the meta-model does not name them. |
| crvs/Death | Not modelled in DHIS2. Mortality surveillance deployments exist; the meta-model does not name them. |
| crvs/FetalDeath | Not modelled in DHIS2. |
| crvs/Marriage | Not modelled in DHIS2. |
| crvs/MarriageTermination | Not modelled in DHIS2. |
| crvs/Adoption | Not modelled in DHIS2. |
| crvs/Legitimation | Not modelled in DHIS2. |
| crvs/PaternityRecognition | Not modelled in DHIS2. |
| crvs/Parent | No parent link type. Kinship can be expressed via tracker relationships but carries no parental-role semantics. |
| crvs/Certificate | No civil-status certificate record in DHIS2. |
| crvs/CivilStatusDocument | Abstract CRVS document supertype. DHIS2 does not model any civil-status documents. |
| crvs/CivilStatusRecord | No reified civil-status-record type in DHIS2. |
| crvs/CivilStatusAnnotation | No annotation construct for civil status updates. |
| crvs/FamilyRegister | DHIS2 does not model family registers (livret de famille, koseki, hukou). |
| crvs/Person | Separate from universal Person, crvs/Person is the CRVS projection with civil-status-specific fields. DHIS2 has no CRVS layer, so the universal Person match already covers what DHIS2 represents. |
| sex | DHIS2 uses a single 'Gender' option set per deployment; no separate biological-sex vocabulary. |
| identifier-type | Identifier types are per-TEA configuration, not a shared vocabulary. |
| document-type | No identity-document model; no document-type vocabulary. |
| document-status | No document model; no status vocabulary. |
| biometric-modality | DHIS2 does not model biometrics. |
| biometric-subtype | No biometrics in DHIS2. |
| biometric-exception-reason | No biometrics in DHIS2. |
| impression-type | No biometrics in DHIS2. |
| relationship-type | DHIS2 RelationshipType is country-configured, not a fixed vocabulary. |
| group-type | No Group supertype; no group-type vocabulary. |
| group-role | No group-membership model; no role vocabulary. |
| country | Countries are OrganisationUnits at the top level; DHIS2 has no ISO 3166 enum. |
| region | UN M49 regions are not part of the DHIS2 meta-model. |
| language | DHIS2 supports UI translations but has no ISO 639 vocabulary as such. |
| script | No ISO 15924 script vocabulary in DHIS2. |
| currency | No currency handling in DHIS2 core. |
| unit-of-measure | Units are free-text on DataElement.valueType formatting; no shared UoM vocabulary. |
| education-level | Per-deployment option set, not a core enum. |
| literacy | Per-deployment option set. |
| school-level | No school construct; no vocabulary. |
| school-type | No school construct. |
| occupation | Per-deployment option set; no ISCO alignment in core. |
| employment-status | Per-deployment option set. |
| status-in-employment | Per-deployment option set. |
| income-source | Per-deployment option set. |
| health-facility-type | OrganisationUnit classifications are per-deployment via OU groups. |
| health-facility-level | Per-deployment. |
| facility-operational-status | Per-deployment option set. |
| care-provider-type | No shared vocabulary in DHIS2 core. |
| maternity-care-provider | Per-deployment option set. |
| organization-type | OrganisationUnitGroups serve this role but carry no fixed type vocabulary. |
| service-point-type | No service-point concept. |
| registration-office-type | No registration-office concept. |
| dwelling-type | Per-deployment option set. |
| roof-material | Per-deployment option set. |
| wall-material | Per-deployment option set. |
| floor-material | Per-deployment option set. |
| cooking-fuel | Per-deployment option set. |
| sanitation-facility | Per-deployment option set. |
| sanitation-service-level | Per-deployment option set. |
| water-source | Per-deployment option set. |
| water-point-type | No water-point concept. |
| water-service-level | Per-deployment option set. |
| settlement-type | Per-deployment option set. |
| shelter-situation-type | Per-deployment; typically humanitarian context. |
| land-tenure | Per-deployment option set. |
| occupancy-arrangement | Per-deployment option set. |
| household-asset | Per-deployment option set. |
| ict-access | Per-deployment option set. |
| livestock-type | No livestock/agriculture model. |
| consent-status | No consent-record model. |
| consent-record-type | No consent-record model. |
| consent-expression | No consent-record model. |
| legal-basis | No consent-record model. |
| delegation-type | No delegation model. |
| special-category-basis | No consent-record model. |
| crvs/adoption-type | DHIS2 is not a CRVS. |
| crvs/annotation-type | DHIS2 is not a CRVS. |
| crvs/birth-attendant | DHIS2 is not a CRVS. (Deployments can configure this via option sets in health programmes.) |
| crvs/birth-type | Same. |
| crvs/cause-of-death-method | Same. |
| crvs/certificate-document-type | No certificate model. |
| crvs/certificate-format | No certificate model. |
| crvs/civil-status-record-type | No civil-status-record model. |
| crvs/family-register-status | No family-register model. |
| crvs/manner-of-death | DHIS2 is not a CRVS. |
| crvs/marriage-termination-type | DHIS2 is not a CRVS. |
| crvs/marriage-type | DHIS2 is not a CRVS. |
| crvs/parent-establishment-basis | DHIS2 is not a CRVS. |
| crvs/parental-role | No Parent link type. |
| crvs/place-type | DHIS2 is not a CRVS. |
| crvs/registration-status | DHIS2 is not a CRVS. |
| crvs/registration-type | DHIS2 is not a CRVS. |
| sp/benefit-frequency | DHIS2 is not a benefit-delivery system. |
| sp/benefit-modality | Same. |
| sp/conditionality-type | No conditionality construct. |
| sp/eligibility-status | No eligibility-decision model. |
| sp/enrollment-exit-reason | No exit-reason vocabulary in core; DHIS2 EnrollmentStatus collapses COMPLETED/CANCELLED. |
| sp/entitlement-status | No entitlement model. |
| sp/grievance-status | No grievance model. |
| sp/grievance-type | No grievance model. |
| sp/referral-status | No Referral model. |
| sp/targeting-approach | No targeting-approach vocabulary. |
| payment-status | DHIS2 is not a payment system. |
| delivery-channel | DHIS2 is not a delivery system. |
| withdrawal-channel | DHIS2 is not a payment/delivery system. |
| administration-mode | No administration-mode concept in DHIS2 core. |
| voucher-format | No voucher model. |
| voucher-status | No voucher model. |
| recipient-role | No delivery model. |
| hazard-type | No hazard-event model. |
| event-severity | Per-deployment. |
| event-certainty | Per-deployment. |
| displacement-status | Per-deployment. |
| acute-malnutrition-severity | Per-deployment; would be configured on a nutrition ProgramStage. |
| food-security-level | Per-deployment. |
| wg-ss-domain | The WG Short Set is deployed as a ProgramStage with specific DataElements and option sets in country configurations; not a core DHIS2 vocabulary. |
| functional-difficulty-severity | Per-deployment; typically the WG-SS Likert scale. |
| functional-intensity | Per-deployment. |
| aid-use-frequency | Per-deployment. |
| mobility-aid-type | Per-deployment. |
| daily-duration | Per-deployment. |
| cfm-symptom-frequency | Per-deployment (Child Functioning Module). |
| cognition-remembering-extent | Per-deployment. |
| cognition-remembering-frequency | Per-deployment. |
| cognition-subdomain | Per-deployment. |
| comparative-behaviour-scale | Per-deployment. |
| symptom-chronicity | Per-deployment. |
| symptom-period-frequency | Per-deployment. |
| collection-medium | No instrument/collection-medium model in DHIS2 meta-model. |
| instrument-code | No Instrument catalogue. |
| pregnancy-status | Per-deployment. |
Help improve this page
Highlight any text on this page to leave an annotation. Join our review group to get started.
If you have a GitHub account, click the feedback icon next to any section heading to report a specific issue.