420 likes | 557 Views
A Lightweight and Generic Data Mediating Architecture for Decision Support Systems. Alfonso Pérez alpegon3@upv.es Biomedical Informatics Group (IBIME) ITACA Institute, Technical University of Valencia. Arctic Conference on Dual-Model based Clinical Decision Support and Knowledge Management
E N D
A Lightweight and Generic Data Mediating Architecture for Decision Support Systems Alfonso Pérez alpegon3@upv.es Biomedical Informatics Group (IBIME) ITACA Institute, Technical University of Valencia Arctic Conference on Dual-Model based Clinical Decision Support and Knowledge Management Tromsø, May 27th and 28th, 2014
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
CDSS Interoperability • Curiam CDSS[1] • Generic CDSS for clinical and biomedical environments • Connects to databases through a generic data framework [1] - [C Sáez, JM García-Gómez, J Vicente, S Tortajada, M Esparza, AT Navarro, E Fuster, M Robles. A genericdecisionsupportsystemfeaturinganassembledview of predictivemodelsformagneticresonance and clinical data. EuropeanSocietyforMagneticResonance in Medicine and Biology 2008 Congress, Valencia, Info-RESO, 2008]
CDSS semantic interoperability:HL7-CDA Wrapper <entry><observationclassCode="OBS"moodCode="EVN"><code code="248333004"codeSystem="2.16.840.1.113883.6.96"codeSystemName="SNOMED CT"displayName=“Standing height"/><valuexsi:type="PQ" value="186" unit="cm"/></observation></entry> • Use of standardized clinical documents (i.e. HL7-CDA) as input/output of CDSS[2] CDSS Semantic Interpreter Inference engine (e.g., Jess, Drools) CDA_input.xml CDA_output.xml <valuexsi:type="CV" code="OBJ-X-IMC0"codeSystem="0.0.0.0.0.1.2.1.5.5“ displayName=“BMI above objective."/> rules_file.clp binding_file.xml human/machine interpretable <datadef name="height" code="248333004"codeSystem="2.16.840.1.113883.6.96"><valuexsi:type="PQ" unit="cm"/></datadef> ?BMI setValue (/ ?weight (* (/ ?height 100) (/ ?height 100)))) HL7-CDA template input/output human-maintainable [2] - [C Sáez, A Bresó, J Vicente, M Robles, and JM Garcia-Gomez. An HL7-CDA wrapper for facilitating semantic interoperability to rule-based Clinical Decision Support Systems. Computer Methods and Programs in Biomedicine. Volume 109 (3) 239–249, 2013]
Proforma data collection • Transparent extension of the PROforma engine to permit automatic data collection from different sources[3] PROforma Engine wrapper PROforma Engine guideline.pf dataconfig.xml a b b c DB CDSS XML (HL7-CDA, EN-13606,…) [3] - [A. Pérez González. Generación de interfaces gráficos automáticos a partir de ontologías, aplicación a guías clínicas. 2011]
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
Data integration in CDSSs • Problem • Most of the CDSSs working nowadays focus their data needs in one or few different types of data sources • Solution • Develop the new CDSSs independent of the data sources that we want to access • What happens to the already existent CDSS? • Solution • A mediator architecture able to wrap the data modules/petitions of the CDSSs, and adapt them to different data sources
Data integration in CDSSs • Clinical Decision Support Data Mediator (CDS-DATOR) • Lightweight and modular data mediator that facilitates the access to different data sources • Allows the CDSSs to decouple their implementations of the necessities imposed by the data • Designed as a non-invasive data wrapper to ease the integration with already working CDSSs
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
CDS-DATOR • CDS-DATOR connectivity schema • Offers different functionalities depending on the situation in the data flow
CDS-DATOR • Data mediator workflow • Can preload data and store it in an intermediate memory • E.g., standardized patient EHR • Data are loaded via Data Loaders which are specified in the mapping file • The data retrieval process is transparent to the CDSS
CDS-DATOR • Data types
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
CDS-DATOR • Generic Data Loader • Composed by a set of elements that can be used to define a new DataLoader • The LoaderURI specifies the class that will be used • Any number of parameters (ParameterOption) can be specified • Each parameter can have one (SimpleParameter) or several (MultiParameter) values. • These parameters look up the data using the ValueOption interface UML Schema of the Generic Loader
CDS-DATOR • Generic Data Loader • Example code (Xpath Loader) <dataLoaderxsi:type="GenericDataLoader"> <loaderURI>es.upv.ibime.bmg.cdsdc.xpathloader.XPathDataLoader</loaderURI> <parameterxsi:type="SimpleParameter" id="url"> <parameterValuexsi:type="URL">C:/patientData.xml</> </parameter> <parameterxsi:type="SimpleParameter" id="xpath"> <parameterValuexsi:type="SimpleValue">//x:observation/x:code [@code=‘<queryxsi:type="ContextValue">patientID</query>'] /../x:value/@value</> </parameter> <parameterxsi:type="SimpleParameter" id="namespaces"> <parameterValuexsi:type="SimpleValue">x=urn:hl7-org:v3</> </parameter> </dataLoader>
CDS-DATOR • Generic Data Loader • Methodology working for developing new data loaders • Problem • Too complex to be used regularly • Solution • Reduce the complexity of the mappings for the most common sources (XML, Web Services, and relational databases.
CDS-DATOR • Xpath Loader • Needs three parameters • Url: define the route of the file • Xpath: the query applied to the XML file • Namespace: used to avoid ambiguities in the query Workflow of the Xpath Loader
CDS-DATOR • Xpath Loader • Example code • <dataLoaderxsi:type="xpath:XPathLoader"> • <xpath:urlxsi:type="URL">file:/C:/patientData.xml</> • <xpath:xpathxsi:type="SimpleValue">//x:observation/x:code[@code='<query xsi:type="ContextValue">patientID</query>']/../x:value/@value</> • <xpath:namespacesxsi:type="SimpleValue">x=urn:hl7-org:v3"</> • </dataLoader>
CDS-DATOR • Web Service Loader • It can be connected to a SOAP or a REST service • The mapping parameters depends on the type of service used • It can be used to retrieve the information at the beginning of the execution Workflow of the Web Service Loader
CDS-DATOR • Web Service Loader • Example code • <dataLoaderxsi:type="web:WebServiceLoader"> • <web:soapService> • <web:wsdlURLxsi:type="URL">http://localhost:9901/PatientHistory?wsdl</> <web:operationNamexsi:type="SimpleValue">getRecord</> • <web:parametersxsi:type="ContextValue">patientID</> • </web:soapService> • </dataLoader>
CDS-DATOR • SQL Loader • Allows to define SQL queries to relational databases • Requires two parameters: • URL: the connection data to the database • SQL: the query that we want to execute (can contain extra mappings) Workflow of the SQL Loader
CDS-DATOR • SQL Loader • Example code • Dynamic query generation • <dataLoaderxsi:type="sql:SQLLoader"> • <sql:connectionxsi:type="URL">jdbc:mysql://localhost/testDB“ </sql:connection> • <sql:sqlxsi:type="SimpleValue">SELECT v.value FROM Patients p, Variables v WHERE p.ID="'<queryxsi:type="ContextValue">patientID</query>'" AND p.Variable="SET" AND v.ID IN (SELECT( p.ID || '_' || p.Variable) FROM Patients);</sql:sql> • </dataLoader>
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
CDS-DATOR • How to create mappings • Identify the data needed from the CDSS • Identify the corresponding data sources • Create the corresponding mapping entry • Connecting CDS-DATOR to CDSSs engines • Find the data module from the CDSS • Create a data wrapper (that implements the data loader interface) for the module • Create a wrapper for the engine to override the data queries
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
PROforma integration • The PROforma language • Models the clinical knowledge contained in a guideline as a set of tasks and data items • The PROforma engine • Enacts the computer interpretable guideline written in the PROformalanguage • The execution of the guideline can be automatic or step by step • When the guideline needs external data, the engine has to make a request through an enquiry
PROforma integration • PROformaguideline for COPD diagnosis plan
PROforma integration • Problems • The language is limited to the data sources defined internally • The engine requires data to be introduced manually • Solution • Extend the language to add more data sources • Tied to updates and changes in the language (not recommended) • Define an external wrapper independent of the language able to automatize the data collection
PROformaintegration • Definition of the engine wrapper • Task manager extension • Data petitions pass through the CDS-DATOR 1 n PFEngine Taskadapter PFEngine Wrapper CDS-DATOR listener 1 n
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
Curiam – Curiam BT • Curiam is a generic CDSS framework • Generic data and GUI components • Curiameases the inclusion of new predictive models using a generic classification framework[4] • CuriamBT[5,6] is a CDSS for brain tumor diagnosis based on the generic CuriamCDSS • The purpose for this case study is to provide Curiam BT access to the data stored in a generic relational database [4] - [C Sáez, JM García-Gómez, J Vicente, S Tortajada, J Luts, D Dupplaw, SV Huffel, M Robles. A generic and extensible automaticclassificationframeworkapplied to braintumour diagnosis in HealthAgents. TheKnowledgeEngineeringReview 26 (3), 283-301. 2011 ] [5] - [C Sáez, JM García-Gómez, J Vicente, S Tortajada, M Esparza, A Navarro, E Fuster, M Robles. Curiam BT, DecisionSupportSystemforBrainTumour Diagnosis. EuropeanSocietyforMagneticResonance in Medicine and Biology 2009 Congress, Antalya, Turkey, Info-RESO, 2009] [6] - [C Sáez, L Martí-Bonmatí, Á Alberich-Bayarri, M Robles, JM García-Gómez. Randomized pilot study and qualitative evaluation of a clinical decision support system for brain tumour diagnosis based on SV 1H MRS: Evaluation as an additional information procedure for novice radiologists. Computers in Biology and Medicine 45, 26-33. 2014]
Curiam case study • Data flow
Curiam integration Data wrapper that communicates with CDS-DATOR
Curiam case study • The data expected by Curiam BT is a raw signal • Data signals are stored as 512 points arrays in the generic database Patient Variables + CuriamBT Database tables
CDS-DATOR • SQL Loader • <dataLoaderxsi:type="sql:SQLLoader"> • <sql:connectionxsi:type="URL">jdbc:mysql://localhost/testDB“ </sql:connection> • <sql:sqlxsi:type="SimpleValue">SELECT v.value FROM Patients p, Variables v WHERE p.ID="'<queryxsi:type="ContextValue">patientID</query>'" AND p.Variable="SET" AND v.ID IN (SELECT( p.ID || '_' || p.Variable) FROM Patients);</sql:sql> • </dataLoader>
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
Data interoperability • Combining PROforma with linkEHR • The mediator doesn’t manage the data at a semantic level • A complete integration between data sources and CDSSs can be achieved combining CDS-DATOR with semantic systems • This mixed functionality was tested in a prototype for the determination of patient eligibility based on clinical data stored in a real-life EHR system[7] • The patient eligibility is determined by a CDSS developed in the PROformalanguage • The mediator provides a data layer that allowed the PROforma engine to access the XML documents generated by the semantic tool LinkEHR. [7][Mar Marcos, José A. Maldonado, Begoña Martínez-Salvador, Diego Boscá, Montserrat Robles. Interoperability of clinical decision-support systems and electronic health records using archetypes: A case study in clinical trial eligibility. Journal of Biomedical Informatics, 46(4):676-689, 2013]
Summary • Previous work • Data integration in CDSSs • CDS-DATOR • Methodology • Data loaders (Generic, Xpath, WebService, SQL) • Mapping definition • Case Studies • PROforma • CURIAM • Data Interoperability • Conclusions
Conclusions • CDS-Dator provides: • Separation between raw and semantic treatment of data • Separation between the CDSS encoding process and the mapping definition • Mappings for common data sources and easy extension to new ones • Data mediation or wrapping with any CDSS with minimal integration effort • Evaluated in three use cases • PROforma engine • Curiam CDSS • PROforma + linkEHR interoperability
Thank you for your attention! Questions?