SlideShare a Scribd company logo
1 of 130
Reference Information Model-Based Relational Database Design Abdul-Malik Shakir Principal Consultant, Shakir Consulting HL7 Working Group Meeting, Vancouver, BC September 2008
About Me ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Session Outline ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Session Overview – Focus and Premises ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Session Overview – Definitions and Axioms ,[object Object],[object Object],[object Object],[object Object],[object Object]
Structural Variance and Semantic Consistency Person -  lastName:  char -  firstName:  char -  birthDate:  dateTime -  homePhone:  char -  workPhone:  char Model One Person -  name:  PersonName -  birthDate:  dateTime -  phone:  PersonPhone [0..2] (list) constraints {PersonPhone(1) is Home Phone} {PersonPhone(2) is Work Phone} «datatype» PersonName -  lastName:  char -  firstName:  char «datatype» PersonPhone -  phoneKind:  PhoneKind -  phoneText:  char «enumeration» PhoneKind «enum» Home Work Model Two Person -  birthDate:  dateTime PersonName -  personNameKind:  PersonNameKind -  personNameText:  char constraints {PersonNameKind is Unique} PersonPhone -  phoneKind:  PersonPhoneKind -  phoneText:  char constraints {PersonPhoneKind is Unique} «enumeration» PersonPhoneKind «enum» Home Work «enumeration» PersonNameKind «enum» lastName firstName 0..2 0..2 Model Three
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],The HL7 Reference Models (RIM, Datatype, and Vocabulary) are the foundation of the HL7 Version 3.0 development methodology and specifications.  All HL7 v3 specifications (messages, documents, and services) are a refinement and constrained view of these foundational models.
HL7 v3.0 Reference Models Reference Information Model Datatype Specification Vocabulary Specification Reference Models The HL7 Reference Information Model is the information model from which all other information models and message specifications are derived. The HL7 Vocabulary Specification defines the set of all concepts that can be taken as valid values in an instance of a coded attribute or message element. The HL7 Datatype Specification defines the structural format of the data carried in an attribute and influences the set of allowable values an attribute may assume.
HL7 RIM Class Diagram
RIM Core Classes ,[object Object],[object Object],Entity class_cd : CS cd: CE determiner_cd : CS status_cd : CS id : II Act class_cd : CS cd: CD mood_cd : CS status_cd : CS effective_time : GTS id : II 0..* 0..*
RIM Core Classes Entity class_cd : CS cd: CE determiner_cd : CS status_cd : CS id : II Role class_cd : CS cd: CE effective_time : IVL<TS> status_cd : CS id : II Act class_cd : CS cd: CD mood_cd : CS status_cd : CS effective_time : GTS id : II 0..* 0..* 1 0..* plays
RIM Core Classes ,[object Object],Entity class_cd : CS cd: CE determiner_cd : CS status_cd : CS id : II Role class_cd : CS cd: CE effective_time : IVL<TS> status_cd : CS id : II Act class_cd : CS cd: CD mood_cd : CS status_cd : CS effective_time : GTS id : II 0..* 0..* 0..1 0..* 0..1 0..* plays scopes
RIM Core Classes ,[object Object],Entity class_cd : CS cd: CE determiner_cd : CS status_cd : CS id : II Role class_cd : CS cd: CE effective_time : IVL<TS> status_cd : CS id : II Participation type_cd : CS time : IVL<TS> status_cd : CS Act class_cd : CS cd: CD mood_cd : CS status_cd : CS effective_time : GTS id : II 0..1 0..* 0..1 0..* plays scopes 1 0..* 1 0..*
RIM Core Classes ,[object Object],Entity class_cd : CS cd: CE determiner_cd : CS status_cd : CS id : II Role class_cd : CS cd: CE effective_time : IVL<TS> status_cd : CS id : II Participation type_cd : CS time : IVL<TS> status_cd : CS Act class_cd : CS cd: CD mood_cd : CS status_cd : CS effective_time : GTS id : II 0..1 0..* Act Relationship type_cd : CS 0..1 0..* plays scopes 1 0..* 1 0..* 1 1 0..* 0..*
[object Object],RIM Core Classes Entity class_cd : CS cd: CE determiner_cd : CS status_cd : CS id : II Role class_cd : CS cd: CE effective_time : IVL<TS> status_cd : CS id : II Participation type_cd : CS time : IVL<TS> status_cd : CS Act class_cd : CS cd: CD mood_cd : CS status_cd : CS effective_time : GTS id : II 0..1 0..* Role Link type_cd : CS effective_time : IVL<TS> Act Relationship type_cd : CS 0..1 0..* plays scopes single Role may have a Role Link with multiple other Roles.  A single Role Link is always between two distinct instances of Role. 1 0..* 1 0..* 1 1 0..* 0..* 1 1 0..* 0..*
Definition of RIM Core Classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HL7 RIM Normative Specification
[object Object],The HL7 Datatype Specification defines the structural format of the data carried in an attribute and influences the set of allowable values an attribute may assume.
HL7 Version 3.0 Data Types ,[object Object],[object Object],[object Object],[object Object],[object Object]
HL7 Version 3.0 Data Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Datatype Class Diagram
v3.0 Ballot Datatype Categories ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],GTS SET HIST BL ST ED
Basic Datatype Descriptions Coded data, is like a CE with the extension of modifiers. Modifiers for codes have an optional role name and a value. Modifiers allow one to express, e.g., &quot;FOOT, LEFT&quot; as a postcoordinated term built from the primary code &quot;FOOT&quot; and the modifier &quot;LEFT&quot;. CD Concept Descriptor Coded data, consists of a coded value (CV) and, optionally, coded value(s) from other coding systems that identify the same concept. Used when alternative codes may exist. CE Coded With Equivalents Coded data, consists of a code, display name, code system, and original text. Used when a single code value must be sent. CV Coded Value Coded data, consists of a code and display name. The code system and code system version is fixed by the context in which the CS value occurs. CS is used for coded attributes that have a single HL7-defined value set. CS Coded Simple Value Text data, primarily intended for machine processing (e.g., sorting, querying, indexing, etc.) Used for names, symbols, and formal expressions.) Note that the ST data type is a specialization of the ED data type when the ED media type is text/plain. ST Character String Data that is primarily intended for human interpretation or for further machine processing outside the scope of this specification. This includes unformatted or formatted written language, multimedia data, or structured information in as defined by a different standard (e.g., XML-signatures.) Instead of the data itself, an ED may contain only a reference (see TEL.) Note that the ST data type is a specialization of the ED data type when the ED media type is text/plain. ED Encapsulated Data The Boolean type stands for the values of two-valued logic. A Boolean value can be either true or false. BL Boolean Description Symbol Name
Basic Datatype Descriptions Positive and negative whole numbers typically the results of counting and enumerating. The standard imposes no bounds on the size of integer numbers. INT Integer Number A restriction of EN that is equivalent with a plain character string (ST). Typically used for the names of things, where name parts are not distinguished. TN Trivial Name A name of an organization. ON name parts are typically not distinguished, but may distinguish the suffix for the legal standing of an organization (e.g. &quot;Inc.&quot;, &quot;Co.&quot;, &quot;B.V.&quot;, &quot;GmbH&quot;, etc.) from the name itself. ON is a restriction of EN. ON Organization Name A name of a person. Person names usually consist of several name parts that can be classified as given, family, nickname etc. PN is a restriction of EN. PN Person Name A name of a person, organization, place, or thing. Can be a simple character string or may consist of several name parts that can be classified as given name, family name, nickname, suffix, etc. EN Entity Name For example, a mailing address. Typically includes street or post office Box, city, postal code, country, etc. AD Postal Address A telephone number or e-mail address specified as a URL. In addition, this type contains a time specification when that address is to be used, plus a code describing the kind of situations and requirements that would suggest that address to be used (e.g., work, home, pager, answering machine, etc.) TEL Telecommunication Address An identifier to uniquely identify an individual instance. Examples are medical record number, order number, service catalog item number, etc. Based on the ISO Object Identifier (OID) II Instance Identifier Description Symbol Name
Basic Datatype Descriptions One or more time intervals used to specify the timing of events. Every event spans one time interval (occurrence interval). A repeating event is timed through a sequence of such occurrence intervals. Such timings are often specified not directly as a sequence of intervals but as a rule, e.g., &quot;every other day (Mon - Fri) between 08:00 and 17:00 for 10 minutes.&quot; GTS General Timing Specification A time stamp. TS Point in Time A quantity explicitly including both a numerator and a denominator (e.g. 1:128.) Only in the rare cases when the numerator and denominator must stand separate should the Ratio data type should be used. Normally, the REAL, PQ, or MO data types are more appropriate. RTO Ratio The amount of money in some currency. Consists of a value and a currency denomination (e.g., U.S.$, Pound sterling, Euro, Indian Rupee.) MO Monetary Amount A dimensioned quantity expressing the result of measurement. It consists of a real number value and a physical unit. Physical quantities are often constrained to a certain dimension by specifying a unit representing the dimension (e.g. m, kg, s, kcal/d, etc.) However, physical quantities should not be constrained to any particular unit (e.g., should not be constrained to centimeter instead of meter or inch.) PQ Physical Quantity Fractional numbers. Typically used whenever quantities are measured, estimated, or computed from other real numbers. The typical representation is decimal, where the number of significant decimal digits is known as the precision. REAL Decimal number Description Symbol Name
HL7 Data Type Packages
Demographic Datatypes
Entity Name Data Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thing Datatypes
Concept Descriptor Data Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reductionist View of Concept Descriptor ConceptDescriptor : CD -  dataType:  CodedSimpleValue -  nullFlavor:  CodedSimpleValue -  code:  CharacterString -  displayName:  CharacterString -  codeSystem:  ISOObjectIdentifier -  codeSystemName:  CharacterString -  codeSystemVersion:  CharacterString -  originalText:  CharacterString -/  translation:  CodedValue [0..*] (SET) -/  modifier:  ConceptRole [0..*] (LIST) CodedValue : CV -  dataType:  CodedSimpleValue -  nullFlavor:  CodedSimpleValue -  code:  CharacterString -  displayName:  CharacterString -  codeSystem:  ISOObjectIdentifier -  codeSystemName:  CharacterString -  codeSystemVersion:  CharacterString -  originalText:  CharacterString ConceptRole : CR -  dataType:  CodedSimpleValue -  nullFlavor:  CodedSimpleValue -  name:  CodedSimpleValue -  value:  ConceptDescriptor -  inverted:  Boolean +translation 0..* «SET» +modifier 0..* «LIST»
[object Object],The HL7 Vocabulary Specification defines the set of all concepts that can be taken as valid values in an instance of a coded attribute or message element.
HL7 V3 Vocabulary Specification ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HL7 V3 Vocabulary Specification Schematic ParentConcept VocabularyDomain name : String description : String CodedConcept conceptCode : String conceptDesignation : String 0..* 0..* 0..* 0..* ValueSet name : String description : String definingExpression : String 0..* 0..* 0..* 0..* 0..* 0..* includes CodeSystem identifier : OID name : String description : String 0..* 0..* 0..* 0..1 0..* 0..1 based on ValueSetContext contextExpression : String
Vocabulary Metamodel Description ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HL7 Vocabulary Table
HL7 Reference to External Code Systems
Vocabulary Binding Vocabulary Terms Vocabulary Binding Information Model Class Attribute Vocabulary  Domain Value Set Coded Concept Code System 1 0..* 0..* 0..1 0..1 0..* 0..* 0..* 0..* 0..* 0..* 1 0..* 0..1
Normative RIM Structural Vocabulary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(Most vocabulary domains are published as informative references. Those domains that have a more formal ballot status are shown in  bold  in this table. See the domain for the exact status.)  AcknowledgementCondition AcknowledgementDetailCode AcknowledgementDetailType AcknowledgementMessageCode AcknowledgementType AcknowledgmentMessageType ActClass ActCode ActInjuryCode ActInvoiceElementModifier ActMood ActPatientTransportationModeCode ActPaymentReason ActPriority ActProcedureCode ActReason ActRelationshipCheckpoint ActRelationshipJoin ActRelationshipRelatedOrder ActRelationshipSplit ActRelationshipSubset ActRelationshipType ActSite ActStatus ActTherapyDurationWorkingListCode ActUncertainty AddressPartType AdministrativeGender AmericanIndianAlaskaNativeLanguages AttentionKeyword BatchName Calendar CalendarCycle CalendarType CaseDetectionMethod CaseDiseaseImported CaseTransmissionMode Charset CodeSystem CodeSystemType CodingRationale CommunicationFunctionType CompressionAlgorithm ConceptCodeRelationship ConceptGenerality ConceptPropertyId ConceptStatus Confidentiality ContainerCap ContainerSeparator ContextControl Country CoverageEligibilityReason Currency DataType DeviceAlertLevel Diagnosis DocumentCompletion DocumentStorage EditStatus EducationLevel ElementName EmployeeJob EmployeeJobClass EmployeeSalaryType EmploymentStatus EncounterAccident EncounterAcuity EncounterAdmissionSource EncounterDischargeDisposition EncounterReferralSource EncounterReferralSource EncounterSpecialCourtesy EntityClass EntityCode EntityDeterminer EntityHandling EntityNamePartQualifier EntityNamePartType EntityNameUse EntityRisk EntityStatus EquipmentAlertLevel Ethnicity ExposureAgentEntityType GTSAbbreviation GenderStatus HL7CommitteeIDInRIM HL7ConformanceInclusion HL7DefinedRoseProperty HL7ITSVersionCode HL7StandardVersionCode HL7UpdateMode HealthcareProviderTaxonomyHIPAA HtmlLinkType HumanActSite HumanLanguage ImagingSubjectOrientation IndustryClassificationSystem IntegrityCheckAlgorithm InvoiceElementModifier JobTitleName LanguageAbilityMode LanguageAbilityProficiency ListOwnershipLevel LivingArrangement LocalMarkupIgnore LocalRemoteControlState MDFAttributeType MDFSubjectAreaPrefix ManagedParticipationStatus ManufacturerModelName MapRelationship MaritalStatus MaterialForm MaterialType MdfHmdMetSourceType MdfHmdRowType MdfRmimRowType MediaType MessageCondition MessageWaitingPriority ModifyIndicator NullFlavor ObservationInterpretation ObservationMethod ObservationValue OrganizationIndustryClass OrganizationNameType OtherIndicationValue ParameterizedDataType ParticipationFunction ParticipationMode ParticipationSignature ParticipationType PatientImportance PaymentTerms PeriodicIntervalOfTimeAbbreviation PersonDisabilityType PostalAddressUse PrescriptionDispenseFilterCode ProbabilityDistributionType ProcedureMethod ProcessingID ProcessingMode ProviderCodes QueryParameterValue QueryPriority QueryQuantityUnit QueryRequestLimit QueryResponse QueryStatusCode Race Realm RelationalName RelationalOperator RelationshipConjunction ReligiousAffiliation ResponseLevel ResponseModality ResponseMode RoleClass RoleCode RoleLinkType RoleStatus RouteOfAdministration SQLConjunction Sequencing SetOperator SoftwareName SpecialAccommodation StyleType SubstitutionCondition TableCellHorizontalAlign TableCellScope TableCellVerticalAlign TableFrame TableRules TargetAwareness TelecommunicationAddressUse TimingEvent TribalEntityUS URLScheme UnitsOfMeasureCaseInsensitive UnitsOfMeasureCaseSensitive VaccineManufacturer VaccineType ValueSetOperator ValueSetPropertyId ValueSetStatus VerificationMethod VocabularyDomainQualifier (Most vocabulary domains are published as informative references. Those domains that have a more formal ballot status are shown in  bold  in this table. See the domain for the exact status.)  AcknowledgementCondition AcknowledgementDetailCode AcknowledgementDetailType AcknowledgementMessageCode AcknowledgementType AcknowledgmentMessageType ActClass ActCode ActInjuryCode ActInvoiceElementModifier ActMood ActPatientTransportationModeCode ActPaymentReason ActPriority ActProcedureCode ActReason ActRelationshipCheckpoint ActRelationshipJoin ActRelationshipRelatedOrder ActRelationshipSplit ActRelationshipSubset ActRelationshipType ActSite ActStatus ActTherapyDurationWorkingListCode ActUncertainty AddressPartType AdministrativeGender AmericanIndianAlaskaNativeLanguages AttentionKeyword BatchName Calendar CalendarCycle CalendarType CaseDetectionMethod CaseDiseaseImported CaseTransmissionMode Charset CodeSystem CodeSystemType CodingRationale CommunicationFunctionType CompressionAlgorithm ConceptCodeRelationship ConceptGenerality ConceptPropertyId ConceptStatus Confidentiality ContainerCap ContainerSeparator ContextControl Country CoverageEligibilityReason Currency DataType DeviceAlertLevel Diagnosis DocumentCompletion DocumentStorage EditStatus EducationLevel ElementName EmployeeJob EmployeeJobClass EmployeeSalaryType EmploymentStatus EncounterAccident EncounterAcuity EncounterAdmissionSource EncounterDischargeDisposition EncounterReferralSource EncounterReferralSource EncounterSpecialCourtesy EntityClass EntityCode EntityDeterminer EntityHandling EntityNamePartQualifier EntityNamePartType EntityNameUse EntityRisk EntityStatus EquipmentAlertLevel Ethnicity ExposureAgentEntityType GTSAbbreviation GenderStatus HL7CommitteeIDInRIM HL7ConformanceInclusion HL7DefinedRoseProperty HL7ITSVersionCode HL7StandardVersionCode HL7UpdateMode HealthcareProviderTaxonomyHIPAA HtmlLinkType HumanActSite HumanLanguage ImagingSubjectOrientation IndustryClassificationSystem IntegrityCheckAlgorithm InvoiceElementModifier JobTitleName LanguageAbilityMode LanguageAbilityProficiency ListOwnershipLevel LivingArrangement LocalMarkupIgnore LocalRemoteControlState MDFAttributeType MDFSubjectAreaPrefix ManagedParticipationStatus ManufacturerModelName MapRelationship MaritalStatus MaterialForm MaterialType MdfHmdMetSourceType MdfHmdRowType MdfRmimRowType MediaType MessageCondition MessageWaitingPriority ModifyIndicator NullFlavor ObservationInterpretation ObservationMethod ObservationValue OrganizationIndustryClass OrganizationNameType OtherIndicationValue ParameterizedDataType ParticipationFunction ParticipationMode ParticipationSignature ParticipationType PatientImportance PaymentTerms PeriodicIntervalOfTimeAbbreviation PersonDisabilityType PostalAddressUse PrescriptionDispenseFilterCode ProbabilityDistributionType ProcedureMethod ProcessingID ProcessingMode ProviderCodes QueryParameterValue QueryPriority QueryQuantityUnit QueryRequestLimit QueryResponse QueryStatusCode Race Realm RelationalName RelationalOperator RelationshipConjunction ReligiousAffiliation ResponseLevel ResponseModality ResponseMode RoleClass RoleCode RoleLinkType RoleStatus RouteOfAdministration SQLConjunction Sequencing SetOperator SoftwareName SpecialAccommodation StyleType SubstitutionCondition TableCellHorizontalAlign TableCellScope TableCellVerticalAlign TableFrame TableRules TargetAwareness TelecommunicationAddressUse TimingEvent TribalEntityUS URLScheme UnitsOfMeasureCaseInsensitive UnitsOfMeasureCaseSensitive VaccineManufacturer VaccineType ValueSetOperator ValueSetPropertyId ValueSetStatus VerificationMethod VocabularyDomainQualifier
Entity.classCode
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Select a Subset of RIM Model Elements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example Project ,[object Object],[object Object],[object Object],[object Object]
SIIS SIP Logical Data Model
SIIS SIP Logical Data Model Classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SIIS SIP Information Needs RMIM
SIIS SIP Project Related RIM Classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SIIS SIP RIM Class Subset Model (Level 0)
SIIS SIP RIM Attribute Subset Model (Level 1)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Resolve Inheritance Anomalies ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generalization Relationships Indicate Inheritance =
Association Method ,[object Object],=
Propagation Method ,[object Object],=
Promotion Method ,[object Object],=
RIM Subset Model (Inheritance Exposed)
RIM Subset Model (Inheritance Anomalies) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Subset Model (Inheritance Anomalies Resolved)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Specialize Attribute Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Subset Model (Level 2)
Attributes with Collection Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assessed Attributes with Collection Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assessed Attributes with Collection Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Subset Model (Level 2.1)
Attributes with Generic Datatypes ,[object Object],[object Object],[object Object]
RIM Subset Model (Level 2.2) class RIM Subset Entity #  classCode:  CS #  determinerCode:  CS +  id:  SET<II> +  code:  CE Person +  addr:  BAG<AD> +  administrativeGenderCode:  CE +  birthTime:  TS +  deceasedInd:  BL +  raceCode:  CE +  multipleBirthInd:  BL +  name:  BAG<PN> +  ethnicGroupCode:  CE +  telecom:  BAG<TEL> LanguageCommunication +  languageCode:  CE Organization +  id:  II +  code:  CE +  name:  ON Place +  addr:  AD +  id:  SET<II> +  code:  CE ManufacturedMaterial +  formCode:  CE +  lotNumberText:  ST +  code:  CE Role #  classCode:  CS +  id:  SET<II> +  code:  CE +  effectiveTime:  IVL<TS> Participation #  typeCode:  CS Act #  classCode:  CS #  moodCode:  CS +  id:  II +  code:  CD SubstanceAdministration +  routeCode:  CE +  approachSiteCode:  CD +  doseQuantity:  IVL<PQ> +  availabilityTime:  TS +  activityTime:  IVL<TS> +  id:  II +  code:  CD ActRelationship #  typeCode:  CS Observation +  value:  ANY +  code:  CD Consent +  code:  CD +  negationInd:  BL +  reasonCode:  CE +target 1 +inboundRelationship 0..* +outboundRelationship 0..* +source 1 1 0..* 0..* 1 +scoper 0..1 +scopedRole 0..* +player 0..1 +playedRole 0..* 0..1 isA 1 0..1 isA 1 0..1 isA 1 0..1 isA 1 1 0..1 1 isA 0..1 0..1 isA 1 0..1 isA 1
Attributes with Concept Descriptor Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Subset Model (Level 3)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Resolve Collection Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Subset Model (Level 3)
Attributes with Collection Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Subset Model (Level 4)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Resolve Complex Datatypes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Subset Model (Level 4)
Complex Datatypes Use in the RIM Subset Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
II: Instance Identifier If applicable, specifies during what time the identifier is valid. By default, the identifier is valid indefinitely. Any specific interval may be undefined on either side indicating unknown effective or expiry time. Note: identifiers for information objects in computer systems should not have restricted valid times, but should be globally unique at all times. The identifier valid time is provided mainly for real-world identifiers, whose maintenance policy may include expiry (e.g., credit card numbers.) optional IVL<TS> validTime A human readable name or mnemonic for the assigning authority. This name is provided solely for the convenience of unaided humans interpreting an II value. Note: no automated processing must depend on the assigning authority name to be present in any form. optional ST assigningAuthorityName A unique identifier that guarantees the global uniqueness of the instance identifier. The root alone may be the entire instance identifier, an extension value is not needed. mandatory OID root The value of the identifier, unique within its assigning authority's namespace. optional ST extension Definition Status Type Name
Instance Identifier
AD: Postal Address ADXP: Postal Address Part Identifies the periods of time during which the address can be used. Typically used to refer to different addresses for different times of the year or to refer to historical addresses. optional GTS validTime A code advising a system or user which address in a set of like addresses to select for a given purpose optional SET < CS >  use The address data mandatory LIST < ADXP >    Definition Status Type Name Indicates whether an address part is the street, city, country, postal code, post box, etc. optional CS type The address part data mandatory ST ST Definition Status Type Name
Postal Address
EN: Entity Name ENXP: Entity Name Part Entity Name Specializations: TN: Trivial Name PN: Person Name ON: Organization Name A set of codes each of which specifies a certain subcategory of the name part in addition to the main name part type EntityNameQualifier NULL optional SET < CS >  qualifier Indicates whether the name part is a given name, family name, prefix, suffix, etc. EntityNamePartType NULL optional CS type The entity name part data   NULL mandatory ST   Definition Constraint Default Status Type Name Identifies the interval of time during which the name was used. Typically used to record historical names.   NULL optional IVL<TS> validTime A code advising a system or user which name in a set of names to select for a given purpose NamePurpose NULL optional SET < CS >  use The name data   NULL mandatory LIST < ENXP >    Definition Constraint Default Status Type Name
Entity Name
Tel: Telecommunication Address Identifies the periods of time during which the telecommunication address can be used. For a telephone number, this can indicate the time of day in which the party can be reached on that telephone. For a web address, it may specify a time range in which the web content is promised to be available under the given address. optional GTS validTime A code advising a system or user which telecommunication address in a set of like addresses to select for a given telecommunication need. optional SET < CS >  use The essence of a telecommunication address is a Universal Resource Locator. mandatory URL URL Definition Status Type Name
Telecommunication Address
PQ: Physical Quantity The original unit of measure. optional CV original unit The magnitude of the quantity measured in terms of the original unit. optional REAL original value The unit of measure mandatory CS unit The magnitude of the quantity measured in terms of the unit mandatory REAL value Definition Status Type Name
Physical Quantity
CD: Concept Descriptor Quite often in an interfaced environment, codes need to be translated into one or more other coding systems. In our example, the California DMV may have their own code translation Some code systems permit modifiers, additional codes that refine the meaning represented by the primary code. HL7 Version 3 accommodates a list of modifiers. Continuing with our truck example, the list of modifiers &quot;Body-ECAB, Eng-V8, EM-CE&quot; modify &quot;F150&quot; to designate that the truck has an extended cab, V8 engine, and California Emissions package. &quot;Body-,&quot; &quot;Eng-,&quot; and &quot;EM&quot; designate the roles (body, engine, emissions) represented by the codes &quot;ECAB,&quot; &quot;V8,&quot; and &quot;CE.&quot; modifier This is the text, phrase, etc., that is the basis for the coding. (e.g., &quot;The new truck purchased for hospital facility maintenance was a Ford model F150 ...&quot;). originalText A string qualifying the version of the code system (e.g., &quot;Model Year 2001&quot;). codeSystemVersion A string containing a short, human-readable description of the code system (e.g., &quot;Ford Car and Truck Models &quot;). codeSystemName An Object Identifier ( OID ) that uniquely identifies the code system to which the code belongs (e.g., &quot;106.75.314.67.89.24,&quot; where this uniquely identifies Ford Motor Company's set of model numbers). codeSystem A string containing a short, human-readable description of the code. (&quot;Ford F150 Full-size Pickup Truck&quot;) displayName A string containing the value of the code (e.g., &quot;F150&quot;) code Description Name
Concept Descriptor Datatypes CS: Coded Simple CV: Coded Value CE: Coded With Equivalents optional ST displayName mandatory ST code Status Type Name optional ST originalText optional ST codeSystemVersion optional ST codeSystemName mandatory OID codeSystem optional ST displayName mandatory ST code Status Type Name optional SET < CV >  translation optional ST originalText optional ST codeSystemVersion optional ST codeSystemName mandatory OID codeSystem optional ST displayName mandatory ST code Status Type Name
Property Summary of Concept Descriptor
Data Value
Complex Datatypes
RIM Subset Model (Level 5)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transform Classes into Tables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Develop Modeling Conventions for the LDM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Logical Data Model (Level 1)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Define Data Integrity Rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Column Integrity Rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Determine Table Relationship Rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Referential Integrity Rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sample referential integrity rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Sample column integrity rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Logical Data Model (Level 2)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assign Primary, Foreign, and Alternate Keys ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Specify Table Keys ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Types of Keys ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assigning Keys ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RIM Logical Data Model (Level 3)
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Optimize the Database Design Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Eliminate Redundancy
Reduce ambiguity and abstraction
Optimal Performance and Future Proofing
Structural Simplification
Simplify RI Enforcement
Physical Data Model (Level 1) E_PlacePostalAddrPart *pfK addrID:  bigint *PK addrPartSeq:  int * addrPartTypeCD:  varchar(10) * addrPartVal:  varchar(50) «FK» +  FK_E_PlacePostalAddrPart_E_PlacePostalAddr(addrID) «PK» +  PK_E_PlacePostalAddrPart(addrID, addrPartSeq) E_PlacePostalAddr *PK addrID:  bigint *FK entityID:  bigint usageTypeCD:  varchar(10) effectiveFromDT:  datetime effectiveThurDT:  datetime «FK» +  FK_E_PlacePostalAddr_E_Place(entityID) «PK» +  PK_E_PlacePostalAddr(addrID) E_Facility *pfK entityID:  bigint * typeCD:  varchar(10) addrLine1text:  varchar(50) addrLine2Text:  varchar(50) addrCityName:  varchar(50) addrStateCD:  varchar(10) addrPostalCode:  varchar(50) addrCountyCD:  varchar(10) «FK» +  FK_E_Place_E_Entity(entityID) «PK» +  PK_E_Place(entityID) E_Entity *PK entityID:  bigint * classCD:  varchar(10) * determinerCD:  varchar(10) typeCD:  varchar(10) «PK» +  PK_E_Entity(entityID) E_EntityID *pfK entityID:  bigint *PK identifierNameSpaceID:  varchar(50) *PK identifierVal:  varchar(50) «FK» +  FK_E_EntityID_E_Entity(entityID) «PK» +  PK_E_EntityID(entityID, identifierNameSpaceID, identifierVal) R_Role *PK roleID:  bigint *FK playerEntityID:  bigint *FK scoperEntityID:  bigint * classCD:  varchar(10) typeCD:  varchar(10) effectiveDT:  datetime «FK» +  FK_R_Role_ScoperE_Entity(scoperEntityID) +  FK_R_Role_PlayerE_Entity(playerEntityID) «PK» +  PK_R_Role(roleID) R_RoleID *pfK roleID:  bigint *PK identifierNameSpaceID:  varchar(50) *PK identifierVAL:  varchar(50) «FK» +  FK_R_RoleID_R_Role(roleID) «PK» +  PK_R_RoleID(roleID, identifierNameSpaceID, identifierVAL) E_Person *pfK entityID:  bigint administrativeGenderCD:  varchar(10) birthDT:  datetime deceasedInd:  bit raceCD:  varchar(10) multiBirthInd:  bit ethnicGroupCD:  varchar(10) primaryLanguageCD:  varchar(10) primarySurname:  varchar(50) primaryGivenName:  varchar(50) primaryMiddleName:  varchar(50) primaryNameSuffix:  varchar(50) «FK» +  FK_E_Person_E_Entity(entityID) «PK» +  PK_E_Person(entityID) E_PersonPostalAddr *PK addrID:  bigint *FK entityID:  bigint usageTypeCD:  varchar(10) effectiveFromDT:  datetime effectiveThruDT:  datetime addrLine1Text:  bigint addrLine2Text:  varchar(50) addrCityName:  varchar(50) addrStateCD:  varchar(10) addrPostalCode:  varchar(50) addrCountryCD:  varchar(10) «FK» +  FK_E_PersonPostalAddr_E_Person(entityID) «PK» +  PK_E_PersonPostalAddr(addrID) E_PersonPostalAddrPart *pfK addrID:  bigint *PK addrPartSeq:  int * addrPartTypeCD:  varchar(10) * addrPartVal:  varchar(50) «FK» +  FK_E_PersonPostalAddrPart_E_PersonPostalAddr(addrID) «PK» +  PK_E_PersonPostalAddrPart(addrID, addrPartSeq) E_PersonName *PK nameID:  bigint *FK entityID:  bigint usageTypeCD:  varchar(10) effectiveFromDT:  datetime effectiveThruDT:  datetime surname:  varchar(50) givenName:  varchar(50) middleName:  varchar(50) nameSuffix:  varchar(50) «FK» +  FK_E_PersonName_E_Person(entityID) «PK» +  PK_E_PersonName(nameID) E_PersonNamePart *pfK nameID:  bigint *PK namePartSeq:  int * namePartTypeCD:  varchar(10) * namePartVal:  varchar(50) «FK» +  FK_E_PersonNamePart_E_PersonName(nameID) «PK» +  PK_E_PersonNamePart(nameID, namePartSeq) E_PersonTelcomAddr *PK addrID:  bigint *FK entityID:  bigint * addrTypeCD:  varchar(10) usagetypeCD:  varchar(10) effectiveFromDT:  datetime effectiveThruDT:  datetime * addressVal:  varchar(50) «FK» +  FK_E_PersonTelcomAddr_E_Person(entityID) «PK» +  PK_E_PersonTelcomAddr(addrID) E_LangCom *pfK entityID:  bigint * langCD:  varchar(10) «FK» +  FK_E_LangCom_E_Person(entityID) «PK» +  PK_E_LangCom(entityID) E_PlaceID *pfK entityID:  bigint *PK identifierNameSpaceID:  varchar(50) *PK identifierVal:  varchar(50) «FK» +  FK_E_PlaceID_E_Place(entityID) «PK» +  PK_E_PlaceID(entityID, identifierNameSpaceID, identifierVal) R_Patient *pfK roleID:  bigint *FK playerEntityID:  bigint «FK» +  FK_R_Patient_E_Person(playerEntityID) +  FK_R_Patient_R_Role(roleID) «PK» +  PK_R_Patient(roleID) «unique» +  UQ_R_Patient_playerEntityID(playerEntityID) 0..* (addrID = addrID) 1 0..1 (entityID = entityID) 1 0..1 (entityID = entityID) 1 0..* (entityID = entityID) 1 0..* (roleID = roleID) 1 0..1 (entityID = entityID) 1 0..* (entityID = entityID) 1 0..* (addrID = addrID) 1 0..* (entityID = entityID) 1 0..* (nameID = nameID) 1 0..* (entityID = entityID) 1 0..1 (entityID = entityID) 1 0..* (playerEntityID = entityID) 1 0..* (scoperEntityID = entityID) 0..1 0..* (entityID = entityID) 1 0..* (roleID = roleID) 1 0..* (playerEntityID = entityID) 1
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generated DDL (PDM Level 2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Departures from the RIM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Database Design Modeling Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],SDM LDM PDM
Questions / Discussion / Feedback
Closing Thought All models are wrong; some are useful. ~ George Box
Characteristics of a Useful Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thank You ,[object Object],[object Object],[object Object]

More Related Content

What's hot

HL7 Clinical Document Architecture: Overview and Applications
HL7 Clinical Document Architecture: Overview and ApplicationsHL7 Clinical Document Architecture: Overview and Applications
HL7 Clinical Document Architecture: Overview and ApplicationsNawanan Theera-Ampornpunt
 
HL7 Version 3 Overview
HL7 Version 3 Overview HL7 Version 3 Overview
HL7 Version 3 Overview WardTechTalent
 
Understanding clinical data exchange and cda (hl7 201)
Understanding clinical data exchange and cda (hl7 201)Understanding clinical data exchange and cda (hl7 201)
Understanding clinical data exchange and cda (hl7 201)Edifecs Inc
 
FHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James AgnewFHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James AgnewFHIR Developer Days
 
Rim derived and influenced hl7 standards
Rim derived and influenced hl7 standardsRim derived and influenced hl7 standards
Rim derived and influenced hl7 standardsAbdul-Malik Shakir
 
HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...
HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...
HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...Nawanan Theera-Ampornpunt
 
Hl7 standard
Hl7 standardHl7 standard
Hl7 standardMarina462
 
Introduction to HL7 FHIR
Introduction to HL7 FHIRIntroduction to HL7 FHIR
Introduction to HL7 FHIRIgor Bossenko
 
The hitchhiker's guide to health level seven
The hitchhiker's guide to health level sevenThe hitchhiker's guide to health level seven
The hitchhiker's guide to health level sevenAbdul-Malik Shakir
 
City of hope research informatics common data elements
City of hope research informatics common data elementsCity of hope research informatics common data elements
City of hope research informatics common data elementsAbdul-Malik Shakir
 
HL7 Fhir for Developers
HL7 Fhir for DevelopersHL7 Fhir for Developers
HL7 Fhir for DevelopersEwout Kramer
 
Fhir meetup at the scale la (abdul malik.shakir)
Fhir meetup at the scale la (abdul malik.shakir)Fhir meetup at the scale la (abdul malik.shakir)
Fhir meetup at the scale la (abdul malik.shakir)Abdul-Malik Shakir
 
Hl7 reference information model
Hl7 reference information modelHl7 reference information model
Hl7 reference information modelAbdul-Malik Shakir
 
Introduction to cda may 2019 webinar
Introduction to cda may 2019 webinarIntroduction to cda may 2019 webinar
Introduction to cda may 2019 webinarAbdul-Malik Shakir
 
Ramathibodi Hospital's Experience with HL7 & HL7 CDA Standards
Ramathibodi Hospital's Experience with HL7 & HL7 CDA StandardsRamathibodi Hospital's Experience with HL7 & HL7 CDA Standards
Ramathibodi Hospital's Experience with HL7 & HL7 CDA StandardsNawanan Theera-Ampornpunt
 
Hl7 uk fhir the basics
Hl7 uk fhir the basicsHl7 uk fhir the basics
Hl7 uk fhir the basicsEwout Kramer
 

What's hot (20)

HL7 Clinical Document Architecture: Overview and Applications
HL7 Clinical Document Architecture: Overview and ApplicationsHL7 Clinical Document Architecture: Overview and Applications
HL7 Clinical Document Architecture: Overview and Applications
 
HL7 Version 3 Overview
HL7 Version 3 Overview HL7 Version 3 Overview
HL7 Version 3 Overview
 
Introduction to HL7 FHIR
Introduction to HL7 FHIRIntroduction to HL7 FHIR
Introduction to HL7 FHIR
 
Understanding clinical data exchange and cda (hl7 201)
Understanding clinical data exchange and cda (hl7 201)Understanding clinical data exchange and cda (hl7 201)
Understanding clinical data exchange and cda (hl7 201)
 
Introduction to hl7 v3
Introduction to hl7 v3Introduction to hl7 v3
Introduction to hl7 v3
 
Hl7 & FHIR
Hl7 & FHIRHl7 & FHIR
Hl7 & FHIR
 
HL7 - Whats Hot and Whats Not
HL7 - Whats Hot and Whats NotHL7 - Whats Hot and Whats Not
HL7 - Whats Hot and Whats Not
 
FHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James AgnewFHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James Agnew
 
Rim derived and influenced hl7 standards
Rim derived and influenced hl7 standardsRim derived and influenced hl7 standards
Rim derived and influenced hl7 standards
 
HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...
HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...
HL7 & HL7 CDA: The Implementation of Thailand's Healthcare Messaging Exchange...
 
Hl7 standard
Hl7 standardHl7 standard
Hl7 standard
 
Introduction to HL7 FHIR
Introduction to HL7 FHIRIntroduction to HL7 FHIR
Introduction to HL7 FHIR
 
The hitchhiker's guide to health level seven
The hitchhiker's guide to health level sevenThe hitchhiker's guide to health level seven
The hitchhiker's guide to health level seven
 
City of hope research informatics common data elements
City of hope research informatics common data elementsCity of hope research informatics common data elements
City of hope research informatics common data elements
 
HL7 Fhir for Developers
HL7 Fhir for DevelopersHL7 Fhir for Developers
HL7 Fhir for Developers
 
Fhir meetup at the scale la (abdul malik.shakir)
Fhir meetup at the scale la (abdul malik.shakir)Fhir meetup at the scale la (abdul malik.shakir)
Fhir meetup at the scale la (abdul malik.shakir)
 
Hl7 reference information model
Hl7 reference information modelHl7 reference information model
Hl7 reference information model
 
Introduction to cda may 2019 webinar
Introduction to cda may 2019 webinarIntroduction to cda may 2019 webinar
Introduction to cda may 2019 webinar
 
Ramathibodi Hospital's Experience with HL7 & HL7 CDA Standards
Ramathibodi Hospital's Experience with HL7 & HL7 CDA StandardsRamathibodi Hospital's Experience with HL7 & HL7 CDA Standards
Ramathibodi Hospital's Experience with HL7 & HL7 CDA Standards
 
Hl7 uk fhir the basics
Hl7 uk fhir the basicsHl7 uk fhir the basics
Hl7 uk fhir the basics
 

Similar to RIM-Based Relational Database Design

Dbms questions
Dbms questionsDbms questions
Dbms questionsSrikanth
 
Repositories thru the looking glass
Repositories thru the looking glassRepositories thru the looking glass
Repositories thru the looking glassEduserv Foundation
 
software_engg-chap-03.ppt
software_engg-chap-03.pptsoftware_engg-chap-03.ppt
software_engg-chap-03.ppt064ChetanWani
 
DC-2008 Tutorial: Basic Concepts
DC-2008 Tutorial: Basic ConceptsDC-2008 Tutorial: Basic Concepts
DC-2008 Tutorial: Basic ConceptsEduserv Foundation
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsSteve Speicher
 
Report on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task ForceReport on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task ForceEduserv Foundation
 
Interview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRMInterview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRMKumari Warsha Goel
 
Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...
Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...
Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...Massimo Cenci
 
Bca examination 2017 dbms
Bca examination 2017 dbmsBca examination 2017 dbms
Bca examination 2017 dbmsAnjaan Gajendra
 
Part2- The Atomic Information Resource
Part2- The Atomic Information ResourcePart2- The Atomic Information Resource
Part2- The Atomic Information ResourceJEAN-MICHEL LETENNIER
 
Database : Relational Data Model
Database : Relational Data ModelDatabase : Relational Data Model
Database : Relational Data ModelSmriti Jain
 
Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Ankit Dubey
 
Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Ankit Dubey
 
Modeling- Object, Dynamic and Functional
Modeling- Object, Dynamic and FunctionalModeling- Object, Dynamic and Functional
Modeling- Object, Dynamic and FunctionalRajani Bhandari
 

Similar to RIM-Based Relational Database Design (20)

Hl7 overview
Hl7 overviewHl7 overview
Hl7 overview
 
uml.pptx
uml.pptxuml.pptx
uml.pptx
 
Dbms questions
Dbms questionsDbms questions
Dbms questions
 
Repositories thru the looking glass
Repositories thru the looking glassRepositories thru the looking glass
Repositories thru the looking glass
 
software_engg-chap-03.ppt
software_engg-chap-03.pptsoftware_engg-chap-03.ppt
software_engg-chap-03.ppt
 
DC-2008 Tutorial: Basic Concepts
DC-2008 Tutorial: Basic ConceptsDC-2008 Tutorial: Basic Concepts
DC-2008 Tutorial: Basic Concepts
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
 
LeVan, "Search Web Services"
LeVan, "Search Web Services"LeVan, "Search Web Services"
LeVan, "Search Web Services"
 
Report on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task ForceReport on Work of Joint DCMI/IEEE LTSC Task Force
Report on Work of Joint DCMI/IEEE LTSC Task Force
 
Interview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRMInterview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRM
 
Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...
Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...
Recipes 8 of Data Warehouse and Business Intelligence - Naming convention tec...
 
Sq lite module4
Sq lite module4Sq lite module4
Sq lite module4
 
Bca examination 2017 dbms
Bca examination 2017 dbmsBca examination 2017 dbms
Bca examination 2017 dbms
 
ER Modeling.ppt
ER Modeling.pptER Modeling.ppt
ER Modeling.ppt
 
Dbms 1
Dbms 1Dbms 1
Dbms 1
 
Part2- The Atomic Information Resource
Part2- The Atomic Information ResourcePart2- The Atomic Information Resource
Part2- The Atomic Information Resource
 
Database : Relational Data Model
Database : Relational Data ModelDatabase : Relational Data Model
Database : Relational Data Model
 
Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01
 
Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01
 
Modeling- Object, Dynamic and Functional
Modeling- Object, Dynamic and FunctionalModeling- Object, Dynamic and Functional
Modeling- Object, Dynamic and Functional
 

More from Abdul-Malik Shakir

Shakir consulting 20 yr Anniversary
Shakir consulting 20 yr AnniversaryShakir consulting 20 yr Anniversary
Shakir consulting 20 yr AnniversaryAbdul-Malik Shakir
 
The hitchhiker's guide to health level seven
The hitchhiker's guide to health level sevenThe hitchhiker's guide to health level seven
The hitchhiker's guide to health level sevenAbdul-Malik Shakir
 
Standards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration InfrastructureStandards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration InfrastructureAbdul-Malik Shakir
 
Hl7 v2 certification test preparation
Hl7 v2 certification test preparationHl7 v2 certification test preparation
Hl7 v2 certification test preparationAbdul-Malik Shakir
 
Hi3 Solutions: Accelerating HIE standards conformance
Hi3 Solutions: Accelerating HIE standards conformanceHi3 Solutions: Accelerating HIE standards conformance
Hi3 Solutions: Accelerating HIE standards conformanceAbdul-Malik Shakir
 
Informatics Standards And Interoperability20090325
Informatics Standards And Interoperability20090325Informatics Standards And Interoperability20090325
Informatics Standards And Interoperability20090325Abdul-Malik Shakir
 

More from Abdul-Malik Shakir (11)

Shakir consulting 20 yr Anniversary
Shakir consulting 20 yr AnniversaryShakir consulting 20 yr Anniversary
Shakir consulting 20 yr Anniversary
 
The hitchhiker's guide to hl7
The hitchhiker's guide to hl7The hitchhiker's guide to hl7
The hitchhiker's guide to hl7
 
The hitchhiker's guide to health level seven
The hitchhiker's guide to health level sevenThe hitchhiker's guide to health level seven
The hitchhiker's guide to health level seven
 
Standards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration InfrastructureStandards Driven Healthcare Information Integration Infrastructure
Standards Driven Healthcare Information Integration Infrastructure
 
HIE technical infrastructure
HIE technical infrastructureHIE technical infrastructure
HIE technical infrastructure
 
Introduction to hl7 v2
Introduction to hl7 v2Introduction to hl7 v2
Introduction to hl7 v2
 
Hl7 v2 certification test preparation
Hl7 v2 certification test preparationHl7 v2 certification test preparation
Hl7 v2 certification test preparation
 
Hi3 Solutions: Accelerating HIE standards conformance
Hi3 Solutions: Accelerating HIE standards conformanceHi3 Solutions: Accelerating HIE standards conformance
Hi3 Solutions: Accelerating HIE standards conformance
 
Amia now! session one
Amia now! session oneAmia now! session one
Amia now! session one
 
TBI Data Integration
TBI Data IntegrationTBI Data Integration
TBI Data Integration
 
Informatics Standards And Interoperability20090325
Informatics Standards And Interoperability20090325Informatics Standards And Interoperability20090325
Informatics Standards And Interoperability20090325
 

Recently uploaded

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

RIM-Based Relational Database Design

  • 1. Reference Information Model-Based Relational Database Design Abdul-Malik Shakir Principal Consultant, Shakir Consulting HL7 Working Group Meeting, Vancouver, BC September 2008
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Structural Variance and Semantic Consistency Person - lastName: char - firstName: char - birthDate: dateTime - homePhone: char - workPhone: char Model One Person - name: PersonName - birthDate: dateTime - phone: PersonPhone [0..2] (list) constraints {PersonPhone(1) is Home Phone} {PersonPhone(2) is Work Phone} «datatype» PersonName - lastName: char - firstName: char «datatype» PersonPhone - phoneKind: PhoneKind - phoneText: char «enumeration» PhoneKind «enum» Home Work Model Two Person - birthDate: dateTime PersonName - personNameKind: PersonNameKind - personNameText: char constraints {PersonNameKind is Unique} PersonPhone - phoneKind: PersonPhoneKind - phoneText: char constraints {PersonPhoneKind is Unique} «enumeration» PersonPhoneKind «enum» Home Work «enumeration» PersonNameKind «enum» lastName firstName 0..2 0..2 Model Three
  • 7.
  • 8.
  • 9. HL7 v3.0 Reference Models Reference Information Model Datatype Specification Vocabulary Specification Reference Models The HL7 Reference Information Model is the information model from which all other information models and message specifications are derived. The HL7 Vocabulary Specification defines the set of all concepts that can be taken as valid values in an instance of a coded attribute or message element. The HL7 Datatype Specification defines the structural format of the data carried in an attribute and influences the set of allowable values an attribute may assume.
  • 10. HL7 RIM Class Diagram
  • 11.
  • 12. RIM Core Classes Entity class_cd : CS cd: CE determiner_cd : CS status_cd : CS id : II Role class_cd : CS cd: CE effective_time : IVL<TS> status_cd : CS id : II Act class_cd : CS cd: CD mood_cd : CS status_cd : CS effective_time : GTS id : II 0..* 0..* 1 0..* plays
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. HL7 RIM Normative Specification
  • 19.
  • 20.
  • 21.
  • 23.
  • 24. Basic Datatype Descriptions Coded data, is like a CE with the extension of modifiers. Modifiers for codes have an optional role name and a value. Modifiers allow one to express, e.g., &quot;FOOT, LEFT&quot; as a postcoordinated term built from the primary code &quot;FOOT&quot; and the modifier &quot;LEFT&quot;. CD Concept Descriptor Coded data, consists of a coded value (CV) and, optionally, coded value(s) from other coding systems that identify the same concept. Used when alternative codes may exist. CE Coded With Equivalents Coded data, consists of a code, display name, code system, and original text. Used when a single code value must be sent. CV Coded Value Coded data, consists of a code and display name. The code system and code system version is fixed by the context in which the CS value occurs. CS is used for coded attributes that have a single HL7-defined value set. CS Coded Simple Value Text data, primarily intended for machine processing (e.g., sorting, querying, indexing, etc.) Used for names, symbols, and formal expressions.) Note that the ST data type is a specialization of the ED data type when the ED media type is text/plain. ST Character String Data that is primarily intended for human interpretation or for further machine processing outside the scope of this specification. This includes unformatted or formatted written language, multimedia data, or structured information in as defined by a different standard (e.g., XML-signatures.) Instead of the data itself, an ED may contain only a reference (see TEL.) Note that the ST data type is a specialization of the ED data type when the ED media type is text/plain. ED Encapsulated Data The Boolean type stands for the values of two-valued logic. A Boolean value can be either true or false. BL Boolean Description Symbol Name
  • 25. Basic Datatype Descriptions Positive and negative whole numbers typically the results of counting and enumerating. The standard imposes no bounds on the size of integer numbers. INT Integer Number A restriction of EN that is equivalent with a plain character string (ST). Typically used for the names of things, where name parts are not distinguished. TN Trivial Name A name of an organization. ON name parts are typically not distinguished, but may distinguish the suffix for the legal standing of an organization (e.g. &quot;Inc.&quot;, &quot;Co.&quot;, &quot;B.V.&quot;, &quot;GmbH&quot;, etc.) from the name itself. ON is a restriction of EN. ON Organization Name A name of a person. Person names usually consist of several name parts that can be classified as given, family, nickname etc. PN is a restriction of EN. PN Person Name A name of a person, organization, place, or thing. Can be a simple character string or may consist of several name parts that can be classified as given name, family name, nickname, suffix, etc. EN Entity Name For example, a mailing address. Typically includes street or post office Box, city, postal code, country, etc. AD Postal Address A telephone number or e-mail address specified as a URL. In addition, this type contains a time specification when that address is to be used, plus a code describing the kind of situations and requirements that would suggest that address to be used (e.g., work, home, pager, answering machine, etc.) TEL Telecommunication Address An identifier to uniquely identify an individual instance. Examples are medical record number, order number, service catalog item number, etc. Based on the ISO Object Identifier (OID) II Instance Identifier Description Symbol Name
  • 26. Basic Datatype Descriptions One or more time intervals used to specify the timing of events. Every event spans one time interval (occurrence interval). A repeating event is timed through a sequence of such occurrence intervals. Such timings are often specified not directly as a sequence of intervals but as a rule, e.g., &quot;every other day (Mon - Fri) between 08:00 and 17:00 for 10 minutes.&quot; GTS General Timing Specification A time stamp. TS Point in Time A quantity explicitly including both a numerator and a denominator (e.g. 1:128.) Only in the rare cases when the numerator and denominator must stand separate should the Ratio data type should be used. Normally, the REAL, PQ, or MO data types are more appropriate. RTO Ratio The amount of money in some currency. Consists of a value and a currency denomination (e.g., U.S.$, Pound sterling, Euro, Indian Rupee.) MO Monetary Amount A dimensioned quantity expressing the result of measurement. It consists of a real number value and a physical unit. Physical quantities are often constrained to a certain dimension by specifying a unit representing the dimension (e.g. m, kg, s, kcal/d, etc.) However, physical quantities should not be constrained to any particular unit (e.g., should not be constrained to centimeter instead of meter or inch.) PQ Physical Quantity Fractional numbers. Typically used whenever quantities are measured, estimated, or computed from other real numbers. The typical representation is decimal, where the number of significant decimal digits is known as the precision. REAL Decimal number Description Symbol Name
  • 27. HL7 Data Type Packages
  • 29.
  • 31.
  • 32. Reductionist View of Concept Descriptor ConceptDescriptor : CD - dataType: CodedSimpleValue - nullFlavor: CodedSimpleValue - code: CharacterString - displayName: CharacterString - codeSystem: ISOObjectIdentifier - codeSystemName: CharacterString - codeSystemVersion: CharacterString - originalText: CharacterString -/ translation: CodedValue [0..*] (SET) -/ modifier: ConceptRole [0..*] (LIST) CodedValue : CV - dataType: CodedSimpleValue - nullFlavor: CodedSimpleValue - code: CharacterString - displayName: CharacterString - codeSystem: ISOObjectIdentifier - codeSystemName: CharacterString - codeSystemVersion: CharacterString - originalText: CharacterString ConceptRole : CR - dataType: CodedSimpleValue - nullFlavor: CodedSimpleValue - name: CodedSimpleValue - value: ConceptDescriptor - inverted: Boolean +translation 0..* «SET» +modifier 0..* «LIST»
  • 33.
  • 34.
  • 35. HL7 V3 Vocabulary Specification Schematic ParentConcept VocabularyDomain name : String description : String CodedConcept conceptCode : String conceptDesignation : String 0..* 0..* 0..* 0..* ValueSet name : String description : String definingExpression : String 0..* 0..* 0..* 0..* 0..* 0..* includes CodeSystem identifier : OID name : String description : String 0..* 0..* 0..* 0..1 0..* 0..1 based on ValueSetContext contextExpression : String
  • 36.
  • 38. HL7 Reference to External Code Systems
  • 39. Vocabulary Binding Vocabulary Terms Vocabulary Binding Information Model Class Attribute Vocabulary Domain Value Set Coded Concept Code System 1 0..* 0..* 0..1 0..1 0..* 0..* 0..* 0..* 0..* 0..* 1 0..* 0..1
  • 40.
  • 42.
  • 43.
  • 44.
  • 45. SIIS SIP Logical Data Model
  • 46.
  • 47. SIIS SIP Information Needs RMIM
  • 48.
  • 49. SIIS SIP RIM Class Subset Model (Level 0)
  • 50. SIIS SIP RIM Attribute Subset Model (Level 1)
  • 51.
  • 52.
  • 54.
  • 55.
  • 56.
  • 57. RIM Subset Model (Inheritance Exposed)
  • 58.
  • 59. RIM Subset Model (Inheritance Anomalies Resolved)
  • 60.
  • 61.
  • 62. RIM Subset Model (Level 2)
  • 63.
  • 64.
  • 65.
  • 66. RIM Subset Model (Level 2.1)
  • 67.
  • 68. RIM Subset Model (Level 2.2) class RIM Subset Entity # classCode: CS # determinerCode: CS + id: SET<II> + code: CE Person + addr: BAG<AD> + administrativeGenderCode: CE + birthTime: TS + deceasedInd: BL + raceCode: CE + multipleBirthInd: BL + name: BAG<PN> + ethnicGroupCode: CE + telecom: BAG<TEL> LanguageCommunication + languageCode: CE Organization + id: II + code: CE + name: ON Place + addr: AD + id: SET<II> + code: CE ManufacturedMaterial + formCode: CE + lotNumberText: ST + code: CE Role # classCode: CS + id: SET<II> + code: CE + effectiveTime: IVL<TS> Participation # typeCode: CS Act # classCode: CS # moodCode: CS + id: II + code: CD SubstanceAdministration + routeCode: CE + approachSiteCode: CD + doseQuantity: IVL<PQ> + availabilityTime: TS + activityTime: IVL<TS> + id: II + code: CD ActRelationship # typeCode: CS Observation + value: ANY + code: CD Consent + code: CD + negationInd: BL + reasonCode: CE +target 1 +inboundRelationship 0..* +outboundRelationship 0..* +source 1 1 0..* 0..* 1 +scoper 0..1 +scopedRole 0..* +player 0..1 +playedRole 0..* 0..1 isA 1 0..1 isA 1 0..1 isA 1 0..1 isA 1 1 0..1 1 isA 0..1 0..1 isA 1 0..1 isA 1
  • 69.
  • 70. RIM Subset Model (Level 3)
  • 71.
  • 72.
  • 73. RIM Subset Model (Level 3)
  • 74.
  • 75. RIM Subset Model (Level 4)
  • 76.
  • 77.
  • 78. RIM Subset Model (Level 4)
  • 79.
  • 80. II: Instance Identifier If applicable, specifies during what time the identifier is valid. By default, the identifier is valid indefinitely. Any specific interval may be undefined on either side indicating unknown effective or expiry time. Note: identifiers for information objects in computer systems should not have restricted valid times, but should be globally unique at all times. The identifier valid time is provided mainly for real-world identifiers, whose maintenance policy may include expiry (e.g., credit card numbers.) optional IVL<TS> validTime A human readable name or mnemonic for the assigning authority. This name is provided solely for the convenience of unaided humans interpreting an II value. Note: no automated processing must depend on the assigning authority name to be present in any form. optional ST assigningAuthorityName A unique identifier that guarantees the global uniqueness of the instance identifier. The root alone may be the entire instance identifier, an extension value is not needed. mandatory OID root The value of the identifier, unique within its assigning authority's namespace. optional ST extension Definition Status Type Name
  • 82. AD: Postal Address ADXP: Postal Address Part Identifies the periods of time during which the address can be used. Typically used to refer to different addresses for different times of the year or to refer to historical addresses. optional GTS validTime A code advising a system or user which address in a set of like addresses to select for a given purpose optional SET < CS > use The address data mandatory LIST < ADXP >   Definition Status Type Name Indicates whether an address part is the street, city, country, postal code, post box, etc. optional CS type The address part data mandatory ST ST Definition Status Type Name
  • 84. EN: Entity Name ENXP: Entity Name Part Entity Name Specializations: TN: Trivial Name PN: Person Name ON: Organization Name A set of codes each of which specifies a certain subcategory of the name part in addition to the main name part type EntityNameQualifier NULL optional SET < CS > qualifier Indicates whether the name part is a given name, family name, prefix, suffix, etc. EntityNamePartType NULL optional CS type The entity name part data   NULL mandatory ST   Definition Constraint Default Status Type Name Identifies the interval of time during which the name was used. Typically used to record historical names.   NULL optional IVL<TS> validTime A code advising a system or user which name in a set of names to select for a given purpose NamePurpose NULL optional SET < CS > use The name data   NULL mandatory LIST < ENXP >   Definition Constraint Default Status Type Name
  • 86. Tel: Telecommunication Address Identifies the periods of time during which the telecommunication address can be used. For a telephone number, this can indicate the time of day in which the party can be reached on that telephone. For a web address, it may specify a time range in which the web content is promised to be available under the given address. optional GTS validTime A code advising a system or user which telecommunication address in a set of like addresses to select for a given telecommunication need. optional SET < CS > use The essence of a telecommunication address is a Universal Resource Locator. mandatory URL URL Definition Status Type Name
  • 88. PQ: Physical Quantity The original unit of measure. optional CV original unit The magnitude of the quantity measured in terms of the original unit. optional REAL original value The unit of measure mandatory CS unit The magnitude of the quantity measured in terms of the unit mandatory REAL value Definition Status Type Name
  • 90. CD: Concept Descriptor Quite often in an interfaced environment, codes need to be translated into one or more other coding systems. In our example, the California DMV may have their own code translation Some code systems permit modifiers, additional codes that refine the meaning represented by the primary code. HL7 Version 3 accommodates a list of modifiers. Continuing with our truck example, the list of modifiers &quot;Body-ECAB, Eng-V8, EM-CE&quot; modify &quot;F150&quot; to designate that the truck has an extended cab, V8 engine, and California Emissions package. &quot;Body-,&quot; &quot;Eng-,&quot; and &quot;EM&quot; designate the roles (body, engine, emissions) represented by the codes &quot;ECAB,&quot; &quot;V8,&quot; and &quot;CE.&quot; modifier This is the text, phrase, etc., that is the basis for the coding. (e.g., &quot;The new truck purchased for hospital facility maintenance was a Ford model F150 ...&quot;). originalText A string qualifying the version of the code system (e.g., &quot;Model Year 2001&quot;). codeSystemVersion A string containing a short, human-readable description of the code system (e.g., &quot;Ford Car and Truck Models &quot;). codeSystemName An Object Identifier ( OID ) that uniquely identifies the code system to which the code belongs (e.g., &quot;106.75.314.67.89.24,&quot; where this uniquely identifies Ford Motor Company's set of model numbers). codeSystem A string containing a short, human-readable description of the code. (&quot;Ford F150 Full-size Pickup Truck&quot;) displayName A string containing the value of the code (e.g., &quot;F150&quot;) code Description Name
  • 91. Concept Descriptor Datatypes CS: Coded Simple CV: Coded Value CE: Coded With Equivalents optional ST displayName mandatory ST code Status Type Name optional ST originalText optional ST codeSystemVersion optional ST codeSystemName mandatory OID codeSystem optional ST displayName mandatory ST code Status Type Name optional SET < CV > translation optional ST originalText optional ST codeSystemVersion optional ST codeSystemName mandatory OID codeSystem optional ST displayName mandatory ST code Status Type Name
  • 92. Property Summary of Concept Descriptor
  • 95. RIM Subset Model (Level 5)
  • 96.
  • 97.
  • 98.
  • 99. RIM Logical Data Model (Level 1)
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107. RIM Logical Data Model (Level 2)
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113. RIM Logical Data Model (Level 3)
  • 114.
  • 115.
  • 117. Reduce ambiguity and abstraction
  • 118. Optimal Performance and Future Proofing
  • 121. Physical Data Model (Level 1) E_PlacePostalAddrPart *pfK addrID: bigint *PK addrPartSeq: int * addrPartTypeCD: varchar(10) * addrPartVal: varchar(50) «FK» + FK_E_PlacePostalAddrPart_E_PlacePostalAddr(addrID) «PK» + PK_E_PlacePostalAddrPart(addrID, addrPartSeq) E_PlacePostalAddr *PK addrID: bigint *FK entityID: bigint usageTypeCD: varchar(10) effectiveFromDT: datetime effectiveThurDT: datetime «FK» + FK_E_PlacePostalAddr_E_Place(entityID) «PK» + PK_E_PlacePostalAddr(addrID) E_Facility *pfK entityID: bigint * typeCD: varchar(10) addrLine1text: varchar(50) addrLine2Text: varchar(50) addrCityName: varchar(50) addrStateCD: varchar(10) addrPostalCode: varchar(50) addrCountyCD: varchar(10) «FK» + FK_E_Place_E_Entity(entityID) «PK» + PK_E_Place(entityID) E_Entity *PK entityID: bigint * classCD: varchar(10) * determinerCD: varchar(10) typeCD: varchar(10) «PK» + PK_E_Entity(entityID) E_EntityID *pfK entityID: bigint *PK identifierNameSpaceID: varchar(50) *PK identifierVal: varchar(50) «FK» + FK_E_EntityID_E_Entity(entityID) «PK» + PK_E_EntityID(entityID, identifierNameSpaceID, identifierVal) R_Role *PK roleID: bigint *FK playerEntityID: bigint *FK scoperEntityID: bigint * classCD: varchar(10) typeCD: varchar(10) effectiveDT: datetime «FK» + FK_R_Role_ScoperE_Entity(scoperEntityID) + FK_R_Role_PlayerE_Entity(playerEntityID) «PK» + PK_R_Role(roleID) R_RoleID *pfK roleID: bigint *PK identifierNameSpaceID: varchar(50) *PK identifierVAL: varchar(50) «FK» + FK_R_RoleID_R_Role(roleID) «PK» + PK_R_RoleID(roleID, identifierNameSpaceID, identifierVAL) E_Person *pfK entityID: bigint administrativeGenderCD: varchar(10) birthDT: datetime deceasedInd: bit raceCD: varchar(10) multiBirthInd: bit ethnicGroupCD: varchar(10) primaryLanguageCD: varchar(10) primarySurname: varchar(50) primaryGivenName: varchar(50) primaryMiddleName: varchar(50) primaryNameSuffix: varchar(50) «FK» + FK_E_Person_E_Entity(entityID) «PK» + PK_E_Person(entityID) E_PersonPostalAddr *PK addrID: bigint *FK entityID: bigint usageTypeCD: varchar(10) effectiveFromDT: datetime effectiveThruDT: datetime addrLine1Text: bigint addrLine2Text: varchar(50) addrCityName: varchar(50) addrStateCD: varchar(10) addrPostalCode: varchar(50) addrCountryCD: varchar(10) «FK» + FK_E_PersonPostalAddr_E_Person(entityID) «PK» + PK_E_PersonPostalAddr(addrID) E_PersonPostalAddrPart *pfK addrID: bigint *PK addrPartSeq: int * addrPartTypeCD: varchar(10) * addrPartVal: varchar(50) «FK» + FK_E_PersonPostalAddrPart_E_PersonPostalAddr(addrID) «PK» + PK_E_PersonPostalAddrPart(addrID, addrPartSeq) E_PersonName *PK nameID: bigint *FK entityID: bigint usageTypeCD: varchar(10) effectiveFromDT: datetime effectiveThruDT: datetime surname: varchar(50) givenName: varchar(50) middleName: varchar(50) nameSuffix: varchar(50) «FK» + FK_E_PersonName_E_Person(entityID) «PK» + PK_E_PersonName(nameID) E_PersonNamePart *pfK nameID: bigint *PK namePartSeq: int * namePartTypeCD: varchar(10) * namePartVal: varchar(50) «FK» + FK_E_PersonNamePart_E_PersonName(nameID) «PK» + PK_E_PersonNamePart(nameID, namePartSeq) E_PersonTelcomAddr *PK addrID: bigint *FK entityID: bigint * addrTypeCD: varchar(10) usagetypeCD: varchar(10) effectiveFromDT: datetime effectiveThruDT: datetime * addressVal: varchar(50) «FK» + FK_E_PersonTelcomAddr_E_Person(entityID) «PK» + PK_E_PersonTelcomAddr(addrID) E_LangCom *pfK entityID: bigint * langCD: varchar(10) «FK» + FK_E_LangCom_E_Person(entityID) «PK» + PK_E_LangCom(entityID) E_PlaceID *pfK entityID: bigint *PK identifierNameSpaceID: varchar(50) *PK identifierVal: varchar(50) «FK» + FK_E_PlaceID_E_Place(entityID) «PK» + PK_E_PlaceID(entityID, identifierNameSpaceID, identifierVal) R_Patient *pfK roleID: bigint *FK playerEntityID: bigint «FK» + FK_R_Patient_E_Person(playerEntityID) + FK_R_Patient_R_Role(roleID) «PK» + PK_R_Patient(roleID) «unique» + UQ_R_Patient_playerEntityID(playerEntityID) 0..* (addrID = addrID) 1 0..1 (entityID = entityID) 1 0..1 (entityID = entityID) 1 0..* (entityID = entityID) 1 0..* (roleID = roleID) 1 0..1 (entityID = entityID) 1 0..* (entityID = entityID) 1 0..* (addrID = addrID) 1 0..* (entityID = entityID) 1 0..* (nameID = nameID) 1 0..* (entityID = entityID) 1 0..1 (entityID = entityID) 1 0..* (playerEntityID = entityID) 1 0..* (scoperEntityID = entityID) 0..1 0..* (entityID = entityID) 1 0..* (roleID = roleID) 1 0..* (playerEntityID = entityID) 1
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127. Questions / Discussion / Feedback
  • 128. Closing Thought All models are wrong; some are useful. ~ George Box
  • 129.
  • 130.