Presentation is loading. Please wait.

Presentation is loading. Please wait.

XService, HL7 aECG, and AIME Tony Pan, Fusheng Wang, Justin Permar, Ashish Sharma, Tahsin Kurc, Joel Saltz.

Similar presentations


Presentation on theme: "XService, HL7 aECG, and AIME Tony Pan, Fusheng Wang, Justin Permar, Ashish Sharma, Tahsin Kurc, Joel Saltz."— Presentation transcript:

1 xService, HL7 aECG, and AIME Tony Pan, Fusheng Wang, Justin Permar, Ashish Sharma, Tahsin Kurc, Joel Saltz

2 Outline Motivation Design and Implementation Compare and Contrast to caCORE SDK Services HL7 aECG and AIME experience Future Directions and Conclusions 2

3 Motivation  XML, eXtensible Markup Language, is becoming the de facto standard data representation on the internet  Separates data from presentation - e.g. XML transformed to HTML via XSLT  Simplifies data exchange – hardware and software agnostic, self-describing  Customizable for different technology platforms – e.g. SOAP, XHTML, RSS  Customizable for different domains – e.g. BSML, MathML, HL7 v3  Commercial databases are increasingly providing support for XML data storage and management  Technology: Oracle XML DB, IBM DB2 PureXML, BerkeleyDB XML, eXist  Application Databases: SciPort, XNAT, TigerLogic XML Life Sciences Data Server, cgMDR  Increasing use of XML in biomedical applications increases need for data management and exchange in native XML format  Cardiovascular Research Grid (CVRG) HL7 annotated ECG data  Cancer Bioinformatics Grid (caBIG®) In Vivo Imaging Workspace Annotation and Image Markup (AIM) project Need caGrid-based data services that supports EXISTING XML schemas, EXISTING XML data, and/or EXISTING XML databases

4 caGrid Data Service Specification  caGrid is the caBIG® core middleware software  Service Oriented Architecture  Model Driven Architecture  caGrid Data Services  Inherits capabilities of caGrid service, including security, metadata management, SOAP messaging, WSDL description, etc  Extend caGrid service with  Domain Model metadata to specify data types (classes), attributes, association relationships between classes, and inheritances  A single operation, “query”, with CQL as input, and CQLQueryResults as output  CQL represents a Domain Model-conformant tree pattern to be matched when filtering results  CQLQueryResults contains XML representations of data instances, deserializable to language specific object representations (java beans,.NET classes)  Query operation is supported by a CQLQueryProcessor implementation which abstracts the backend database

5 xService – Project Objective “Need caGrid-based data services that supports EXISTING XML schemas, EXISTING XML data, and/or EXISTING XML databases” Objective: Design and Implement a caGrid Data Service Specification- compliant framework, xService, to support creation of XML schema- and database- backed caGrid services  Design needs to address the objective, and provide functionalities out- of-box  Components  XML database access layer with query, upload, update, and delete capabilities  XSD to caGrid Domain Model generator  XPathCQLQueryProcessor implementation to translate CQL to XPath and execute XML database queries  xService creation wizard plug-in for caGrid Introduce

6 XML Database Access Layer  xService interacts with the XML database through XML Database Access Layer API and passes data back to client via caGrid  XML databases do not have standardized query API analogous to JDBC and ODBC  Query language is typically XPath or Xquery  Varying support for transactions, concurrency, and lazy retrieval  Abstraction API for XML databases  Provides query, upload, update, and delete operations  Supports lazy retrieval  Supports transactions and concurrent access, where possible  Leverages XML element and attribute indexes where possible  Avoid serialization/deserialization where possible  Currently supports IBM DB2 pureXML, Berkeley DB XML, and eXist

7 caGrid Domain Model Generation  Domain Model Generation is performed at service creation time by xService Introduce plugin  Differentiates between caCORE SDK generated XSD (e.g. from XMI import in Introduce), and all other XSDs  caCORE SDK generated XSD maps to ca/gridDomain Model specifically  Need to ensure consistency of Domain Model among services  Generation process parses XSD input, and creates  Domain Model  Domain Model class to XML element QName mappings  Domain model and class-to- QName mappings are used during CQL query processing Domain Model XSD

8 xService Query Processing  XPath  XML Databases supports XPath 1.0 as the lowest common denominator query language  XPath is more expressive than CQL - sufficient to translate CQL to Xpath  CQL vs Xpath  CQL is based on class hierarchy in Domain Model  XPath is a document instance traversal language  Need mapping from classes to xml elements (instances)  CQL to XPath Translation  Look up class associations and inheritance relationships from Domain Model  Use association’s source, destination, and role name from CQL, to select XML element QNames  Aggregate XML QNames into XPath  XPathCQLQueryProcessor  Translate from CQL to XPath  Database is queried using XPath  XML results are returned to client directly  Avoid serialization and deserialization

9 CQL to XPath Translation Examples declare namespace ns0='gme://caCORE.ca CORE/3.2/edu.northwe stern.radiology.AIM'; /ns0:ImageAnnotation [ns0:textAnnotationColle ction /ns0:TextAnnotation]

10 xService Introduce Plugin  caGrid Introduce  User friendly interface for service creation  Supports extension through Data Service Style  xService Style  Integrated wizard guides user through service creation  Generates caGrid Domain Model  Populates service with implementation for XML Database Access and query processing  Query processing logic includes CQL to XPath translation, and optimized results handling for high performance retreival  Input is XML schema and XML database configuration, output is fully functional caGrid xService Data Service

11 11

12 xService Current Status xService 1.0 supports caGrid 1.2 Berkeley DB XML xService 1.2 beta supports caGrid version 1.2.0.1 (requires caGrid Transfer patch) Berkeley DB XML, IBM DB2 pureXML, eXist xService 1.3 beta supports caGrid version 1.3 and 1.3.0.1 Berkeley DB XML, IBM DB2 pureXML, eXist All versions support Service Operations: Upload, Query, including caGrid Transfer version of the operations. 12

13 caCORE SDK Comparison 13 xServicecaCORE SDK Service Supported Data Model Representations XMI or XSDXMI/UML Database TypeXMLRDBMS Database-model Mappingnot neededrequired Data OrganizationCollection, Documents, Elements Database, Tables, Records Mapping, Serialization, and Deserialization XML-in, XML-outORM and XML de/serialization Support for “Upload”YesNo Query using caGrid TransferYesNo Fine Grain AuthorizationPlannedCSM Populate Associated ObjectsYes (XML needs to validate against XSD) No (CQL 2.0 will require this functionality) Semantic AnnotationPlannedYes

14 CVRG HL7 annotated ECG Service CVRG HL7 aECG Data Service is developed using xService Use case motivated development of xService functionalities Ability to use existing, standard XML Schema (HL7 v3 aECG xsd) Support for data upload Support for large data query and retrieve via caGrid Transfer, where large ECG data posed challenges for SOAP messaging Optimized data flow between database and client, with minimal serialization/deserialization and lazy instantiation A number of other CVRG data services have been created using xService Framework CVRG HL7 aECG data service has been integrated into ECG analytical workflow 14

15 AIM Data Service (AIME) AIME is a caGrid data service for managing documents in the caBIG In Vivo Imaging Annotation and Image Markup (AIM) xml representation format. Characteristics of AIM documents Each XML document is an atomic unit Annotation, markup, and other data elements requires context of the document to preserve meaning Documents are generated and updated frequently AIME was created using xService framework Leverages xService’s ability to fully populate associated objects when querying to retrieve full AIM documents Allows easy data upload via xService caGrid service interface Leverages document-centric organization to maintain fidelity of original data submissions

16 AIME in TCGA Enterprise Use Case AIME client API is used by the three TCGA Radiology Annotation Workstations Successfully queried and displayed annotations and referenced images Successfully submitted new annotation and markup documents Next Steps caB2B and AIME require additional enhancements to support federated query of non-caCORE SDK data services from caB2B CQL to XPath translation needs to be enhanced to support interpreting XML element containment as bidirectional associations instead of unidirectional associations. xService needs mechanisms to enforce uniqueness of documents in AIME, during submission of AIM documents 16

17 xService Future Directions xService CQLQueryProcessor behavior With consideration to the objectives of the xService project, harmonize the behavior of the xService CQLQueryProcessor with the data service “query” operation contract Improved mapping of bidirectional association to XML element relationships Investigation of the use of XQuery instead of XPath xService data management Configurable policies for handling with duplicate documents Update and Delete capabilities Fine grain authorization support Semantic annotation of XML schemas and generated domain models

18 Summary “Need caGrid-based data services that supports EXISTING XML schemas, EXISTING XML data, and/or EXISTING XML databases”  Designed and Implemented a caGrid Data Service Specification- compliant framework, xService, to support creation of XML schema- and database- backed caGrid services  The service creation user interface integrates with caGrid Introduce to enable rapid creation of caGrid Data Services from xml schemas or XMI models.  xService based caGrid Data Services have successfully been deployed and used  CVRG HL7 annotated ECG Data Service  In Vivo Imaging AIME Service for TCGA Radiology Enterprise Use Case

19 For More Information… xService caGrid Community Project http://cagrid.org/display/xmldataservices/Home Wiki and Project documentation https://web.cci.emory.edu/confluence/display/xmlds/ AIME https://web.cci.emory.edu/confluence/display/IVI/AIMDataService


Download ppt "XService, HL7 aECG, and AIME Tony Pan, Fusheng Wang, Justin Permar, Ashish Sharma, Tahsin Kurc, Joel Saltz."

Similar presentations


Ads by Google