Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | jackson-pearson |
View: | 24 times |
Download: | 0 times |
Generating Medical Logic Modules for
Clinical Trial Eligibility
Craig Parker
Brigham Young University
Clinical Trials
Important for modern medical research Efficacy of therapies Safety of therapies
Sponsored by Government (www.clinicaltrials.gov) Academic institutions Industry (e.g. pharmaceutical companies)
Clinical Trial Enrollment
Power in numbers Traditional enrollment methods have limitations
Methods Limitations
Regular office visits Limited pool of patients
Advertising Limited medical knowledge,
Cost
Chart review Limited information,
Requires medical training
Electronic Medical Records (EMRs)
Good News Large amounts of data being collected Efforts to standardize representations are well
supported Bad News
Most EMRs are far from complete Not all representations are in a standard form
Legacy data / Legacy data acquisition tools Unstandardized realms
Automating the Process
Generate medical logic modules to represent eligibility criteria for clinical trials Start with criteria as first-order predicate logic Map concepts with medical vocabularies and
ontologies Create medical logic modules Handle concepts that can’t be mapped
Measure results
Medical Logic Modules (MLMs)
An abstract term describing the knowledge necessary for making a medical decision
A specific type of medical program Represented using the Arden Syntax
ANSI standard Broad vendor acceptance Compiles to an executable form
MLM in Arden Syntax
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
Beginning and End
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
Overview
Trial KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Overview
TrialPredicates
Expression
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Overview
TrialPredicates
Expression
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Inclusion: Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
Overview
TrialPredicates
Expression
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Inclusion: Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
(P1) Gender: Female (P2) Pregnant (P3) Gestational age > 23.0 wks (P4) Gestational age < 31.6 wks (P5) Chorioamnionitis (P6) Non-reassuring fetal testing
Overview
TrialPredicates
Expression
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Inclusion: Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
(P1) Gender: Female (P2) Pregnant (P3) Gestational age > 23.0 wks (P4) Gestational age < 31.6 wks (P5) Chorioamnionitis (P6) Non-reassuring fetal testing
P1 P2 (P3 P4) (P5 P6)
Or in conjunctive normal form:
P1 P2 P3 P4 P5 P6
Overview
TrialPredicates
Expression
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Inclusion: Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
(P1) Gender: Female (P2) Pregnant (P3) Gestational age > 23.0 wks (P4) Gestational age < 31.6 wks (P5) Chorioamnionitis (P6) Non-reassuring fetal testing
P1 P2 (P3 P4) (P5 P6)
Or in conjunctive normal form:
P1 P2 P3 P4 P5 P6
Overview
Trial
TermMapping
LogicHandling
Predicates
Expression
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Overview
Trial
TermMapping
LogicHandling
Predicates
Expression
UMLSOther
Knowledge
Target Schema
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Overview
Trial
AdditionalInformation
TermMapping
LogicHandling
Predicates
Expression
UMLSOther
Knowledge
Target Schema
KNOWLEDGE: TYPE: . . . DATA: gestational_age := read last {SELECT gest_age FROM Observation}; ;;
EVOKE: . . . LOGIC: IF gestational_age >= 73 days AND gestational_age <= 97 days THEN conclude true; ENDIF; ;; ACTION: . . .
MLM
Steps to Create MLMs
Classify predicates Map concepts from trial to database Translate logic Generate MLM
Classifying Predicates
Numeric comparisons e.g. gestational age > 23.0 wks time, lab values, physiologic measurements
Single noun phrases e.g. pregnant diagnoses, observations
Two noun phrases e.g. Gender: Female name-value pairs
Mapping Example 1 Inclusion:
Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
Mapping Example 1 Inclusion:
Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
Single noun phrase – likely to be a diagnosis or
observation
Mapping Example 1 Inclusion:
Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
pregnant:
pregnancy
pregnancy appointment type
pregnant ambulatory status
. . .
has-parent: Diagnosis
has-parent: Appointment type
has-parent: Ambulatory status
From vocabulary of target database
Mapping Example 1 Inclusion:
Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
pregnant:
pregnancy
pregnancy appointment type
pregnant ambulatory status
. . .
has-parent: Diagnosis
has-parent: Appointment type
has-parent: Ambulatory status
Mapping Example 1
pregnant:
pregnancy (83035) has-parent: diagnosis
Looking for “pregnancy” in schema of target database.
Mapping Example 1
pregnant:
pregnancy (83035) has-parent: diagnosis
PregnancyObservation : Is-Subtype-Of : DiagnosisAndFindingObservation {
value(codedTerm({pregnancy, 83035}));negation(boolean);. . .
}
Looking for “pregnancy” in schema of target database.
Mapping Example 1
pregnant:
pregnancy (83035) has-parent: diagnosis
Look for “PregnancyObservation” in vocabulary of target database.
PregnancyObservation : Is-Subtype-Of : DiagnosisAndFindingObservation {
value(codedTerm({pregnancy, 83035}));negation(boolean);. . .
}
Mapping Example 1
pregnant:
pregnancy (83035) has-parent: diagnosis
PregnancyObservation (59665) has-parent: observation
PregnancyObservation : Is-Subtype-Of : DiagnosisAndFindingObservation {
value(codedTerm({pregnancy, 83035}));negation(boolean);. . .
}
Look for “PregnancyObservation” in vocabulary of target database.
Mapping Example 1
pregnant:
pregnancy (83035) has-parent: diagnosis
PregnancyObservation (59665) has-parent: observation
PregnancyObservation : Is-Subtype-Of : DiagnosisAndFindingObservation {
value(codedTerm({pregnancy, 83035}));negation(boolean);. . .
}
SELECT * FROM Observations WHERE ObsId = 59665 AND value = 83035
Mapping Example 2 Inclusion:
Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
Mapping Example 2 Inclusion:
Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
Two noun phrases – likely to be a name-
value pair
Mapping Example 2 Inclusion:
Gender: Female Pregnant Gestational age > 23.0 wks and
< 31.6 wks Exclusion:
Chorioamnionitis Non-reassuring fetal testing
Gender
MaleFemale
Demographics
Look in target database for a concept of ‘Gender’ with a value of ‘Female’.
Unmappable Concepts
Concept or value not in target database Concept does not exist
“Delivery intended outside center”
Too HardInclusion: “Received full course of corticosteroids in the previous 7 days”Exclusion: “Corticosteroid therapy, other than qualifying course”
Unmappable Concepts
Concept or value not in target database Concept does not exist
“Delivery intended outside center”
Too HardInclusion: “Received full course of corticosteroids in the previous 7 days”Exclusion: “Corticosteroid therapy, other than qualifying course”
Solution Evaluate eligibility based on available data If eligibility is possible, present questionnaire to user
for outstanding information needed