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 & 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 standard
Marina462
 
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
Nawanan Theera-Ampornpunt
 
Hl7 uk fhir the basics
Hl7 uk fhir the basicsHl7 uk fhir the basics
Hl7 uk fhir the basics
Ewout 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 Tutorial September 2008

Dbms questions
Dbms questionsDbms questions
Dbms questions
Srikanth
 
Interview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRMInterview Questions For Microsoft Dynamics CRM
Interview Questions For Microsoft Dynamics CRM
Kumari Warsha Goel
 
Part2- The Atomic Information Resource
Part2- The Atomic Information ResourcePart2- The Atomic Information Resource
Part2- The Atomic Information Resource
JEAN-MICHEL LETENNIER
 
Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01
Ankit Dubey
 
Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01Sm relationaldatamodel-150423084157-conversion-gate01
Sm relationaldatamodel-150423084157-conversion-gate01
Ankit Dubey
 

Similar to Rim Based Relational Database Design Tutorial September 2008 (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
 
Lecture 1 to 3intro to normalization in database
Lecture 1 to 3intro to  normalization in databaseLecture 1 to 3intro to  normalization in database
Lecture 1 to 3intro to normalization in database
 

More from Abdul-Malik Shakir

Hi3 Solutions: Accelerating HIE standards conformance
Hi3 Solutions: Accelerating HIE standards conformanceHi3 Solutions: Accelerating HIE standards conformance
Hi3 Solutions: Accelerating HIE standards conformance
Abdul-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

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Rim Based Relational Database Design Tutorial September 2008

  • 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.