#Domain Documentation
This is a detailed description of the OpenHDS entities.
For a general description of the OpenHDS go here.
For a description of the OpenHDS registration use cases go here.
Each section below has a brief description of the entity, the other entities it is dependent on, and a list of its required fields.
---
#Census Entities
###LocationHierarchy
#####What is it?
LocationHierarchy
is a node in the tree that represents the study area. For example, at the top of a tree would be the The United States and it would have a child node for each of the 50 states. Each state node could have a child node for its cities and each city could have a child node for its districts and so on.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
String |
name |
String |
extId |
LocationHierarchy |
parent |
LocationHierarchyLevel |
level |
###LocationHierarchyLevel #####What is it? The levels of the `LocationHierarchy` tree are defined separately as `LocationHierarchyLevel`s and referenced by each instance of `LocationHierarchy`. From the previous example, the list of `LocationHierarchyLevel`s would be Country, State, City, District.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
int |
keyIdentifier |
String |
name |
###Location #####What is it? `Location` is the leaf node on the `LocationHierarchy` tree, it is the smallest geographical unit within a study area. From the previous example for `LocationHierarchy`, each building within a district could be modeled with `Location`.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
String |
extId |
String |
name |
String |
locationType |
LocationHierarchy |
parent |
###Individual #####What is it? An `Individual` (person) within the study area that resides at a `Location`, is a member of a `SocialGroup`.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
String |
extId |
String |
gender |
Date |
dateOfBirth |
String |
firstName |
###SocialGroup #####What is it? A `SocialGroup` is any cultural or societal group or collective that `Individual`s are a member of, e.g. a church group, a household/family, a bowling team. ######Dependencies + FieldWorker
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
String |
extId |
String |
groupName |
String |
groupType |
#Relation Entities ###Membership ####What is it? A `Membership` models the connection between an `Individual` and a `SocialGroup`.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
startDate |
String |
startType |
Individual |
individual |
SocialGroup |
socialGroup |
###Relationship #####What is it? A `Relationship` models the way two Individual’s are related. This can be anything from being someone’s pastor to being their mother.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
startDate |
String |
relationshipType |
Individual |
individualA |
Individual |
individualB |
###Residency #####What is it? A `Residency` models the connection between an `Individual` and a `Location`.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
startDate |
String |
startType |
Individual |
individual |
Location |
location |
#Update Entities ###Visit #####What is it? A `Visit` models a `FieldWorker`’s follow-up visit to a particular `Location` at a particular date. `Visit`s are necessary for all update events that can take place within a population.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
String |
extId |
Date |
visitDate |
Location |
location |
###Death #####What is it? A `Death` is record of the death of one of the `Individual`s within the area of study.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
deathDate |
Visit |
visit |
Individual |
individual |
###InMigration #####What is it? An `InMigration` is a record of an Individual’s migration between two `Location`s where the destination `Location` is still inside the area of study.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
migrationDate |
String |
migrationType |
Visit |
visit |
Residency |
residency |
Individual |
individual |
###OutMigration #####What is it? An `OutMigration` models the migration of an `Individual` to outside the area of study.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
migrationDate |
Visit |
visit |
Residency |
residency |
Individual |
individual |
###PregnancyObservation #####What is it? A `PregnancyObservation` is a record of a `FieldWorker`’s observation of a pregnant `Individual`.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
expectedDeliveryDate |
Date |
pregnancyDate |
Visit |
visit |
Individual |
mother |
###PregnancyOutcome #####What is it? A `PregnancyOutcome` is a record of the outcome of an `Individual`’s pregnancy.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
Date |
outcomeDate |
Visit |
visit |
Individual |
mother |
###PregnancyResult #####What is it? A `PregnancyResult` is a record of the separate results of a larger `PregnancyOutcome` for an `Individual`’s pregnancy.
######Required Fields:
Type | Name |
---|---|
String |
uuid |
Date |
collectionDateTime |
FieldWorker |
collectedBy |
String |
type |
Visit |
visit |
PregnancyOutcome |
pregnancyOutcome |