ARCHITECTURE OVERVIEW

Slides:



Advertisements
Similar presentations
Attie Naude 14 May 2013 Windows Azure Mobile Services.
Advertisements

SHARP Area 3: SMART (Substitutable Medical Apps) Josh C. Mandel, MD Lead Architect, SMART (
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
For more notes and topics visit:
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
INFO415 An overview of systems development
Selenium automated testing in Openbravo ERP Quality Assurance Webinar April 8th, 2010.
RECALL THE MAIN COMPONENTS OF KIM Functional User Interfaces We just looked at these Reference Implementation We will talk about these later Service Interface.
XML Registries Source: Java TM API for XML Registries Specification.
Java Portals and Portlets Submitted By: Rashi Chopra CIS 764 Fall 2007 Rashi Chopra.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
Recuperação de Informação B Cap. 10: User Interfaces and Visualization , , 10.9 November 29, 1999.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Claims-Based Identity Solution Architect Briefing zoli.herczeg.ro Taken from David Chappel’s work at TechEd Berlin 2009.
14 1 Chapter 14 Web Database Development Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Live. learn. work. play Superior Avenue Suite 310 Cleveland Ohio Tel: Fax:
Design Concepts ch-8
Multi-Device UI Development for Task-Continuous Cross-Channel Web Applications Enes Yigitbas, Thomas Kern, Patrick Urban, Stefan Sauer
J2EE Platform Overview (Application Architecture)
Ramping Up On The SharePoint Framework (SPFx)
Progress Apama Fundamentals
Architecture Brief Pepper
Component and Deployment Diagrams
Chapter 5 System modeling
Netscape Application Server
SMART Architecture and Application Development Overview
Daniel Haas Harvard Medical School
WEB SERVICES.
Outline Introduction Standards Project General Idea
Data Virtualization Tutorial… OAuth Example using Google Sheets
EPH emergency pharmacy finder
DCR ARB Presentation Team 5: Tour Conductor.
Distributed web based systems
Application with Cross-Platform GUI
Enterprise Application Architecture
New Mexico State University
SharePoint Cloud hosted Apps
ADO.NET Entity Framework Marcus Tillett
An open source web application for real-time display of pending orders
Lecture 1: Multi-tier Architecture Overview
ARCH-1: Application Architecture made Simple
SMArt Developers’ Meeting
$, $$, $$$ API testing Edition
Testing RESTful Web APIs
An Introduction to Software Architecture
SharePoint Online Authentication Patterns
Harvard Medical School
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Flux your app via Redux Quick introduction of state management in JavaScript apps using Redux.
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
SMART on FHIR for managed authorised access to medical records
TechEd /22/2019 9:22 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Database Connectivity and Web Development
Visual Modeling Using Rational Rose
Introduction to Web Application Design
RESTful Web Services.
AIMS Equipment & Automation monitoring solution
K2 blackpoint Fundamentals
Salesforce.com Salesforce.com is the world leader in on-demand customer relationship management (CRM) services Manages sales, marketing, customer service,
Western Mass Microsoft Technology Users Group
Web Application Development Using PHP
From Use Cases to Implementation
Presentation transcript:

ARCHITECTURE OVERVIEW I’d like to take you on a brief tour of the architecture of SMART. First, let’s establish a common vocabulary, so that we can have a base for understanding the main components of SMART. ARCHITECTURE OVERVIEW

Vocabulary Apps API Containers The first component of the SMART universe is the ecosystem of SMART apps created by various software developers eager to bring solutions in the hands of clinicians and patients. The apps could include a medication manager, a diabetes evaluation suite, or perhaps a lab results visualizer. These meaningful apps could be distributed via an app store.   Then we have the containers which play the role of data providers in the SMART world. The containers could be personally controlled health records systems, electronic medical records systems, health data exchanges, or other providers. Either way a container is responsible for exposing the SMART API to the apps and providing a context in which the apps could run. Finally, we have the interface which enables the apps and containers to talk to each other – the SMART application programming interface (or API). The API is what keeps the apps and the containers decoupled from each other allowing the users to mix and match. Also, the API enables the substitutability of the SMART apps and containers. From the perspective of an app the containers are substitutable, because they all expose the same interface and the app can run on any one of them. Also from the perspective of the container, the apps are substitutable. The container administrator is free to pick the apps that he needs. And when a better app comes along, he can replace the existing app with the new one. The last point that I want to make here is that in order to keep things simple, an app runs against one container at a time. The container, however, is free to connect to multiple data sources and aggregate data as needed. API Containers

SMART Components Now let’s take a look at the SMART architecture components. At the bottom of the diagram we have the frond end of the container and the smart application within a web browser window. The container and the app might also have back end server components. For the container the back end component might be an EMR system housing a large collection of medical records. The app could have a back end that helps with elaborate visualizations, data mashing, or other complex computations.   On front end components use an interface called SMART Connect to communicate with each other right inside the browser environment. Using it the app can get patient context from the container and execute API calls. The back end components can also talk to each other. And for that they use an interface called SMART REST. Should an app choose to use the SMART REST interface, it simply has to obtain an authentication token from the container using SMART Connect, and pass it to the back end component, which can then use it to issue SMART REST calls to the container’s back end. So, there we have it. Front end, back end, SMART connect, and SMART REST. One thing that I’d like to point out is that the SMART API has been inspired by successful web APIs that support applications, such as Facebook , OpenSocial, and Google. What makes all of these APIs successful is that they are based on web standards such as HTTP, HTML, JavaScript, and REST. These standards allow the apps to run on separate severs against different implementation stacks.

Apps need UI Standards-based integration, flexibility Authentication In-browser, server-to-server Data Context, Medical Record Elements Now, let’s look at the elements that an app needs in order to provide a meaningful service to the end user. First, the app needs a flexible, standards-based UI that enables the user to interact with it. Next, the app needs to have an authentication mechanism with the container to establish thrust. And last but not least, the app needs data in order to work with. The data includes patient and provide context information, as well as medical record elements such as medications and lab results. We will look at each one of these components in more details.

Container UI This diagram illustrates the container’s UI component in a browser window. The white portion of the screen is the UI that the container provides, which allow the user for instance to choose a patient and launch various SMART applications on his data. The main portion of the screen real estate is taken by the SMART app. The app is launched by the container in an IFRAME. An IFRAME is an in-browser mechanism that enables multiple web pages to open up on the same screen. When launched the app establishes a channel to the container using the SMART connect JavaScript library. It can then issue SMART API calls such as GET MEDICATINS in order to obtain data from the container. Finally, the app displays the data to the user and allows him to interact with it.

Authentication Each container implements a consistent mechanism for delegating access: OAuth. The app only needs to speak OAuth. The next architectural piece is the authentication mechanism. Different EMR systems have their own authentication schemas. In order to keep the app agnostic to them, it is the container’s responsibility to provide a standard way for establishing trust. And for that SMART uses oAuth, which is an open web standard for authentication. Thus the app does not have to deal with the underlying system’s permissions schema. All it needs is to speak OAuth. The container uses his internal logic to decide what the app can see and what is forbidden.

SMART data 80/20 approach concentrate on common outpatient data Consistent coding systems Medications: RxNorm (SCD, SBD, Packs) Problems: SNOMED CT Labs: LOINC Extensible representations in RDF The last component of the architecture is the medical data. And for that SMART takes what we call an “80/20” approach. What this means is that we try to pick the 20% of the fields out there that represent 80% of the data about the patients. This selectivity of SMART is one thing that makes writing SMART apps relatively easy. Also, SMART uses consistent best-of-the-breed coding systems for representing medical facts within the SMART data models. For example for medications we use RXNORM, for problems we use SNOMED, and labs are based on LOINC. The SMART data payloads are expressed in RDF and are extensible.

Architecture Summary SMART Containers supply Apps with UI integration Authenticated API Access Data Containers shoulder significant responsibility! Data models are critical to enable app developers Keeping developer experience in mind Data need to be predictable, (relatively) simple