Domain Models

From OpenHIO

Jump to: navigation, search

Contents

Core Domain Models

The core domain models generated from analysis of the system are described below.

Image:Core_Models.jpg

Entity

An entity is an abstraction used to factor out the common properties of the main elements within the system: agents, groups and resources.

Resource

A resource is any element within the physical environment of interest to the domain.

For example, a clinic examination room or a radiological imaging device (ie. X-ray machine, CT/MRI scanner) are resources. Medication or other therapeutic modalities such as IV contrast fluid may be considered resources.

The resource may have constraints placed upon it – for example, only a single provider-patient encounter can take place at any given time within a given examination room.

Group

A group is a formal or informal structure used to represent a collection of entities.

For example, a healthcare organization is a group of entities collaborating to deliver services to patients. Other examples of groups include clinical departments, support groups, etc.

Agent

An agent is an entity endowed with some degree of computational ability, ranging from simple software code to more complex animal entities, including humans.

Role

The concept of role serves as an abstraction to model the characteristics of an agent as it relates to particular aspects of external interaction with the environment.

A role is effectively an interface that captures a defined set of interactions, specifically between the agent and other agents or groups.

Image:Role_Models.jpg

Software Agent

A software agent is a non-living computational entity.

Within the domain, a software agent may play various roles in the delivery of healthcare services. Agents may provide various infrastructure or decision-support services.

Because the concept of software agent is relatively new, it is currently difficult to draw any conclusions about lifecycle. Therefore, the current assumption is that the concepts of birthdate and deathdate do not apply to software agents, pending further clarification.

Animal

An animal is an Agent subclass that includes ‘living’ organisms.

Other top-level elements (monera, protista, fungi, plantae) in the Linnaean Classification System are out-of-scope of the system.

Human

A human is a member of Homo sapiens.

Within the domain, a human may play one or more different roles: patient, informal caregiver or healthcare provider. However, the system support other agent types playing these same roles; a nonhuman animal or software agent may also (theoretically) act as patient, informal caregiver or healthcare provider.

Pet Animal

A pet animal is an animal that has been incorporated into a human household.

Within the healthcare domain, veterinary medicine is focused on care of animal pets. Although not currently in scope, the care coordination platform may eventually be used to coordinate the care of animal pets.

Pets may also potentially represent members of a human’s care team as an informal caregiver given well-documented evidence of health benefits to humans from interaction with animal pets.

Finally, the presence of pets within a human household may need to be accounted for in order to assess potential health risks to humans.

Farm Animal

A farm animal is a domesticated species that exists in close proximity to humans.

Within the healthcare domain, veterinary medicine is focused on care of farm pets, which includes certain animals used for sport such as race horses. Although not currently in scope, the care coordination platform may eventually be used in the field of veterinary medicine to coordinate the care of farm animals.

Wild Animal

A wild animal is an undomesticated species that may exist in proximity to humans, including in zoos. Within the healthcare domain, veterinary medicine focuses on care of wild animals.

Entity Properties

Entities such as agents, groups and resources share a number of common properties; these include having identifiers, including human-understandable names, as well as addresses.

Image:Entity_Properties.jpg

Identifiers

Entities may be identified in several possible ways. Entities are commonly assigned various types of identifiers by assigning authorities.

Assigning Authorities

Assigning authorities are entities that are able to assign identifiers to other entities. Assigning authorities include public agencies that assign social security numbers or driver’s license numbers; healthcare organizations are responsible for assigning medical record numbers or account numbers.

Entity Name

The entity name is a subclass of identifier intended largely for use in communications between human agents.

The identifiers associated with an entity may change over time. At any given time, there may be multiple applicable identifiers for a given entity. When several names may be used to identify an entity, there is usually one ‘current’ or primary name.

Addresses

Entities may have several addresses associated with them – either physical or virtual. A human might have a street address for their home, several telephone numbers, email addresses and Instant Messenger accounts. A software agent might have an email address and several URLs that serve as web service endpoints used for communicating with it.

Each address subclass may have additional subclasses. For example, a phone number may be for a home landline, a fax machine, a mobile phone or an office number.

Agent Properties

Agents have additional properties that distinguish them from other entities. These include gender and language.

Image:Agent_Properties.jpg

Gender

Gender can be classified into several dimensions using a number of alternative taxonomies. These are not currently well-defined or standardized. Several such classifications may apply at any given time to an individual, hence a 1:m cardinality exists.

Gender – as measured along any given dimension – may change over time; the system needs to reliably track gender over time in order to properly correlate with other health information. The current assumption is that software agents may be assigned genders. However, this area has not currently well-defined, and the assumption may change going forward.

Language

An agent may communicate using a variety of different languages, hence a 1:m cardinality. This capability applies to all agent types, including animals and software agents.

The system will need to maintain a taxonomy of languages in order to accurately describe the languages that any given agent uses for purposes of communication.

Generally, the agent may indicate a preference for communicating using a primary language.

Lifecycle State

An agent may undergo various lifecycle states and transitions. These are fairly well-defined for some animal species (i.e. alive, dead), while other species have fairly complex lifecycle stages; further clarification is required for agent types such as software agents.

The lifecycle state is modeled as an agent property because additional details about events such as birthdate or deathdate may be unavailable to the system.

Animal Properties

Animals have properties that distinguish them from other agents. These include having a finite lifespan with a defined birthdate and deathdate.

Birthdate

The date of birth is often important to definitively identifying an individual; however, this information is not always reliably available. The system should be able to record an estimated age.

Death Date

The date of death is not always reliably available.

Human Properties

Humans have properties that distinguish them from other animals. Human naming conventions generally extend those of entities or other agent classes. Other human properties include unique social characteristics; the marital status – which reflects the state of interrelationships between humans -- is modeled here because additional details regarding the exact relationships between humans may be unavailable.

Human Name

Human agents generally use a human naming convention for themselves consisting of a first name, (optional) middle name(s), last name and optional suffix.

A human typically has one primary name – the name they currently go by. They may also have zero-to-many additional names. These may be names used earlier in life, such as a maiden name. The human may also have aliases. Alternate names may include names in other languages and abbreviated or alternate forms.

Records received by the system from external sources may reflect various such alternatives, including erroneously-spelled variants of a given name. The system is required to maintain full-traceability of information received from alternate sources; if an external system provides information for a human that reflects a name variation, this information must be accurately captured and provided to users.

The name of a human may not always be available; patients who enter the healthcare system in a state of unconsciousness or with altered mental status may not be identifiable by name.

Marital Status

Marital status is an ambiguous concept, as there are numerous classification systems and varying jurisdictional policies that apply in terms of defining a human’s marital status.

Image:Human_Properties.jpg

The human may have several applicable marital status values at any given time An appropriate taxonomy of these marital status types will need to be developed.

For purposes of this system, the entity-entity relationships are likely to provide more accurate information about the human’s social relationships.

Entity-Entity Relationships

Within the domain, any given entity may have zero-to-many relationships with other entities. A variety of different relationship types are possible.

Image:Entity-Entity_Relationships.jpg

For example, a human (agent) has relationships with other humans (agents). Certain of these relationships have a more formally-defined biological or legal basis (parent, child, sibling, spouse). Other relationship types include friend, classmate, coworker, pet-owner, etc.

Image:Married_Partner_Relationship.jpg

Relationships may be either symmetrical or asymmetrical or both, depending on how they are classified. For example, ‘Spouse’ as a general concept refers to a symmetrical relationship between two married human (agents). The subclasses of a ‘spouse’ relationship may be described asymmetrically as {(‘husband’, ‘wife’), (‘wife’, ’wife’), (‘husband’, ‘husband’), etc.}, in such cases, identifying the direction of the relationship may be important.

Image:Agent-Agent_Relationships.jpg

Other types of relationships include: a human (agent) is a member of an organization (group); a department (group) is a part of a larger organization (group); an organization (group) may operate a healthcare clinic (resource).

Care Teams

Of specific interest to the system is the concept of care team, which is a group of humans involved in managing the care of a (human) agent playing the role of patient.

The relationship between agent and group may be used to describe the role of the agent as a member of the group. The human (agent) is a member of a care team (group); a variety of different types of membership are possible.

The care team roles are:

Image:Agent-Care_Team_Roles.jpg

The human (agent) may play the role of patient within a given care team. Hence, of the many roles that the human may play, in this situation, the role of interest is that of patient; the relationship between human (agent) and the group (care team) is that of care team member:

Image:Care_Team_Member-Patient.jpg

The human (agent) may also play the role of provider within a given care team:

Image:Care_Team_Member-Provider.jpg

A human (agent) may have multiple relationships with other entities, whether agents, groups or resources. Hence, the care team role of Patient is one of many possible relationships that the human (agent) may have.

Furthermore, the role of patient may be played by any type of agent, including animal pet or software agent; all in-scope agent types are known to develop bugs.

Likewise, a care team (group) may have many members, each with different care team roles. The primary roles played by agents as members of the care team are those of patients, informal caregivers and providers. These roles may be played by any type of agent, including animal pet or software agent.

Image:Care_Team_Members.jpg

See Also