BDCHM Model Overview
This is a high-level class diagram of the core entities present in the BioData Catalyst Harmonized Model (BDCHM).
classDiagram
class MeasurementObservationSet {
+string category
+stringList method_type
+uriorcurie id
+observations() MeasurementObservation[]
+focus() Entity[]
+associated_participant() Participant
+associated_visit() Visit
+performed_by() Organization
}
class MeasurementObservation {
+integer age_at_observation
+string category
+string observation_type
+string method_type
+string value_string
+boolean value_boolean
+BaseEnum value_enum
+uriorcurie id
+range_low() Quantity
+range_high() Quantity
+focus() Entity
+associated_participant() Participant
+associated_visit() Visit
+performed_by() Organization
+value_quantity() Quantity
}
class SdohObservationSet {
+GravityDomainEnum category
+stringList method_type
+uriorcurie id
+observations() SdohObservation[]
+focus() Entity[]
+associated_participant() Participant
+associated_visit() Visit
+performed_by() Organization
}
class SdohObservation {
+integer age_at_observation
+GravityDomainEnum category
+string observation_type
+string method_type
+string value_string
+boolean value_boolean
+BaseEnum value_enum
+uriorcurie id
+related_questionnaire_item() QuestionnaireItem
+focus() Entity
+associated_participant() Participant
+associated_visit() Visit
+performed_by() Organization
+value_quantity() Quantity
}
class DrugExposure {
+DrugExposureConceptEnum drug_concept
+DrugExposureProvenanceEnum exposure_provenance
+integer refills
+float quantity
+integer days_supply
+string sig
+DrugRouteEnum route_concept
+uriorcurieList identity
+integer age_at_exposure_start
+integer age_at_exposure_end
+uriorcurie id
+associated_participant() Participant
+associated_visit() Visit
}
class Condition {
+uriorcurieList identity
+ConditionConceptEnum condition_concept
+integer age_at_condition_start
+integer age_at_condition_end
+ProvenanceEnum condition_provenance
+ConditionStatusEnum condition_status
+ConditionSeverityEnum condition_severity
+FamilyRelationshipEnum relationship_to_participant
+uriorcurie id
+associated_participant() Participant
+associated_visit() Visit
}
class Visit {
+VisitCategoryEnum visit_category
+integer age_at_visit_start
+integer age_at_visit_end
+VisitProvenanceEnum visit_provenance
+uriorcurie id
+associated_participant() Participant
}
class ResearchStudy {
+uriorcurieList identity
+string name
+string name_shortened
+string description
+string description_shortened
+string sponsor
+uriorcurie url
+string research_project_type
+stringList principal_investigator
+uriorcurie id
+date_started() TimePoint
+date_ended() TimePoint
+part_of() ResearchStudy
+associated_timepoint() TimePoint[]
+consents() Consent[]
}
class Participant {
+uriorcurieList identity
+string description
+integer age_at_index
+string index_timepoint
+stringList study_arm
+uriorcurie id
+associated_person() Person
+member_of_research_study() ResearchStudy
+originating_site() Organization
+consents() Consent[]
}
class Demography {
+uriorcurieList identity
+SexEnum sex
+EthnicityEnum ethnicity
+RaceEnum race
+uriorcurie id
+associated_participant() Participant
}
class Person {
+uriorcurieList identity
+CellularOrganismSpeciesEnum species
+VertebrateBreedEnum breed
+integer year_of_birth
+VitalStatusEnum vital_status
+integer age_at_death
+integer year_of_death
+string cause_of_death
+uriorcurie id
}
class Entity {
}
class Quantity {
}
class Organization {
}
class QuestionnaireItem {
}
class TimePoint {
}
class Consent {
}
MeasurementObservationSet "1" --> "*" MeasurementObservation : observations
MeasurementObservationSet "1" --> "0..*" Entity : focus
MeasurementObservationSet "1" --> "0..1" Participant : associated_participant
MeasurementObservationSet "1" --> "0..1" Visit : associated_visit
MeasurementObservationSet "1" --> "0..1" Organization : performed_by
MeasurementObservation "1" --> "0..1" Quantity : range_low
MeasurementObservation "1" --> "0..1" Quantity : range_high
MeasurementObservation "1" --> "0..1" Entity : focus
MeasurementObservation "1" --> "0..1" Participant : associated_participant
MeasurementObservation "1" --> "0..1" Visit : associated_visit
MeasurementObservation "1" --> "0..1" Organization : performed_by
MeasurementObservation "1" --> "0..1" Quantity : value_quantity
SdohObservationSet "1" --> "*" SdohObservation : observations
SdohObservationSet "1" --> "0..*" Entity : focus
SdohObservationSet "1" --> "0..1" Participant : associated_participant
SdohObservationSet "1" --> "0..1" Visit : associated_visit
SdohObservationSet "1" --> "0..1" Organization : performed_by
SdohObservation "1" --> "0..1" QuestionnaireItem : related_questionnaire_item
SdohObservation "1" --> "0..1" Entity : focus
SdohObservation "1" --> "0..1" Participant : associated_participant
SdohObservation "1" --> "0..1" Visit : associated_visit
SdohObservation "1" --> "0..1" Organization : performed_by
SdohObservation "1" --> "0..1" Quantity : value_quantity
DrugExposure "1" --> "0..1" Participant : associated_participant
DrugExposure "1" --> "0..1" Visit : associated_visit
Condition "1" --> "0..1" Participant : associated_participant
Condition "1" --> "0..1" Visit : associated_visit
Visit "1" --> "0..1" Participant : associated_participant
ResearchStudy "1" --> "0..1" TimePoint : date_started
ResearchStudy "1" --> "0..1" TimePoint : date_ended
ResearchStudy "1" --> "0..1" ResearchStudy : part_of
ResearchStudy "1" --> "0..*" TimePoint : associated_timepoint
ResearchStudy "1" --> "0..*" Consent : consents
Participant "1" --> "0..1" Person : associated_person
Participant "1" --> "0..1" ResearchStudy : member_of_research_study
Participant "1" --> "0..1" Organization : originating_site
Participant "1" --> "0..*" Consent : consents
Demography "1" --> "0..1" Participant : associated_participant