FHIR and ontology - National Center for Ontological Research

Download Report

Transcript FHIR and ontology - National Center for Ontological Research

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)