integrating complementary tools with popmednet tm 27 july 2015 rich schaaf [email protected]
TRANSCRIPT
![Page 2: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/2.jpg)
IntroductionCommonwealth Informatics Implements and supports innovative systems for
medical product safety and public health surveillance
Mix of academic, government, and commercial projects
Deep experience with data from Healthcare records (both EMR and claims) Single case adverse event reports (ICSRs) and product
complaints Clinical trials data sets
Slide 2
![Page 3: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/3.jpg)
Commonwealth Informatics
Participates in Mini-Sentinel as a subcontractor to the Mini-Sentinel Operations Center (MSOC)
Responsible for developing and enhancing several of the MSOC’s software applications Code Lookup Tool Medical Code Management Algorithm Lookup Tool Task Order Matrix
Slide 3
![Page 4: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/4.jpg)
Code Lookup Tool (CLT) Browse different types
of hierarchically organized medical terminology data (drug/event/procedure codes) for the Mini-Sentinel project
Allows users to group codes into multiple sets in order to identify therapies, diagnoses, procedures, etc. for use in studies
Slide 4
![Page 5: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/5.jpg)
Medical Code Management (MCM)
Maintain a versioned and timestamped repository of medical terminologies for use by: Code Lookup Tool MSOC SAS
programmer community
PopMedNet Query Tool
Slide 5
![Page 6: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/6.jpg)
Algorithm Lookup Tool (ALT)
Provide a searchable catalog of algorithm definitions used to define outcomes, cohorts, confounders, therapies, etc.
Slide 6
![Page 7: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/7.jpg)
Task Order Matrix (TOM)
Keep track of Mini-Sentinel task orders along with their associated activities and subactivities
Slide 7
![Page 8: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/8.jpg)
Application Integration
Slide 8
![Page 9: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/9.jpg)
Motivation for improved integration
The Mini-Sentinel Distributed Query Tool is based on the PopMedNetTM software application
Several complementary software applications support the activities of the MSOC
MSOC processes and workflows can be improved through better integration among the set of applications in the Mini-Sentinel “ecosystem”
The current version of PopMedNet enables integration by providing APIs that allow access to a rich set of services
Slide 9
![Page 10: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/10.jpg)
PopMedNet API
Allows programmatic access to an extensive set of PopMedNet resources
Entirely REST based Follows the OData (Open Data Protocol)
standard that defines the best practices for building and consuming RESTful APIs
http://www.odata.org
Slide 10
![Page 11: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/11.jpg)
What is REST? REST stands for Representational State Transfer. It relies on a stateless, client-
server, cacheable communications protocol -- and in virtually all cases, the HTTP protocol is used.
REST is an architecture style for designing networked applications. The idea is that, rather than using complex mechanisms such as CORBA, RPC or SOAP to connect between machines, simple HTTP is used to make calls between machines..
RESTful applications use HTTP requests to post data (create and/or update), read data (e.g., make queries), and delete data. Thus, REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operations.
REST is a lightweight alternative to mechanisms like RPC (Remote Procedure Calls) and Web Services (SOAP, WSDL, et al.)
Despite being simple, REST is fully-featured; there's basically nothing you can do in Web Services that can't be done with a RESTful architecture.
http://rest.elkstein.org/2008/02/what-is-rest.html
Slide 11
![Page 12: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/12.jpg)
Example: Retrieve information for all “active” Mini-Sentinel requests Goal
Facilitate associating sets of codes produced in the Code Lookup Tool (CLT) with the corresponding Mini-Sentinel request
Enhance the CLT application to query PopMedNet to determine the set of “active” (not yet finalized) requests
Implementation steps Determine the relevant API endpoint Formulate the API request Integrate the API request into the application
Slide 12
![Page 13: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/13.jpg)
PopMedNet API documentation
Extensive API documentation is available within PopMedNet
Slide 13
![Page 14: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/14.jpg)
Determine the relevant API endpoint
Active requests are retrieved using the “requests/list” endpoint
Use the API documentation to determine the fields that are available for requests
Slide 14
![Page 15: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/15.jpg)
Formulate the API requestThe API request identifies the: API endpoint Fields of interest Filtered set of rows to return Sort order for the returned results
For this example the client application needs the: ID, Identifier, Name, Description, Status and StatusText fields Where Status = 250 Sorted by Identifier From the https://qa4api.lincolnpeak.com/requests/list endpoint
The corresponding URI is:https://qa4api.lincolnpeak.com/requests/list ?$select=ID,Identifier,Name,Description,Status,StatusText &$filter=Status%20eq%20Lpp.Dns.DTO.Enums.RequestStatuses'250‘ &$orderby=Identifier
Note: Spaces in the URI need to be replaced with a URL encoded equivalent (“%20” or “+”)
Slide 15
![Page 16: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/16.jpg)
Integrate the API request into the application
Example implementation in Java
Slide 16
• initClient()Initialize the REST client object
• getActiveRequests()Obtain the list of active PopMedNet requests
• printRequestsFromJSON()Extract the request information from the JSON returned by the API request
This example uses the Apache Wink REST framework
![Page 17: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/17.jpg)
initClient(user, password)
Slide 17
![Page 18: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/18.jpg)
getActiveRequests(client, baseURI)
Slide 18
![Page 19: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/19.jpg)
printRequestsFromJSON(json)
Slide 19
![Page 20: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/20.jpg)
Output from the RestClientDemo
Slide 20
![Page 21: Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf rschaaf@commoninf.com](https://reader036.vdocuments.us/reader036/viewer/2022062716/56649dc35503460f94ab5472/html5/thumbnails/21.jpg)
Questions / Discussion
Slide 21