Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
FHIR and ontology Barry Smith Charleston, September 24, 2015 1 My life with HL7 2 http://hl7-watch.blogspot.com/2008/02/weightof-baby.html 3 4 Allergies, Adverse Reactions, Alerts Section 48765-2 This section lists and describes any medication allergies, adverse reactions, idiosyncratic reactions, … to food items … Optional Entries The following constraints apply to an Allergies, Adverse Reactions, Alerts section in which entries are not required. 5 [section: templateId 2.16.840.1.113883.10.20.22.2.6(open)] The following constraints apply to an Allergies, Adverse Reactions, Alerts section in which entries are not required. SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.2.6" (CONF:7800). SHALL contain exactly one [1..1] code/@code="48765-2" Allergies, adverse reactions, alerts (CodeSystem: 2.16.840.1.113883.6.1 LOINC) (CONF:7801). SHALL contain exactly one [1..1] title (CONF:7802). SHALL contain exactly one [1..1] text (CONF:7803). SHOULD contain at least one [1..*] entry (CONF:7804) such that it – SHALL contain exactly one [1..1] Allergy Problem Act (templateId:2.16.840.1.113883.10.20.22.4.30) (CONF:7805). 6 Allergy Problem Act •SHALL contain exactly one [1..1] @classCode="ACT" (CodeSystem: 2.16.840.1.113883.5.6 HL7ActClass) STATIC (CONF:7469). •SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: 2.16.840.1.113883.5.1001 HL7ActMood) STATIC (CONF:7470). •SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.4.30" (CONF:7471). •SHALL contain at least one [1..*] id (CONF:7472). •SHALL contain exactly one [1..1] code="48765-2" Allergies, adverse reactions, alerts (CodeSystem: 2.16.840.1.113883.6.1 LOINC) STATIC (CONF:7477). •SHALL contain exactly one [1..1] statusCode, which SHALL be selected from ValueSet 2.16.840.1.113883.11.20.9.19 ProblemAct statusCode DYNAMIC (CONF:7485). •SHALL contain exactly one [1..1] effectiveTime (CONF:7498). 1.If statusCode/@code = "active|supended", then effectiveTime SHALL contain [1..1] low. If statusCode/@code="aborted|completed", then effectiveTime SHALL contain [1..1] high (CONF:7504). •SHALL contain at least one [1..*] entryRelationship (CONF:7509) such that it 1.SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7915). 2.SHALL contain exactly one [1..1] Allergy/Alert Observation (templateId:2.16.840.1.113883.10.20.22.4.7) (CONF:7510). 7 Allergy Problem Act •SHALL contain exactly one [1..1] @classCode="ACT" (CodeSystem: 2.16.840.1.113883.5.6 HL7ActClass) STATIC (CONF:7469). •SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: 2.16.840.1.113883.5.1001 HL7ActMood) STATIC (CONF:7470). •SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.4.30" (CONF:7471). •SHALL contain at least one [1..*] id (CONF:7472). •SHALL contain exactly one [1..1] code="48765-2" Allergies, adverse reactions, alerts (CodeSystem: 2.16.840.1.113883.6.1 LOINC) STATIC (CONF:7477). •SHALL contain exactly one [1..1] statusCode, which SHALL be selected from ValueSet 2.16.840.1.113883.11.20.9.19 ProblemAct statusCode DYNAMIC (CONF:7485). •SHALL contain exactly one [1..1] effectiveTime (CONF:7498). 1.If statusCode/@code = "active|supended", then effectiveTime SHALL contain [1..1] low. If statusCode/@code="aborted|completed", then effectiveTime SHALL contain [1..1] high (CONF:7504). •SHALL contain at least one [1..*] entryRelationship (CONF:7509) such that it 1.SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7915). 2.SHALL contain exactly one [1..1] Allergy/Alert Observation (templateId:2.16.840.1.113883.10.20.22.4.7) (CONF:7510). 8 Allergy Problem Act •SHALL contain exactly one [1..1] @classCode="ACT" (CodeSystem: 2.16.840.1.113883.5.6 HL7ActClass) STATIC (CONF:7469). •SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: 2.16.840.1.113883.5.1001 HL7ActMood) STATIC (CONF:7470). •SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.4.30" (CONF:7471). •SHALL contain at least one [1..*] id (CONF:7472). •SHALL contain exactly one [1..1] code="48765-2" Allergies, adverse reactions, alerts (CodeSystem: 2.16.840.1.113883.6.1 LOINC) STATIC (CONF:7477). •SHALL contain exactly one [1..1] statusCode, which SHALL be selected from ValueSet 2.16.840.1.113883.11.20.9.19 ProblemAct statusCode DYNAMIC (CONF:7485). •SHALL contain exactly one [1..1] effectiveTime (CONF:7498). 1.If statusCode/@code = "active|supended", then effectiveTime SHALL contain [1..1] low. If statusCode/@code="aborted|completed", then effectiveTime SHALL contain [1..1] high (CONF:7504). •SHALL contain at least one [1..*] entryRelationship (CONF:7509) such that it 1.SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7915). 2.SHALL contain exactly one [1..1] Allergy/Alert Observation (templateId:2.16.840.1.113883.10.20.22.4.7) (CONF:7510). 9 Allergy/Alert Observation [observation: templateId 2.16.840.1.113883.10.20.21.4.7(open)] This clinical statement represents that an allergy or adverse reaction exists or does not exist. The agent that is the cause of the allergy or adverse reaction is represented as a manufactured material participant playing entity in the allergy observation. While the agent is often implicit in the alert observation (e.g. "allergy to penicillin"), it should also be asserted explicitly as an entity. SHALL contain exactly one [1..1] @classCode="OBS" Observation (CodeSystem: 2.16.840.1.113883.5.6 HL7ActClass) STATIC (CONF:7379). SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: 2.16.840.1.113883.5.1001 HL7ActMood) STATIC (CONF:7380). SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.4.7" (CONF:7381). SHALL contain at least one [1..*] id (CONF:7382). SHALL contain exactly one [1..1] code, which SHALL be selected from ValueSet 2.16.840.1.113883.3.88.12.3221.6.2 Allergy/Adverse Event Type DYNAMIC (CONF:7383). SHALL contain exactly one [1..1] statusCode/@code="completed" Completed (CodeSystem: 2.16.840.1.113883.5.14 HL7ActStatus) STATIC (CONF:7386). SHOULD contain exactly one [1..1] effectiveTime (CONF:7387). SHALL contain exactly one [1..1] value with @xsi:type="CD" (CONF:7390). – This value SHOULD contain exactly one [1..1] originalText (CONF:7422). • This originalText SHOULD contain exactly one [1..1] reference (CONF:7400). – A reference/@value SHOULD point to its corresponding narrative (using the approach defined in CDA Release 2, section 4.3.5.1 ). (CONF:7401). SHOULD contain exactly one [1..1] participant (CONF:7402) such that it – SHALL contain exactly one [1..1] @typeCode="CSM" Product (CodeSystem: 2.16.840.1.113883.5.90 HL7ParticipationType) STATIC (CONF:7403). – SHALL contain exactly one [1..1] participantRole (CONF:7404). • This participantRole SHALL contain exactly one [1..1] @classCode="MANU" Manufactured Product (CodeSystem: 2.16.840.1.113883.5.110 HL7RoleClass) STATIC (CONF:7405). • This participantRole SHALL contain exactly one [1..1] playingEntity (CONF:7406). – This playingEntity SHALL contain exactly one [1..1] @classCode="MMAT" Manufactured Material (CodeSystem: 2.16.840.1.113883.5.41 HL7EntityClass) STATIC (CONF:7407). – This playingEntity SHALL contain exactly one [1..1] code (CONF:7419). » This code @code in an allergy to a specific medication SHALL be selected from the ValueSet 2.16.840.1.113883.3.88.12.80.16 Medication Brand Name or the ValueSet 2.16.840.1.113883.3.88.12.80.17 Medication Clinical Drug. In an allergy to a class of medications the code@code SHALL be selected from the ValueSet 2.16.840.1.113883.3.88.12.80.18 Medication Drug Class. In an allergy to a food or other substance the code@code SHALL be selected from the ValueSet 2.16.840.1.113883.3.88.12.80.20 Ingredient Name. (CONF:7421). » This code SHOULD contain exactly one [1..1] originalText (CONF:7424). » This originalText SHOULD contain exactly one [1..1] reference (CONF:7425). » A reference/@value SHOULD point to its corresponding narrative (using the approach defined in CDA Release 2, section 4.3.5.1 ). (CONF:7426). » This code MAY contain zero or more [0..*] translation (CONF:7431). SHALL contain exactly one [1..1] entryRelationship (CONF:7440) such that it – SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7906). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7446). – SHALL contain exactly one [1..1] Problem Status (templateId:2.16.840.1.113883.10.20.22.4.6) (CONF:7441). SHOULD contain zero or more [0..*] entryRelationship (CONF:7447) such that it – SHALL contain exactly one [1..1] @typeCode="MFST" Is Manifestation of (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7907). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7449). – SHALL contain exactly one [1..1] Reaction Observation (templateId:2.16.840.1.113883.10.20.22.4.9) (CONF:7450). 10 Allergy/Alert Observation SHALL contain exactly one [1..1] entryRelationship (CONF:7440) such that it – SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7906). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7446). – SHALL contain exactly one [1..1] Problem Status (templateId:2.16.840.1.113883.10.20.22.4.6) (CONF:7441). SHOULD contain zero or more [0..*] entryRelationship (CONF:7447) such that it – SHALL contain exactly one [1..1] @typeCode="MFST" Is Manifestation of (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7907). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7449). – SHALL contain exactly one [1..1] Reaction Observation (templateId:2.16.840.1.113883.10.20.22.4.9) (CONF:7450). 11 Problem Status [observation: templateId 2.16.840.1.113883.10.20.22.4.6(open)] This clinical statement represents the status of a patient problem. Typical values are "Active", "Inactive", and "Resolved". A resolved problem no longer exists as a problem for the patient as of the time of recording (it may reoccur, but that would be a new instance). An inactive problem is one that still exists for the patient but is not currently a cause for concern (e.g., diabetes that is under control). An active problem exists and is a current cause for concern. A problem status observation will always refer to and be contained in a single problem observation. SHALL contain exactly one [1..1] @classCode="OBS" Observation (CodeSystem: 2.16.840.1.113883.5.6 HL7ActClass) STATIC (CONF:7357). SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: 2.16.840.1.113883.5.1001 HL7ActMood) STATIC (CONF:7358). SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.4.6" (CONF:7359). SHALL contain exactly one [1..1] code="33999-4" Status (CodeSystem: 2.16.840.1.113883.6.1 LOINC) STATIC (CONF:7361). SHOULD contain exactly one [1..1] text (CONF:7362). – This text SHOULD contain exactly one [1..1] reference (CONF:7363). • A reference/@value SHOULD point to its corresponding narrative (using the approach defined in CDA Release 2, section 4.3.5.1 ). (CONF:7375). contain exactly one [1..1] statusCode/@code="completed" Completed (CodeSystem: 2.16.840.1.113883.5.14 HL7ActStatus) STATIC (CONF:7364). SHALL contain exactly one [1..1] value with @xsi:type="CD", where the @code SHALL be selected from ValueSet 2.16.840.1.113883.1.11.20.13 Problem Status DYNAMIC (CONF:7365). SHALL 12 Allergy/Alert Observation SHALL contain exactly one [1..1] entryRelationship (CONF:7440) such that it – SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7906). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7446). – SHALL contain exactly one [1..1] Problem Status (templateId:2.16.840.1.113883.10.20.22.4.6) (CONF:7441). SHOULD contain zero or more [0..*] entryRelationship (CONF:7447) such that it – SHALL contain exactly one [1..1] @typeCode="MFST" Is Manifestation of (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7907). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7449). – SHALL contain exactly one [1..1] Reaction Observation (templateId:2.16.840.1.113883.10.20.22.4.9) (CONF:7450). 13 Reaction Observation [observation: templateId 2.16.840.1.113883.10.20.21.4.9(open)] This template represents the symptom the patient presents with when exposed to the substance. SHALL contain exactly one [1..1] @classCode="OBS" Observation (CodeSystem: 2.16.840.1.113883.5.6 HL7ActClass) STATIC (CONF:7325). SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: 2.16.840.1.113883.5.1001 HL7ActMood) STATIC (CONF:7326). SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.4.9" (CONF:7323). SHALL contain exactly one [1..1] id (CONF:7329). SHALL contain exactly one [1..1] code (CONF:7327). SHOULD contain exactly one [1..1] text (CONF:7330). – This text SHOULD contain exactly one [1..1] reference (CONF:7331). • A reference/@value SHOULD point to its corresponding narrative (using the approach defined in CDA Release 2, section 4.3.5.1 ). (CONF:7377). SHALL contain exactly one [1..1] statusCode/@code="completed" Completed (CodeSystem: 2.16.840.1.113883.5.14 HL7ActStatus) STATIC (CONF:7328). SHOULD contain exactly one [1..1] effectiveTime (CONF:7332). – This effectiveTime SHOULD contain exactly one [1..1] low (CONF:7333). – This effectiveTime SHOULD contain exactly one [1..1] high (CONF:7334). SHALL contain exactly one [1..1] value with @xsi:type="CD", where the @code SHALL be selected from ValueSet 2.16.840.1.113883.3.88.12.3221.7.4 Problem DYNAMIC (CONF:7335). SHOULD contain exactly one [1..1] entryRelationship (CONF:7580) such that it – SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) (CONF:7581). – SHALL contain exactly one [1..1] Severity Observation (templateId:2.16.840.1.113883.10.20.22.4.8) (CONF:7582). MAY contain zero or more [0..*] entryRelationship (CONF:7337) such that it – SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7338). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7343). – SHALL contain exactly one [1..1] Procedure Activity Procedure (templateId:2.16.840.1.113883.10.20.22.4.14) (CONF:7339). • This procedure activity is intended to contain information about procedures that were performed in response to an allergy reaction (CONF:7583). MAY contain zero or more [0..*] entryRelationship (CONF:7340) such that it – SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7341). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7344). – SHALL contain exactly one [1..1] Medication Activity (templateId:2.16.840.1.113883.10.20.22.4.16) (CONF:7342). • This medication activity is intended to contain information about medications that were administered in response to an allergy reaction. 14 Reaction Observation [observation: templateId 2.16.840.1.113883.10.20.21.4.9(open)] This template represents the symptom the patient presents with when exposed to the substance. SHALL contain exactly one [1..1] @classCode="OBS" Observation (CodeSystem: 2.16.840.1.113883.5.6 HL7ActClass) STATIC (CONF:7325). SHALL contain exactly one [1..1] @moodCode="EVN" Event (CodeSystem: 2.16.840.1.113883.5.1001 HL7ActMood) STATIC (CONF:7326). SHALL contain exactly one [1..1] templateId/@root="2.16.840.1.113883.10.20.22.4.9" (CONF:7323). SHALL contain exactly one [1..1] id (CONF:7329). SHALL contain exactly one [1..1] code (CONF:7327). SHOULD contain exactly one [1..1] text (CONF:7330). – This text SHOULD contain exactly one [1..1] reference (CONF:7331). • A reference/@value SHOULD point to its corresponding narrative (using the approach defined in CDA Release 2, section 4.3.5.1 ). (CONF:7377). SHALL contain exactly one [1..1] statusCode/@code="completed" Completed (CodeSystem: 2.16.840.1.113883.5.14 HL7ActStatus) STATIC (CONF:7328). SHOULD contain exactly one [1..1] effectiveTime (CONF:7332). – This effectiveTime SHOULD contain exactly one [1..1] low (CONF:7333). – This effectiveTime SHOULD contain exactly one [1..1] high (CONF:7334). SHALL contain exactly one [1..1] value with @xsi:type="CD", where the @code SHALL be selected from ValueSet 2.16.840.1.113883.3.88.12.3221.7.4 Problem DYNAMIC (CONF:7335). SHOULD contain exactly one [1..1] entryRelationship (CONF:7580) such that it – SHALL contain exactly one [1..1] @typeCode="SUBJ" Has subject (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) (CONF:7581). – SHALL contain exactly one [1..1] Severity Observation (templateId:2.16.840.1.113883.10.20.22.4.8) (CONF:7582). MAY contain zero or more [0..*] entryRelationship (CONF:7337) such that it – SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7338). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7343). – SHALL contain exactly one [1..1] Procedure Activity Procedure (templateId:2.16.840.1.113883.10.20.22.4.14) (CONF:7339). • This procedure activity is intended to contain information about procedures that were performed in response to an allergy reaction (CONF:7583). MAY contain zero or more [0..*] entryRelationship (CONF:7340) such that it – SHALL contain exactly one [1..1] @typeCode="RSON" Has reason (CodeSystem: 2.16.840.1.113883.5.1002 HL7ActRelationshipType) STATIC (CONF:7341). – SHALL contain exactly one [1..1] @inversionInd="true" (CONF:7344). – SHALL contain exactly one [1..1] Medication Activity (templateId:2.16.840.1.113883.10.20.22.4.16) (CONF:7342). • This medication activity is intended to contain information about medications that were administered in response to an allergy reaction. (CONF:7584). 15 http://hl7-watch.blogspot.com/ 16 Why does this happen? 1. HL7 V3’s development methodology is additive; each new release is created by adding new content to the existing release, with (apparently) no consideration for logical consistency The result is increasing unclarity in the standard creating many new opportunities for forking and failures, giving rise for demands for yet new additions to content 17 Why does this happen? 3. HL7 V3 and all related artifacts – to some extent including FHIR – are based on the HL7 RIM, which requires all entities to be binned under one of three classes: Acts, Roles (e.g. patient role), Entities (a great mystery) 18 EntityClass =def. Classifies the Entity class and all of its subclasses. The terminology is hierarchical. At the top is this HL7-defined domain of high-level categories (such as represented by the Entity subclasses). Each of these terms must be harmonized and is specializable. The value sets beneath are drawn from multiple, frequently external, domains that reflect much more fine-grained typing. 19 entity =def. Corresponds to the Entity class 20 Where do these things go: diseases problems conditions allergies bodily processes internal physiology accidental poisoning? Answer: all are Acts A disease is an observation of disease Yet more forkings and failures 21 Why does this happen? 4. Voting You cannot maintain the coherence of a computer program, or a logically axiomatized theory, or a coding system when major decisions are made on the basis of voting (this is so even where those eligible to vote do not have an incentive to vote for complexistificalizations of the system in question) 22 No way we will ever be able to use computers to check HL7 V3 coding for conformity to the HL7 V3 coding system 23 Last post: February 23, 2014 give Grieve a chance FHIR: open, not going to make the mistakes of the RIM, use REST rather than walkie-talkie technology 24 FHIR.ttl # FHIR definitions # This is work in progress, and may change rapidly # A note about policy: the focus here is providing the knowledge from # the FHIR specification as a set of triples for knowledge processing. # Where appopriate, predicates defined external to FHIR are used. "Where # appropriate" means that the predicates are a faithful representation # of the FHIR semantics, and do not involve insane (or owful) syntax. Note the use of the term ‘definition’ – recall David Booth: ‘terrible definition’ 31 fhir: Age rdfs:subClassOf fhir:Quantity; rdfs:label "There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM. If value is present, it SHALL be positive."; rdfs:comment "A duration (length of time) with a UCUM code"; dcterms:description "A duration (length of time) with a UCUM code". The authors do not understand the difference between a definition and a statement of necessary conditions 32 Chapter 4: Principles of Best Practice – Terms, Definitions, and Classification Principles for Definitions 13. 14. 15. 16. 17. 18. Provide all non-root terms with definitions Use Aristotelian definitions Use essential features in defining terms. Start with the most general terms in your domain. Avoid circularity in defining terms. To ensure the intelligibility of definitions, use simpler terms than the term you are defining. 19. Do not create terms for universals through logical combination. 20. Definitions should be unpackable (Term-definition intersubstitutability) Constructing the definitions should help users understand the meanings of the terms Should help ensure the correctness and stability of the ontology hierarchy Should thereby help computation across the bodies of data tagged using the ontology 34 fhir:Element # this file refers to concepts defined in rim.ttl and to others defined elsewhere outside HL7 fhir:Element a rdfs:Class; rdfs:label "Base for all elements"; dc:title "Base for all elements"; rdfs:comment "Base definition for all elements in a resource."; dcterms:description "Base definition for all elements in a resource."; the class Element is a base for all elements Element = Base definition for all elements in a resource 35 fihr:BackboneElement • fhir:BackboneElement rdfs:subClassOf fhir:Element; • rdfs:label "Base for elements defined inside a resource"; • rdfs:comment "Base definition for all elements that are defined inside a resource - but not those in a data type."; Backbone element = base for elements defined inside a resource? Are there elements not defined inside a resource? 36 fhir:ElementDefinitionBaseComponent fhir:ElementDefinitionBaseComponent a fhir:Element; rdfs:comment "Information about the base definition of the element, provided to make it unncessary for tools to trace the deviation of the element through the derived and related profiles. This information is only provided where the element definition represents a constraint on another element definition, and must be present if there is a base element definition."; 37 fhir:ElementDefinitionBaseComponent fhir:ElementDefinitionBaseComponent a fhir:Element; rdfs:comment "Information about the base definition of the element ElementDefinitionBaseComponent is both Part of an ElementDefinition Information about [the same] ElementDefinition 38 fhir:ElementDefinitionBaseComponent.path fhir:ElementDefinitionBaseComponent.path a rdf:Property; rdfs:comment "The Path that identifies the base element - this matches the ElementDefinition.path for that element. Across FHIR, there is only one base definition of any element - that is, an element definition on a [[[StructureDefinition]]] without a StructureDefinition.base."; 43 fhir:ElementDefinitionSlicingComponent.discriminator rdfs:comment "Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices."; 44 fhir:ElementDefinitionSlicingComponent.description rdfs:comment "A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated."; fhir:ElementDefinitionSlicingComponent.ordered a rdf:Property; rdfs:comment "If the matching elements have to occur in the same order as defined in the profile."; 45 fhir:Element.extension rdfs:comment "May be used to represent additional information that is not part of the basic definition of the element. Tells us nothing at all about Element.extension 46 fhir:code fhir:code rdfs:subClassOf fhir:string; rdfs:comment "A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents"; Not a definition, just a statement of a necessary condition 47 fhir:id fhir:id rdfs:subClassOf fhir:string; rdfs:comment "Any combination of letters, numerals, \"-\" and \".\", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive."; Not a definition, just a statement of a necessary condition 48 fhir:instant [they mean of time] fhir:instant rdfs:subClassOf fhir:Primitive; rdfs:comment "An instant in time - known at least to the second"; So instants not measured do not exist 49 fhir:Extension fhir:Extension rdfs:subClassOf fhir:Element; rdfs:label ""; dc:title ""; rdfs:comment "Optional Extensions Element - found in all resources."; a owl:Restriction; owl:onProperty fhir:Extension.url; owl:minCardinality "1^^xs:nonNegativeInteger" "Optional Extensions Element - found in all resources."; 50 fhir:BackboneElement.modifierExtension rdfs:comment "May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions."; rdfs:domain fhir:BackboneElement; 51 Not a single definition in this entire document Though there are some ‘definition elements’ referred to in the document 52 Ontology in FHIR: Tiny Pointers to the Sequence Ontology # - Extension: geneticsAminoAcidChangeType ex:birthplace a fhir:ExtensionDefinition; rdfs:comment "Type of variation expressed using Sequence Ontology or LOINC answer list 48006-1."; dcterms:description "Type of variation expressed using Sequence Ontology or LOINC answer list 48006-1."; fhir:status [ a fhir:conformance-resource-status\#draft]; fhir:canonicalStatus [ a fhir:canonical-status\#draft]; dc:date "2015-03-18"; rdfs:range fhir:CodeableConcept. 53 Ontology in FHIR: Tiny Pointers to the Sequence Ontology # - Extension: geneticsDNASequenceVariationType ------------------------------ex:birthplace a fhir:ExtensionDefinition; rdfs:comment "Codified type for associated DNA Sequence Variation. DNA Sequence Variations use the HGVS notation which implies the DNA Sequence Variation Type, but the concurrent use of this code will allow a standard and explicit type for technical and display convenience. LOINC Answer List values 48019-4 or Sequence Ontology vaues."; 54 birthplace? This term occurs in multiple seemingly incorrect places throughout the fhir.ttl file. I think this is a find-and-replace error 55 Second rule of ontology building Read 56 fhir:birthplace ex:birthplace a fhir:ExtensionDefinition; rdfs:comment "Identifies internal processing status for the data element; e.g. \"Under review\"."; dcterms:description "Identifies internal processing status for the data element; e.g. \"Under review\"."; fhir:status [ a fhir:conformance-resource-status\#draft]; fhir:canonicalStatus [ a fhir:canonical-status\#draft]; dc:date "2014-04-21"; rdfs:range fhir:CodeableConcept. 57 What is FHIR for? Fast Healthcare Interoperability Resources 61 How would the solution system yield interoperability people from the local environment will need to map their codes to the system (compare i2b2) , who is going to be able to map their local data to FHIR? who will guarantee that coding is done consistently? 62 63 64 Reignited from Tom Beale (to openEHR list) Many of us here have studied or used some of the key upper level ontologies (BFO, BioTopLite etc), and I think BFO2 will probably end up being the one of choice for general biomedicine. It [will be merged with] the Information Artefact Ontology (IAO) which will probably become the upper level ontology for describing types of information that stand in the IS-ABOUT and similar relationships with real world referents - in other words, EHR information items. 67 :. What is the solution? (adapted from Beale) A dedicated small team of healthcare information experts to create a new standard based on state of the art coding practices Parts of this should involve ontology work following state of the art ontology practices This ontology work should ensure interoperability of data tagged with the ontology and data tagged with existing ontologies, including biological ontologies. 68 RELATION TO TIME CONTINUANT INDEPENDENT OCCURRENT DEPENDENT GRANULARITY ORGAN AND ORGANISM Organism (NCBI Taxonomy) CELL AND CELLULAR COMPONENT Cell (CL) MOLECULE Anatomical Organ Entity Function (FMA, (FMP, CPRO) Phenotypic CARO) Quality (PaTO) Cellular Cellular Component Function (FMA, GO) (GO) Molecule (ChEBI, Sequence Ontology, PrO) Molecular Function (GO) Biological Process (GO) Molecular Process (GO) OBO Foundry reference ontologies (Gene Ontology in yellow) 70 RELATION TO TIME CONTINUANT INDEPENDENT OCCURRENT DEPENDENT GRANULARITY ORGAN AND ORGANISM Organism (NCBI Taxonomy) CELL AND CELLULAR COMPONENT Cell (CL) MOLECULE Anatomical Organ Entity Function (FMA, (FMP, CPRO) Phenotypic CARO) Quality (PaTO) Cellular Cellular Component Function (FMA, GO) (GO) Molecule (ChEBI, Sequence Ontology, PrO) Molecular Function (GO) Biological Process (GO) Molecular Process (GO) OBO Foundry reference ontologies (Sequence Ontology in blue) 71 Basic Formal Ontology (BFO 2.0) INDEPENDENT CONTINUANT (~THING)) DEPENDENT CONTINUANT (~ATTRIBUTE) OCCURRENT (~PROCESS) Diseases Biological Processes Populations Organisms Organs Cells Proteins Phenotypic Qualities Molecular Functions Cognitive Processes Planned processes INFORMATION ARTIFACT (~DATA) Data Documents Plans Software Algorithms Extension Strategy + Modular Organization 72 RELATION TO TIME CONTINUANT ORGAN AND ORGANISM CELL AND CELLULAR COMPONENT MOLECULE Organism Anatomical (NCBI Entity Taxonomy) (FMA, CARO) Cell (CL) Cellular Component (FMA, GO) Molecule (ChEBI, SO, RnaO, PrO) DEPENDENT Environment Ontology INDEPENDENT GRANULARITY OCCURRENT Organ Function (FMP, CPRO) Phenotypic Quality (PaTO) Biological Process (GO) Cellular Function (GO) Molecular Function (GO) Molecular Process (GO) Environment Ontology (EnvO) 73 BFO Ontology for General Medical Science Cardiovascular Disease Ontology Genetic Disease Ontology Cancer Disease Ontology Genetic Disease Ontology Immune Disease Ontology Environmental Disease Ontology Oral Disease Ontology Infectious Disease Ontology IDO Staph Aureus IDO MRSA IDO Australian MRSA IDO Australian Hospital MRSA … … 74 RELATION TO TIME Organism ORGAN AND NCBI ORGANISM Taxonomy CELL AND CELLULAR COMPONENT MOLECULE Cell (CL) Anatomical Entity (FMA, CARO) Cellular Component (FMA, GO) Molecule (ChEBI, SO, RnaO, PrO) DEPENDENT CONTINUANT Organ Function (FMP, CPRO) Cellular Function (GO) Molecular Function (GO) Phenotypic Quality (PATO) INDEPENDENT CONTINUANT Environment Ontology (ENVO) GRANULARITY CONTINUANT OCCURRENT Biological Process (GO) Ontology for Biomedical Investigations (OBI) Molecular Process (GO) Recognizing a new family of protocol-driven processes (investigation, assay, clinical trial …) 75 Aboutness: Diagnosis about disease INDEPENDENT DEPENDENT OCCURRENT CONTINUANT CONTINUANT (~PROCESS) (~THING)) (~ATTRIBUTE) Patient Demograp Phenotype hics Disease (Disease, processes …) Anatomy Histology Chemistry Biological Genotype processes (GO) (GO) IAO OBI Data about all of Instruments, these things Biomaterials, including Functions image data … Parameters, Algorithms, Assay types, software, Statistics protocols, … … 77 OBO Foundry approach extended into other domains NIF Standard IDO Core / IDO extensions cROP / Planteome Neuroscience Information Framework Infectious Disease Ontology Suite Common Reference Ontologies for Plants 78 Common Reference Ontologies for Plants (cROP) Examples of BFO-based ontology frameworks in other areas UNEP Ontology Framework CIA Ontology Framework USGS National Map Joint Doctrine Ontologies Common Core Ontologies (CCO) TRIP Ontologies United Nations Environment Programme Central Intelligence Agency United States Geological Survey US Air Force Research Labs US Army / I2WD and ARL, IARPA, JIDO, ONR, AFRL Federal Highway Administration (FHWA) Transportation Research Informatics Platform (TRIP)