Information Model Architecture

Health information is voluminous, therefore the FHIM model divides health information into manageable collections called domains or UML packages. A domain is a logical grouping of information, often related to a set of business processes. For example, Pharmacy and Laboratory are domains based on specific business processes. As information concepts within a domain are identified and defined, they are modeled in the FHIM as UML properties and grouped together into UML classes, sub-classes (or types) and data attributes within classes/sub-classes. 


The HL7 Act-Role-Entity pattern is also used to group data attributes into classes. This pattern helps to separate which data attributes are inherent in a class (e.g., eye color).  Another commonly used technique is generalization (or sub-typing). When two potential classes share a number of data attributes in common, those data attributes can be moved into a supertype, with the original classes becoming subtypes of the new supertype. For example, animals and persons have birthdates – birthdate is modeled in a LivingSubject class of which Person and Animal are subtypes. Thus, Person and Animal benefit from a uniquely-defined concept of birthdate.


The FHIM is one big model, therefore classes in one domain can access classes in other domains and each data attribute is defined only once and re-used in other domains. Within each class, the data attributes are modeled as properties. Each data attribute is assigned a precise definition, how many times it can repeat is identified (e.g., a person has one eye color, but potentially many phone numbers), and a data type is assigned which specifies the kind of information a data attribute can hold (e.g., number, time quantity, etc.). The data types reduce the complexity of the domain model by defining re-usable data structures, for example, a Street Address or Time Quantity.  Many of the FHIM data types are structures made up of other data types. For example, a patient’s age can be expressed as a number of unfits of time (e.g., 12 days or 23 years old). The FHIM TimeQuantity data type consists of a numeric value and a coded unit of time.


Besides simplifying the domain model by specifying re-usable structures (like TimeQuantity), these data types also facilitate the transformation of the model into implementable artifacts such as java code or xml schemas. Each target implementation ( e.g., FHIR, CDA, HL7 V2, and NIEM) specifies different data types, so the ability to transform from FHIM data types to the target implementation’s data types is a key enabler of the FHM’s ability to generate semantically equivalent constructs in different technologies or standards.


Each data attribute that is assigned a data type of Code has one or more terminology bindings to value sets associated with specific target implementations.


info arch