Skip to content

Latest commit

 

History

History
290 lines (250 loc) · 7.84 KB

domain-documentation.md

File metadata and controls

290 lines (250 loc) · 7.84 KB

#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