380 likes | 481 Views
Clinical Model and Terminology Issues in Guideline Execution. Craig Parker, Harold Solbrig, Stan Huff & Roberto Rocha as part of the SAGE project. The SAGE project is partially funded by NIST/ATP Cooperative Agreement Number 70NANB1H3049. SAGE Overview. Overview – Guideline Flow. Step 1.
E N D
Clinical Model and Terminology Issues in Guideline Execution Craig Parker, Harold Solbrig, Stan Huff & Roberto Rocha as part of the SAGE project The SAGE project is partially funded by NIST/ATP Cooperative Agreement Number 70NANB1H3049
Overview – Guideline Flow Step 1 Step 2 Guideline Creation Step 3 Guideline Import Guideline Execution Create guideline in terms of CEM Perform mappings from CEM to host database Perform inference between local instance and CEM instance CEM = Clinical Expression Model (e.g. HL7 Templates)
A Guideline Example • Example drawn from ICSI Acute MI guideline. • Illustrates where clinical model and terminology actions will take place in the process of guideline development, deployment and execution. • Illustrates issues that may arise.
Creating Guidelines We want to say what to do if the patient develops a new holosystolic apical murmur. Lets represent this murmur using HL7 template #12345 (ACME murmur). In the vocabulary of this template we would say “pansystolic” instead of “holosystolic”.
Step 1 – Guideline Creation • If the patient has a new holosystolic apical murmur then . . .(from ICSI Acute MI guideline) • The term “new holosystolic apical murmur” needs to be mapped to the CEM. • This could happen because at the time of creation only terms that are expressible in the CEM are available to the authors. • More likely a knowledge engineer will have to determine a mapping from a clinicians words to the CEM. • We will leave the “new” part of the term for an exercise at a later time.
Step 1 – Map Guideline to CEM CEM (HL7 Template) Guideline <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“MURMUR"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“PHASE"/> <value V=“Holosystolic"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“LOCATION"/> <value V=“Apical"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event> If the patient has a new holosystolic apical murmur then . . .
Mapping Guideline to CEM • Map clinician’s words into a composite expression based on a reference terminology. • Use the resulting composite expression to create the CEM instance.
Map to a Reference Terminology • There are often many ways to say the same thing… Murmur (finding) C0026806 Heart Problem (disease or syndrome) (C0795691) Heart Murmur (sign or symptom) (C0018808) Functional heart murmur (Finding) (C023255) Heart murmur, functional and undiagnosed (Finding) (C0476259) Systolic Heart Murmur, NOS (Finding) (C0232257) Pansystolic murmur (Sign or Symptom) C0232258
Map the Guideline to a Reference Terminology • Mapping Granularity <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“?????"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“?????"/> <value V=“?????"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“?????"/> <value V=“?????"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event> Pansystolic murmur (Sign or Symptom) C0232258
Map the Guideline to a Reference Terminology • Mapping Granularity <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“?????"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“?????"/> <value V=“?????"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“?????"/> <value V=“?????"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event> ? Pansystolic murmur (Sign or Symptom) C0232258 Granularity is too coarse
Map the Guideline to a Reference Terminology • Mapping Granularity <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“C026806"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“Body Location"/> <value V=“C001878"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“temporality"/> <value V=“systolic"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event> Murmur (finding) C026806 has-topography: Heart (Body part) C0018787 has-spatial-location: apical (C0205111) has-temporality: systolic (C00391555) quality: complete (C0205197) Sufficient Granularity
Map the Guideline to a Reference Terminology • Reference terminology must have a sound foundation • There still may be more than one way to say the same thing… Pansystolic murmur (Sign or Symptom) C0232258 Murmur (finding) C026806 has-topography: Apex of heart (C0224811) has-temporality: systolic (C00391555) quality: complete (C0205197)
Map the Guideline to a Reference Terminology • Reference terminology must have a sound foundation • There still may be more than one way to say the same thing… • .. but you have to be able to determine whether they are the same thing. Murmur (finding) C026806 has-topography: Apex of heart (C0224811) has-temporality: systolic (C00391555) quality: complete (C0205197) Pansystolic murmur (Sign or Symptom) C0232258
Map the Guideline to a Reference Terminology • Software Tools • Text search • Hierarchical and relationship navigation • Composition and decomposition
Map the Guideline to a Reference Terminology • Text search tools • Spelling correction • Mapping words and phrases to (near) synonyms; word stemming • Expanding and contracting acronyms and abbreviations • Multi-language capabilities • Context capabilities (MI = Myocardial Infarction? Mitral Insufficiency?) • NLP (“No family history of degenerative heart failure”)
Map the Guideline to a Reference Terminology • Hierarchy and relationship navigation • Subtype navigation (broader and narrower terms) • Relationship traversal (etiology, has_part, …) • Search qualification
Map the Guideline to a Reference Terminology • Composition and Decomposition • Greatest common supertype • Least common subtype • Convert to canonical form • Compare composite expressions • Difference composite expressions
Map the Guideline to a Reference Terminology • Standards • HL7 CTS Specification • Specifies basic text search tools • Does NOT cover lexical areas (spelling, acronyms, NLP) • Some relationship traversal • Limited composition/decomposition expressions • CTS Specification is directed at the current needs of HL7 (e.g. messaging). • A broader approach is needed to support guidelines.
Importing Guidelines This new guideline uses HL7 template #12345. We represent murmurs using our murmur table. How do we create a mapping?
Database Granularity A code in a table • The same information can be carried in widely varying structures: Tag/Value Pairs Free text Column Headings Heart Murmur Clinic Table Names Database Names Table 17: Patients with Heart Murmur
Database Granularity • The same information can vary in granularity • Slots must be composed or decomposed in the mapping process. • The database may vary in the amount of detail • Some slots may not have mappings.
Step 2 – Guideline Import • Make mapping from CEM to host database. • Database Record:HeartMurmurObservation Type = Mitral Regurgitation Grade = III/VI Location = 5th Intercostal Space . . . • Have to deal with issues of differing slots and differing granularity of slots • Structural decomposition • Set up inference hierarchies
Step 2 – Map Database to CEM CEM (HL7 Template) <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“MURMUR"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“PHASE"/> <value V=“Pansystolic"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“LOCATION"/> <value V=“5th Intercostal Space"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event> Database Instance HeartMurmurObservation Type = Mitral Regurgitation Grade = III/VI Location = 5th intercostal space … When populating the CEM the type “Mitral Regurgitation” is mapped to phase “Pansystolic”
Guideline Execution The guideline says that if the patient has a new apical pansystolic murmur we should . . . Looking in my database I find that the patient has a new murmur at the 5th intercostal space. Is the 5th intercostal space an apical location?
Step 3 – Guideline Execution • Traverse term-to-CEM map (depending on compilation strategy). • Traverse CEM-to-DB map. • Perform “MLM” logic. • Do terminology inference.
Guideline Execution • Guidelines use two information sources • Triggers – new information being entered into the system • Existing data – information already contained within the database
Guideline Execution • Approach is different for each: • Triggers • Need to determine whether the new information represents an instance of the guideline trigger • Answer may be “yes”, “no”, or “need more information” • Database • Need to select information that may satisfy guideline criteria • Detail, granularity and logic usually precludes exact selection • Have to maintain a balance between quantity (select * from dx_table where pt=‘1110112’) and complexity (select * from dx_table, … where dx_code in (a,b,c,d,…) or dx_code in (select * from codedTerm where sourceCode=‘a’ and relcode in (1,2,3))
Step 3 - Perform Logic Guideline CEM Instance Database CEM Instance <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“MURMUR"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“PHASE"/> <value V=“Pansystolic"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“LOCATION"/> <value V=“Apical"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“MURMUR"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“PHASE"/> <value V=“Pansystolic"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“LOCATION"/> <value V=“5th Intercostal Space"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event>
Inference from Terminology Apical Location … 5th ICS 6th ICS … … …
Database representation of a Semantic Network Apical has-child 5th ICS Apical has-child 6th ICS Apical has-child …
Other Execution Questions • Where do we iterate through the database instances? • Database services? • Guideline logic (e.g. Arden or GELLO)? • How are terminology services used? • Standard terminology services • Host specific terminology services
Notes on Templates <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“Pansystolic murmur"/> </A_Observation_event> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“MURMUR"/> <AR_Observation_event_component> <type_cd V="COMP"/> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“PHASE"/> <value V=“Systolic"/> </A_Observation_event> </AR_Observation_event_component> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“LOCATION"/> <value V=“Apical"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event> <A_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“Systolic Heart MURMUR"/> <AR_Observation_event_component> <type_cd V="COMP"/> <AR_Observation_event> <class_cd V="OBS"/> <mood_cd V="EVN"/> <cd V=“LOCATION"/> <value V=“Apical"/> </AR_Observation_event> </AR_Observation_event_component> . . . </A_Observation_event>
Notes on Templates • Need to evolve in tandem with terminologies • Heart Murmur Observation • Apical HeartMurmur Observation • Systolic Apical Heart Murmur Observation • Holosystolic Apical Heart Murmur Observation • Need to be named, cataloged, cross referenced and formally organized
Notes on Templates • To be portable, templates have to be based on an underlying reference terminology as well • Templates represent clinical statements • Without a thorough understanding of the statements and their hierarchical nature, it quickly becomes virtually impossible to make reasonable guidelines.