SlideShare a Scribd company logo
1 of 42
Sponsored & Brought to you by
Azure DocumentDB for
Healthcare Integration
Howard Edidin
https://twitter.com/hsedidin
http://www.linkedin.com/in/hedidin
Azure DocumentDB for Healthcare Integration
Howard S. Edidin
Microsoft Partner Technical Specialist (BizTalk, Azure) for Healthcare
Gold Member
About the series
• Currently there is no direct support for HL7 in Azure
• Using DocumentDB as the foundation, we will overcome this issue
3
INTRODUCTION TO DOCUMENTDB
Azure DocumentDB for Healthcare Integration – Part 1
4
Azure DocumentDB for Healthcare
Integration
• Azure DocumentDB, features and capabilities
• Creating a DocumentDB database
• CRUD operations
• API’s
– REST
– SQL Query Language
– Server-side JavaScript
• Leveraging DocumentDB as a HL7 document repository
• Preview API and Logic Apps
5
AZURE DOCUMENTDB, FEATURES AND CAPABILITIES
Azure DocumentDB for Healthcare Integration – Part 1
6
DocumentDB
• DocumentDB is unique among NoSQL stores
– It was developed and delivered as a service
– It’s truly schema-free, queryable and JSON aware
– Offers transactional processing through language integrated JavaScript
– Predictable performance and tunable consistency
7
Resource Model
8
Access Model
• RESTful interaction over HTTP
• Standard HTTP verbs & semantics
• Can utilize BizTalk as a client
• Built-in support for TCP for smart clients
• Designed for Gateway as well as Direct Connectivity options
POST
Item
resource TenantFeed
URI
PUT
Item
resource
Item
URI
DELETE
Item
URI
GET
PATCH
TenantFeed Or Item
URI
Item URI
Create a new resource
/Execute a sprocs/trigger/query
Replace an existing resource
Delete an existing resource
Read/Query an existing
resource
*Selectively Edit an existing resource
Item
resource
POST http://myaccount.documents.azure.net/dbs
{ "name":"My Company Db"}
...
[201 Created]
{
"name": "My Company Db",
"id": "UoEi5w==",
"self": "dbs/UoEi5w==/",
"colls": "colls/",
"users": "users/"
}
9
JSON Documents
JavaScript Object Literals
JSON serializable
values (aka JSON
Infoset)
Why JSON?
Ubiquitous
Schema-free and yet queryable
Minimal impedance mismatch
Committed to JSON & JavaScript
Automatic indexing of documents without requiring schema or secondary indices
SQL query dialect rooted in JSON; extensible via JavaScript
Efficient execution of application logic with (JavaScript) language integrated database transactions
Minimal impedance mismatch between the programming languages and the database type systems
10
Data partitioned into collections
10GB
zz
RU/s
$z per
hour
10GB
yy
RU/s
$y per
hour
10GB
xx
RU/s
$x per hour
• Collections can be added and removed from
databases
• Each collection has reserved storage (10 GB)
and throughput
• Scale horizontally across multiple collections
• Collections can be configured with different
throughput levels
POST
Item
resource TenantFeed
URI
Create a new resource
/Execute a sprocs/trigger/query
11
Indexing
How it works
• Automatic indexing of documents
• JSON documents are represented as
trees
• Structural information and instance
values are normalized into a JSON-
Path
• Fixed upper bound on index size
(typically 5-10% in real production
data)
Example
{"headquarters": "Belgium"}  /"headquarters"/"Belgium"
{"exports": [{"city": “Moscow"}, {"city": Athens"}]}  /"exports"/0/"city"/"Moscow"
and /"exports"/1/"city"/"Athens".
12
CREATING A DOCUMENTDB DATABASE
Azure DocumentDB for Healthcare Integration – Part 1
13
DocumentDB app
• We are NOT designing a DocumentDB application
– We won’t need to Model data as JSON
– List common access patterns – top 5-10 queries, sprocs, and CRUD
– Review indexing policy and query
– Decide partitioning scheme
14
DEMO - CREATING A DOCUMENTDB DATABASE
Azure DocumentDB for Healthcare Integration – Part 1
15
DocumentDB Database
A DocumentDB database is a logical container of one or more
collections and users, as shown in the following diagram. You can
create any number of databases under a DocumentDB database
account subject to offer limits.
16
REST
• The DocumentDB REST API supports the following:
– Access control to resources.
– Query functionality for resources.
– Basic CRUD operations for resources.
17
Access control on resources
• Access to DocumentDB resources is governed by a master key token
or a resource token. To access a resource, the selected token is
included in the REST authorization header, as part of the
authorization string.
18
Query functionality for resources
• All DocumentDB resources except account resources, can be queried
using DocumentDB SQL language.
• To perform a SQL query on a resource, do the following:
– Execute a POST method against a resource path using JSON with the "query"
property set to the SQL query string, and the "parameters" property set to the
array of optional parameter values.
– Set the x-ms-documentdb-isquery header to true.
– Set the Content-Type header to application/query+json.
POST https://contosomarketing.documents.azure.com/dbs/XP0mAA==/colls/XP0mAJ3H-AA=/docs HTTP/1.1
x-ms-documentdb-isquery: True
x-ms-date: Mon, 18 Apr 2015 13:05:49 GMT
authorization:
type%3dmaster%26ver%3d1.0%26sig%3dkOU%2bBn2vkvIlHypfE8AA5fulpn8zKjLwdrxBqyg0YGQ%3d
x-ms-version: 2015-04-08
Accept: application/json
Content-Type: application/query+json
Host: contosomarketing.documents.azure.com
Content-Length: 50
{
query: "SELECT * FROM root WHERE (root.Author.id = 'Don')",
parameters: []
}
19
CRUD OPERATIONS
Azure DocumentDB for Healthcare Integration – Part 1
20
CRUD Operations
• The DocumentDB API supports basic CRUD operations on the
resources under a database account
– The document resource is represented by docs in the DocumentDB resource
model
• A document consists of user-defined content in JSON format
• Aside from the required id property, users can define any arbitrary elements, structures,
and hierarchies for the content. The id element is a unique string that is user-settable and
must not exceed 255 characters
• By default, documents are automatically indexed, thus making a document queryable as
soon as it is created
• Attachments can also be linked to a document
21
Create a document
• A new document can be created by executing an HTTPS POST
request against the docs URI resource path.
Request Syntax:
Method Request URI HTTP Version
POST https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs HTTP/1.1
Note that the {databaseaccount} is the name of the DocumentDB account created under your
subscription. The {_rid-db} value is the resource ID of the database. The {_rid-col} value is the resource
ID of the collection that contains the document.
22
Get a document
• Performing a GET operation on a specific document resource
retrieves the user defined JSON elements and system properties of
the document.
Request Syntax:
Method Request URI HTTP
Version
GET https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs/{_rid-doc} HTTP/1.1
Note that the {databaseaccount} is the name of the DocumentDB account created under your
subscription. The {_rid-db} value is the resource ID of the database. The {_rid-col} value is the resource
ID of the collection that contains the document.
23
Replace a document
• Performing a PUT operation on a specific document resource replaces the entire
document resource. All user settable properties, including the id, and the user
defined JSON elements must be submitted in the body to perform the
replacement. Any element omissions result in unintended data loss as this
operation is a full replace operation. The x-ms-indexing-directive header can be
set and submitted for the operation to include or exclude the document from being
indexed.
Request Syntax:
Method Request URI HTTP
Version
PUT https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs/{_rid-doc} HTTP/1.1
24
Delete a document
• Performing a DELETE operation on a specific document resource deletes the
document resource from the collection.
Method Request URI HTTP
Version
DELETE https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs/{_rid-doc} HTTP/1.1
Request Syntax:
25
OTHER OPERATIONS
Azure DocumentDB for Healthcare Integration – Part 1
26
Other operations
• Operations on DocumentDB Document Collections
– Create a collection
– List collections
– Get a collection
– Delete a collection
• Operations on DocumentDB Attachments
– Create an Attachment
– Replace an attachment
– List attachments
– Delete attachments
27
Other operations
• Operations on Stored Procedures
– Create a stored procedure
– Replace a stored procedure
– List stored procedures
– Delete a stored procedure
– Query stored procedures
– Execute a stored procedure
28
Other operations
• Operations on User Defined Functions
– Create a UDF
– Replace a UDF
– List UDFs
– Delete a UDF
– Query UDFs
• Operations on Triggers
– Create a trigger
– Replace a trigger
– List triggers
– Delete a trigger
– Query triggers
29
Other operations
• Operations on DocumentDB Databases
– Create a Database
– List Databases
– Get a Database
– Delete a Database
• Querying DocumentDB Resources
– All DocumentDB resources except account resources can be queried using
DocumentDB SQL language.
30
DocumentDB Resource URI Syntax
for REST
Resources Base URI
Database https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}
User https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/users/{_rid-user}
Permission https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/users/{_rid-user}/permissions/{_rid-perm}
Collection https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}
Stored Procedure https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/sprocs/{_rid-sproc}
Trigger https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/triggers/{_rid-trigger}
UDF https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/udfs/{_rid-udf}
Document https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/docs/{_rid-doc}
Attachment https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/docs/{_rid-
doc/attachments/{_rid-attch}
31
DOCUMENTDB SQL QUERY LANGUAGE
Azure DocumentDB for Healthcare Integration – Part 1
32
SQL Query
• Azure DocumentDB supports querying of documents using a familiar
SQL (Structured Query Language) like grammar over hierarchical
JSON documents without requiring explicit schema or creation of
secondary indexes
33
SQL Query
techreadytv.com
Query Playground
34
LEVERAGING DOCUMENTDB AS A HL7
DOCUMENT REPOSITORY
Azure DocumentDB for Healthcare Integration – Part 1
35
HL7 Document Repository
Integrating HL7 newest standard
Azure on FHIR©
36
HL7 Document Repository
Using DocumentDB as a FHIR© document repository
• Possible Use Cases
– Personal Health Record (PHR)
• In the PHR scenario, an Electronic Medical Record system (EMR, though many other
names and acronyms are also used) provides a RESTful API that allows patients to access
their own medical record via a common web portal or mobile application.
– Document Sharing (XDS)
• One common way to integrate healthcare information from a variety of sources is to build a
repository of documents around a patient record. Building a repository of documents allows
for less stringent alignment around policy, procedures and record-keeping/informatics
standards.
37
HL7 Document Repository
– Decision Support
• One common use of healthcare information systems is to integrate some
form of decision support software into clinical systems.
– Common uses of clinical decision support are:
» Drug-drug interaction checking, and more generally, prescription safety checks
» Suggesting commonly missed diagnostic data interpretations (including delta
checking)
» Patient surveillance for early warning of deteriorating patient health (both acute and
ambulatory care)
» Identifying candidates for alternative treatment plans for improved efficacy
38
HL7 Document Repository
– Patient Demographics Query for Mobile (PDQm)
• The Patient Demographics Query for Mobile (PDQm) Profile defines a lightweight RESTful
interface to a patient demographics supplier leveraging technologies readily available to
mobile applications and lightweight browser based applications.
• The functionality is identical to the PDQ Profile
• The differences are transport and messaging format of messages and queries. The profile
leverages HTTP transport, and the JavaScript Object Notation (JSON), Simple-XML, and
Representational State Transfer (REST). The payload format is defined by the HL7 Fast
Health Interoperable Resources (FHIR) draft standard.
– Web based EHR/EMR applications which wish to provide dynamic updates of patient
demographic information such as a non-postback search, additional demographic detail, etc.
– A health portal securely exposing demographics data to browser based plugins
39
PREVIEWING API AND LOGIC APPS
Azure DocumentDB for Healthcare Integration – Part 1
40
Previewing API and Logic Apps
Azure DocumentDB for Healthcare Integration – Part 2
– Design and development of an Azure API Connector app for DocumentDB
– Designing a Logic App for HL7 FHIR©
41
Azure DocumentDB for Healthcare Integration
42
Howard S. Edidin MCTS, MCP, Author, Trainer, TechNet Wiki Ninja
Microsoft Partner Application Integration
|HL7|HIPAA
Microsoft Virtual Technical Specialist (BizTalk, Azure) for Healthcare
hedidin@edidingroup.net

More Related Content

What's hot

Data persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdbData persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdbDimgba Kalu
 
What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!MongoDB
 
Azure doc db (slideshare)
Azure doc db (slideshare)Azure doc db (slideshare)
Azure doc db (slideshare)David Green
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...NoSQLmatters
 
CouchDB : More Couch
CouchDB : More CouchCouchDB : More Couch
CouchDB : More Couchdelagoya
 
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...MongoDB
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP SystemMongoDB
 
MongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016
LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016
LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016Carl Steinbach
 
Webinar: Enterprise Trends for Database-as-a-Service
Webinar: Enterprise Trends for Database-as-a-ServiceWebinar: Enterprise Trends for Database-as-a-Service
Webinar: Enterprise Trends for Database-as-a-ServiceMongoDB
 
Schema Agnostic Indexing with Azure DocumentDB
Schema Agnostic Indexing with Azure DocumentDBSchema Agnostic Indexing with Azure DocumentDB
Schema Agnostic Indexing with Azure DocumentDBDharma Shukla
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBMongoDB
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkMongoDB
 
DocumentDB - NoSQL on Cloud at Reboot2015
DocumentDB - NoSQL on Cloud at Reboot2015DocumentDB - NoSQL on Cloud at Reboot2015
DocumentDB - NoSQL on Cloud at Reboot2015Vidyasagar Machupalli
 
Engineering practices in big data storage and processing
Engineering practices in big data storage and processingEngineering practices in big data storage and processing
Engineering practices in big data storage and processingSchubert Zhang
 

What's hot (20)

Data persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdbData persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdb
 
What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!
 
Azure doc db (slideshare)
Azure doc db (slideshare)Azure doc db (slideshare)
Azure doc db (slideshare)
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
 
CouchDB : More Couch
CouchDB : More CouchCouchDB : More Couch
CouchDB : More Couch
 
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
MongoDB .local Munich 2019: Mastering MongoDB on Kubernetes – MongoDB Enterpr...
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP System
 
Azure datafactory
Azure datafactoryAzure datafactory
Azure datafactory
 
MongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Chicago 2019: MongoDB Atlas Data Lake Technical Deep Dive
 
LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016
LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016
LinkedIn's Logical Data Access Layer for Hadoop -- Strata London 2016
 
NoSQL for SQL Users
NoSQL for SQL UsersNoSQL for SQL Users
NoSQL for SQL Users
 
Webinar: Enterprise Trends for Database-as-a-Service
Webinar: Enterprise Trends for Database-as-a-ServiceWebinar: Enterprise Trends for Database-as-a-Service
Webinar: Enterprise Trends for Database-as-a-Service
 
Spark and MongoDB
Spark and MongoDBSpark and MongoDB
Spark and MongoDB
 
Schema Agnostic Indexing with Azure DocumentDB
Schema Agnostic Indexing with Azure DocumentDBSchema Agnostic Indexing with Azure DocumentDB
Schema Agnostic Indexing with Azure DocumentDB
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDB
 
AzureDocumentDB
AzureDocumentDBAzureDocumentDB
AzureDocumentDB
 
Blazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & SparkBlazing Fast Analytics with MongoDB & Spark
Blazing Fast Analytics with MongoDB & Spark
 
DocumentDB - NoSQL on Cloud at Reboot2015
DocumentDB - NoSQL on Cloud at Reboot2015DocumentDB - NoSQL on Cloud at Reboot2015
DocumentDB - NoSQL on Cloud at Reboot2015
 
Mongo db 3.4 Overview
Mongo db 3.4 OverviewMongo db 3.4 Overview
Mongo db 3.4 Overview
 
Engineering practices in big data storage and processing
Engineering practices in big data storage and processingEngineering practices in big data storage and processing
Engineering practices in big data storage and processing
 

Similar to Azure DocumentDB for Healthcare Integration Overview

TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep DiveTechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep DiveIntergen
 
Azure document db/Cosmos DB
Azure document db/Cosmos DBAzure document db/Cosmos DB
Azure document db/Cosmos DBMohit Chhabra
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDBRadenko Zec
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platformgiventocode
 
Qubole - Big data in cloud
Qubole - Big data in cloudQubole - Big data in cloud
Qubole - Big data in cloudDmitry Tolpeko
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB James Serra
 
Azure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data LakeAzure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data LakeRick van den Bosch
 
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...Michael Rys
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011Shreedhar Ganapathy
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarRTTS
 
Accesso ai dati con Azure Data Platform
Accesso ai dati con Azure Data PlatformAccesso ai dati con Azure Data Platform
Accesso ai dati con Azure Data PlatformLuca Di Fino
 
CRM UG Belux March 2017 - Power BI and Dynamics 365
CRM UG Belux March 2017 - Power BI and Dynamics 365CRM UG Belux March 2017 - Power BI and Dynamics 365
CRM UG Belux March 2017 - Power BI and Dynamics 365Joris Poelmans
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101Ike Ellis
 
Oracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra PasalapudiOracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra Pasalapudipasalapudi123
 
Scalable relational database with SQL Azure
Scalable relational database with SQL AzureScalable relational database with SQL Azure
Scalable relational database with SQL AzureShy Engelberg
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIGert Drapers
 

Similar to Azure DocumentDB for Healthcare Integration Overview (20)

TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep DiveTechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
 
Azure document db/Cosmos DB
Azure document db/Cosmos DBAzure document db/Cosmos DB
Azure document db/Cosmos DB
 
Azure CosmosDB
Azure CosmosDBAzure CosmosDB
Azure CosmosDB
 
Document db
Document dbDocument db
Document db
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platform
 
Qubole - Big data in cloud
Qubole - Big data in cloudQubole - Big data in cloud
Qubole - Big data in cloud
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB
 
Azure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data LakeAzure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data Lake
 
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011
 
Azure cosmosdb
Azure cosmosdbAzure cosmosdb
Azure cosmosdb
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing Webinar
 
Accesso ai dati con Azure Data Platform
Accesso ai dati con Azure Data PlatformAccesso ai dati con Azure Data Platform
Accesso ai dati con Azure Data Platform
 
CRM UG Belux March 2017 - Power BI and Dynamics 365
CRM UG Belux March 2017 - Power BI and Dynamics 365CRM UG Belux March 2017 - Power BI and Dynamics 365
CRM UG Belux March 2017 - Power BI and Dynamics 365
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101
 
mongodb_DS.pptx
mongodb_DS.pptxmongodb_DS.pptx
mongodb_DS.pptx
 
Oracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra PasalapudiOracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra Pasalapudi
 
Scalable relational database with SQL Azure
Scalable relational database with SQL AzureScalable relational database with SQL Azure
Scalable relational database with SQL Azure
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPI
 

More from BizTalk360

Optimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaOptimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaBizTalk360
 
Optimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaOptimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaBizTalk360
 
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)BizTalk360
 
Integration Monday - Logic Apps: Development Experiences
Integration Monday - Logic Apps: Development ExperiencesIntegration Monday - Logic Apps: Development Experiences
Integration Monday - Logic Apps: Development ExperiencesBizTalk360
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveBizTalk360
 
Testing for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayTesting for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayBizTalk360
 
System Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration MondaySystem Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration MondayBizTalk360
 
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration MondayBuilding workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration MondayBizTalk360
 
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...BizTalk360
 
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration MondayMigrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration MondayBizTalk360
 
Integration-Monday-Infrastructure-As-Code-With-Terraform
Integration-Monday-Infrastructure-As-Code-With-TerraformIntegration-Monday-Infrastructure-As-Code-With-Terraform
Integration-Monday-Infrastructure-As-Code-With-TerraformBizTalk360
 
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-FunctionsIntegration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-FunctionsBizTalk360
 
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-FunctionsIntegration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-FunctionsBizTalk360
 
Integration-Monday-Building-Stateful-Workloads-Kubernetes
Integration-Monday-Building-Stateful-Workloads-KubernetesIntegration-Monday-Building-Stateful-Workloads-Kubernetes
Integration-Monday-Building-Stateful-Workloads-KubernetesBizTalk360
 
Integration-Monday-Logic-Apps-Tips-Tricks
Integration-Monday-Logic-Apps-Tips-TricksIntegration-Monday-Logic-Apps-Tips-Tricks
Integration-Monday-Logic-Apps-Tips-TricksBizTalk360
 
Integration-Monday-Terraform-Serverless
Integration-Monday-Terraform-ServerlessIntegration-Monday-Terraform-Serverless
Integration-Monday-Terraform-ServerlessBizTalk360
 
Integration-Monday-Microsoft-Power-Platform
Integration-Monday-Microsoft-Power-PlatformIntegration-Monday-Microsoft-Power-Platform
Integration-Monday-Microsoft-Power-PlatformBizTalk360
 
One name unify them all
One name unify them allOne name unify them all
One name unify them allBizTalk360
 
Securely Publishing Azure Services
Securely Publishing Azure ServicesSecurely Publishing Azure Services
Securely Publishing Azure ServicesBizTalk360
 

More from BizTalk360 (20)

Optimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaOptimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit Kappa
 
Optimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaOptimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit Kappa
 
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
 
Integration Monday - Logic Apps: Development Experiences
Integration Monday - Logic Apps: Development ExperiencesIntegration Monday - Logic Apps: Development Experiences
Integration Monday - Logic Apps: Development Experiences
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep Dive
 
Testing for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayTesting for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration Monday
 
No-Slides
No-SlidesNo-Slides
No-Slides
 
System Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration MondaySystem Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration Monday
 
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration MondayBuilding workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
 
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
 
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration MondayMigrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
 
Integration-Monday-Infrastructure-As-Code-With-Terraform
Integration-Monday-Infrastructure-As-Code-With-TerraformIntegration-Monday-Infrastructure-As-Code-With-Terraform
Integration-Monday-Infrastructure-As-Code-With-Terraform
 
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-FunctionsIntegration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
 
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-FunctionsIntegration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
 
Integration-Monday-Building-Stateful-Workloads-Kubernetes
Integration-Monday-Building-Stateful-Workloads-KubernetesIntegration-Monday-Building-Stateful-Workloads-Kubernetes
Integration-Monday-Building-Stateful-Workloads-Kubernetes
 
Integration-Monday-Logic-Apps-Tips-Tricks
Integration-Monday-Logic-Apps-Tips-TricksIntegration-Monday-Logic-Apps-Tips-Tricks
Integration-Monday-Logic-Apps-Tips-Tricks
 
Integration-Monday-Terraform-Serverless
Integration-Monday-Terraform-ServerlessIntegration-Monday-Terraform-Serverless
Integration-Monday-Terraform-Serverless
 
Integration-Monday-Microsoft-Power-Platform
Integration-Monday-Microsoft-Power-PlatformIntegration-Monday-Microsoft-Power-Platform
Integration-Monday-Microsoft-Power-Platform
 
One name unify them all
One name unify them allOne name unify them all
One name unify them all
 
Securely Publishing Azure Services
Securely Publishing Azure ServicesSecurely Publishing Azure Services
Securely Publishing Azure Services
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

Azure DocumentDB for Healthcare Integration Overview

  • 1. Sponsored & Brought to you by Azure DocumentDB for Healthcare Integration Howard Edidin https://twitter.com/hsedidin http://www.linkedin.com/in/hedidin
  • 2. Azure DocumentDB for Healthcare Integration Howard S. Edidin Microsoft Partner Technical Specialist (BizTalk, Azure) for Healthcare Gold Member
  • 3. About the series • Currently there is no direct support for HL7 in Azure • Using DocumentDB as the foundation, we will overcome this issue 3
  • 4. INTRODUCTION TO DOCUMENTDB Azure DocumentDB for Healthcare Integration – Part 1 4
  • 5. Azure DocumentDB for Healthcare Integration • Azure DocumentDB, features and capabilities • Creating a DocumentDB database • CRUD operations • API’s – REST – SQL Query Language – Server-side JavaScript • Leveraging DocumentDB as a HL7 document repository • Preview API and Logic Apps 5
  • 6. AZURE DOCUMENTDB, FEATURES AND CAPABILITIES Azure DocumentDB for Healthcare Integration – Part 1 6
  • 7. DocumentDB • DocumentDB is unique among NoSQL stores – It was developed and delivered as a service – It’s truly schema-free, queryable and JSON aware – Offers transactional processing through language integrated JavaScript – Predictable performance and tunable consistency 7
  • 9. Access Model • RESTful interaction over HTTP • Standard HTTP verbs & semantics • Can utilize BizTalk as a client • Built-in support for TCP for smart clients • Designed for Gateway as well as Direct Connectivity options POST Item resource TenantFeed URI PUT Item resource Item URI DELETE Item URI GET PATCH TenantFeed Or Item URI Item URI Create a new resource /Execute a sprocs/trigger/query Replace an existing resource Delete an existing resource Read/Query an existing resource *Selectively Edit an existing resource Item resource POST http://myaccount.documents.azure.net/dbs { "name":"My Company Db"} ... [201 Created] { "name": "My Company Db", "id": "UoEi5w==", "self": "dbs/UoEi5w==/", "colls": "colls/", "users": "users/" } 9
  • 10. JSON Documents JavaScript Object Literals JSON serializable values (aka JSON Infoset) Why JSON? Ubiquitous Schema-free and yet queryable Minimal impedance mismatch Committed to JSON & JavaScript Automatic indexing of documents without requiring schema or secondary indices SQL query dialect rooted in JSON; extensible via JavaScript Efficient execution of application logic with (JavaScript) language integrated database transactions Minimal impedance mismatch between the programming languages and the database type systems 10
  • 11. Data partitioned into collections 10GB zz RU/s $z per hour 10GB yy RU/s $y per hour 10GB xx RU/s $x per hour • Collections can be added and removed from databases • Each collection has reserved storage (10 GB) and throughput • Scale horizontally across multiple collections • Collections can be configured with different throughput levels POST Item resource TenantFeed URI Create a new resource /Execute a sprocs/trigger/query 11
  • 12. Indexing How it works • Automatic indexing of documents • JSON documents are represented as trees • Structural information and instance values are normalized into a JSON- Path • Fixed upper bound on index size (typically 5-10% in real production data) Example {"headquarters": "Belgium"}  /"headquarters"/"Belgium" {"exports": [{"city": “Moscow"}, {"city": Athens"}]}  /"exports"/0/"city"/"Moscow" and /"exports"/1/"city"/"Athens". 12
  • 13. CREATING A DOCUMENTDB DATABASE Azure DocumentDB for Healthcare Integration – Part 1 13
  • 14. DocumentDB app • We are NOT designing a DocumentDB application – We won’t need to Model data as JSON – List common access patterns – top 5-10 queries, sprocs, and CRUD – Review indexing policy and query – Decide partitioning scheme 14
  • 15. DEMO - CREATING A DOCUMENTDB DATABASE Azure DocumentDB for Healthcare Integration – Part 1 15
  • 16. DocumentDB Database A DocumentDB database is a logical container of one or more collections and users, as shown in the following diagram. You can create any number of databases under a DocumentDB database account subject to offer limits. 16
  • 17. REST • The DocumentDB REST API supports the following: – Access control to resources. – Query functionality for resources. – Basic CRUD operations for resources. 17
  • 18. Access control on resources • Access to DocumentDB resources is governed by a master key token or a resource token. To access a resource, the selected token is included in the REST authorization header, as part of the authorization string. 18
  • 19. Query functionality for resources • All DocumentDB resources except account resources, can be queried using DocumentDB SQL language. • To perform a SQL query on a resource, do the following: – Execute a POST method against a resource path using JSON with the "query" property set to the SQL query string, and the "parameters" property set to the array of optional parameter values. – Set the x-ms-documentdb-isquery header to true. – Set the Content-Type header to application/query+json. POST https://contosomarketing.documents.azure.com/dbs/XP0mAA==/colls/XP0mAJ3H-AA=/docs HTTP/1.1 x-ms-documentdb-isquery: True x-ms-date: Mon, 18 Apr 2015 13:05:49 GMT authorization: type%3dmaster%26ver%3d1.0%26sig%3dkOU%2bBn2vkvIlHypfE8AA5fulpn8zKjLwdrxBqyg0YGQ%3d x-ms-version: 2015-04-08 Accept: application/json Content-Type: application/query+json Host: contosomarketing.documents.azure.com Content-Length: 50 { query: "SELECT * FROM root WHERE (root.Author.id = 'Don')", parameters: [] } 19
  • 20. CRUD OPERATIONS Azure DocumentDB for Healthcare Integration – Part 1 20
  • 21. CRUD Operations • The DocumentDB API supports basic CRUD operations on the resources under a database account – The document resource is represented by docs in the DocumentDB resource model • A document consists of user-defined content in JSON format • Aside from the required id property, users can define any arbitrary elements, structures, and hierarchies for the content. The id element is a unique string that is user-settable and must not exceed 255 characters • By default, documents are automatically indexed, thus making a document queryable as soon as it is created • Attachments can also be linked to a document 21
  • 22. Create a document • A new document can be created by executing an HTTPS POST request against the docs URI resource path. Request Syntax: Method Request URI HTTP Version POST https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs HTTP/1.1 Note that the {databaseaccount} is the name of the DocumentDB account created under your subscription. The {_rid-db} value is the resource ID of the database. The {_rid-col} value is the resource ID of the collection that contains the document. 22
  • 23. Get a document • Performing a GET operation on a specific document resource retrieves the user defined JSON elements and system properties of the document. Request Syntax: Method Request URI HTTP Version GET https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs/{_rid-doc} HTTP/1.1 Note that the {databaseaccount} is the name of the DocumentDB account created under your subscription. The {_rid-db} value is the resource ID of the database. The {_rid-col} value is the resource ID of the collection that contains the document. 23
  • 24. Replace a document • Performing a PUT operation on a specific document resource replaces the entire document resource. All user settable properties, including the id, and the user defined JSON elements must be submitted in the body to perform the replacement. Any element omissions result in unintended data loss as this operation is a full replace operation. The x-ms-indexing-directive header can be set and submitted for the operation to include or exclude the document from being indexed. Request Syntax: Method Request URI HTTP Version PUT https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs/{_rid-doc} HTTP/1.1 24
  • 25. Delete a document • Performing a DELETE operation on a specific document resource deletes the document resource from the collection. Method Request URI HTTP Version DELETE https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-col}/docs/{_rid-doc} HTTP/1.1 Request Syntax: 25
  • 26. OTHER OPERATIONS Azure DocumentDB for Healthcare Integration – Part 1 26
  • 27. Other operations • Operations on DocumentDB Document Collections – Create a collection – List collections – Get a collection – Delete a collection • Operations on DocumentDB Attachments – Create an Attachment – Replace an attachment – List attachments – Delete attachments 27
  • 28. Other operations • Operations on Stored Procedures – Create a stored procedure – Replace a stored procedure – List stored procedures – Delete a stored procedure – Query stored procedures – Execute a stored procedure 28
  • 29. Other operations • Operations on User Defined Functions – Create a UDF – Replace a UDF – List UDFs – Delete a UDF – Query UDFs • Operations on Triggers – Create a trigger – Replace a trigger – List triggers – Delete a trigger – Query triggers 29
  • 30. Other operations • Operations on DocumentDB Databases – Create a Database – List Databases – Get a Database – Delete a Database • Querying DocumentDB Resources – All DocumentDB resources except account resources can be queried using DocumentDB SQL language. 30
  • 31. DocumentDB Resource URI Syntax for REST Resources Base URI Database https://{databaseaccount}.documents.azure.com/dbs/{_rid-db} User https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/users/{_rid-user} Permission https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/users/{_rid-user}/permissions/{_rid-perm} Collection https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll} Stored Procedure https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/sprocs/{_rid-sproc} Trigger https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/triggers/{_rid-trigger} UDF https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/udfs/{_rid-udf} Document https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/docs/{_rid-doc} Attachment https://{databaseaccount}.documents.azure.com/dbs/{_rid-db}/colls/{_rid-coll}/docs/{_rid- doc/attachments/{_rid-attch} 31
  • 32. DOCUMENTDB SQL QUERY LANGUAGE Azure DocumentDB for Healthcare Integration – Part 1 32
  • 33. SQL Query • Azure DocumentDB supports querying of documents using a familiar SQL (Structured Query Language) like grammar over hierarchical JSON documents without requiring explicit schema or creation of secondary indexes 33
  • 35. LEVERAGING DOCUMENTDB AS A HL7 DOCUMENT REPOSITORY Azure DocumentDB for Healthcare Integration – Part 1 35
  • 36. HL7 Document Repository Integrating HL7 newest standard Azure on FHIR© 36
  • 37. HL7 Document Repository Using DocumentDB as a FHIR© document repository • Possible Use Cases – Personal Health Record (PHR) • In the PHR scenario, an Electronic Medical Record system (EMR, though many other names and acronyms are also used) provides a RESTful API that allows patients to access their own medical record via a common web portal or mobile application. – Document Sharing (XDS) • One common way to integrate healthcare information from a variety of sources is to build a repository of documents around a patient record. Building a repository of documents allows for less stringent alignment around policy, procedures and record-keeping/informatics standards. 37
  • 38. HL7 Document Repository – Decision Support • One common use of healthcare information systems is to integrate some form of decision support software into clinical systems. – Common uses of clinical decision support are: » Drug-drug interaction checking, and more generally, prescription safety checks » Suggesting commonly missed diagnostic data interpretations (including delta checking) » Patient surveillance for early warning of deteriorating patient health (both acute and ambulatory care) » Identifying candidates for alternative treatment plans for improved efficacy 38
  • 39. HL7 Document Repository – Patient Demographics Query for Mobile (PDQm) • The Patient Demographics Query for Mobile (PDQm) Profile defines a lightweight RESTful interface to a patient demographics supplier leveraging technologies readily available to mobile applications and lightweight browser based applications. • The functionality is identical to the PDQ Profile • The differences are transport and messaging format of messages and queries. The profile leverages HTTP transport, and the JavaScript Object Notation (JSON), Simple-XML, and Representational State Transfer (REST). The payload format is defined by the HL7 Fast Health Interoperable Resources (FHIR) draft standard. – Web based EHR/EMR applications which wish to provide dynamic updates of patient demographic information such as a non-postback search, additional demographic detail, etc. – A health portal securely exposing demographics data to browser based plugins 39
  • 40. PREVIEWING API AND LOGIC APPS Azure DocumentDB for Healthcare Integration – Part 1 40
  • 41. Previewing API and Logic Apps Azure DocumentDB for Healthcare Integration – Part 2 – Design and development of an Azure API Connector app for DocumentDB – Designing a Logic App for HL7 FHIR© 41
  • 42. Azure DocumentDB for Healthcare Integration 42 Howard S. Edidin MCTS, MCP, Author, Trainer, TechNet Wiki Ninja Microsoft Partner Application Integration |HL7|HIPAA Microsoft Virtual Technical Specialist (BizTalk, Azure) for Healthcare hedidin@edidingroup.net

Editor's Notes

  1. Database account: A database account is associated with a set of databases and a fixed amount of blob storage for attachments (preview feature). You can create one or more database accounts using your Azure subscription. Every Standard database account is allocated a minimum capacity of one S1 collection. Database: A database is a logical container of document storage partitioned across collections. It is also a users container. User: The logical namespace for scoping/partitioning permissions. Permission: An authorization token associated with a user for authorized access to a specific resource. Collection: A collection is a container of JSON documents and the associated JavaScript application logic. A collection is a billable entity, where the cost is determined by the performance level associated with the collection. The performance levels (S1, S2 and S3) provide 10GB of storage and a fixed amount of throughput. Stored Procedure: Application logic written in JavaScript which is registered with a collection and transactionally executed within the database engine. Trigger; Application logic written in JavaScript modeling side effects associated with insert, replace or delete operations. UDFA: side effect free, application logic written in JavaScript. UDFs enable you to model a custom query operator and thereby extend the core DocumentDB query language. Document: User defined (arbitrary) JSON content. By default, no schema needs to be defined nor do secondary indices need to be provided for all the documents added to a collection.(Preview) Attachment: An attachment is a special document containing references and associated metadata for external blob/media. You can choose to have the blob managed by DocumentDB or store it with an external blob service provider such as OneDrive, Dropbox, etc.
  2. https://portal.azure.com
  3. Support for  parameterized SQL request with a string parameter 
  4. A collection is a container of JSON documents and associated JavaScript application logic, i.e. stored procedures, triggers and user-defined functions. A stored procedure is a piece of application logic written in JavaScript that is registered and executed against a collection as a single transaction. In DocumentDB, JavaScript is hosted in the same memory space as the database. Hence, requests made within stored procedures execute in the same scope of a database session. This enables DocumentDB to guarantee ACID for all operations that are part of a single stored procedure. The stored procedure resource has a fixed schema. The body property contains the application logic.  --------------------------------------- A user defined function (UFD) is a side effect free piece of application logic written in JavaScript. It allows developers to construct a query operator, thus extending the core of the DocumentDB query language. Like stored procedures, UDFs live in the confines of a collection, thus confining the application logic to the collection. Similar to stored procedures, the UDFs resource has a fixed schema. The body property contains the application logic. ------------- Triggers are pieces of application logic that can executed before (pre-triggers) and after (post-triggers) creation, deletion, and replacement of a document. Triggers are written in JavaScript. Both pre and post triggers do no take parameters. Like stored procedures, triggers live within the confines of a collection, thus confining the application logic to the collection.
  5. A collection is a container of JSON documents and associated JavaScript application logic, i.e. stored procedures, triggers and user-defined functions. A stored procedure is a piece of application logic written in JavaScript that is registered and executed against a collection as a single transaction. In DocumentDB, JavaScript is hosted in the same memory space as the database. Hence, requests made within stored procedures execute in the same scope of a database session. This enables DocumentDB to guarantee ACID for all operations that are part of a single stored procedure. The stored procedure resource has a fixed schema. The body property contains the application logic.  --------------------------------------- A user defined function (UFD) is a side effect free piece of application logic written in JavaScript. It allows developers to construct a query operator, thus extending the core of the DocumentDB query language. Like stored procedures, UDFs live in the confines of a collection, thus confining the application logic to the collection. Similar to stored procedures, the UDFs resource has a fixed schema. The body property contains the application logic. ------------- Triggers are pieces of application logic that can executed before (pre-triggers) and after (post-triggers) creation, deletion, and replacement of a document. Triggers are written in JavaScript. Both pre and post triggers do no take parameters. Like stored procedures, triggers live within the confines of a collection, thus confining the application logic to the collection.
  6. A stored procedure is a piece of application logic written in JavaScript that is registered and executed against a collection as a single transaction. In DocumentDB, JavaScript is hosted in the same memory space as the database. Hence, requests made within stored procedures execute in the same scope of a database session. This enables DocumentDB to guarantee ACID for all operations that are part of a single stored procedure. The stored procedure resource has a fixed schema. The body property contains the application logic.  --------------------------------------- A user defined function (UFD) is a side effect free piece of application logic written in JavaScript. It allows developers to construct a query operator, thus extending the core of the DocumentDB query language. Like stored procedures, UDFs live in the confines of a collection, thus confining the application logic to the collection. Similar to stored procedures, the UDFs resource has a fixed schema. The body property contains the application logic. ------------- Triggers are pieces of application logic that can executed before (pre-triggers) and after (post-triggers) creation, deletion, and replacement of a document. Triggers are written in JavaScript. Both pre and post triggers do no take parameters. Like stored procedures, triggers live within the confines of a collection, thus confining the application logic to the collection.
  7. A stored procedure is a piece of application logic written in JavaScript that is registered and executed against a collection as a single transaction. In DocumentDB, JavaScript is hosted in the same memory space as the database. Hence, requests made within stored procedures execute in the same scope of a database session. This enables DocumentDB to guarantee ACID for all operations that are part of a single stored procedure. The stored procedure resource has a fixed schema. The body property contains the application logic.  --------------------------------------- A user defined function (UFD) is a side effect free piece of application logic written in JavaScript. It allows developers to construct a query operator, thus extending the core of the DocumentDB query language. Like stored procedures, UDFs live in the confines of a collection, thus confining the application logic to the collection. Similar to stored procedures, the UDFs resource has a fixed schema. The body property contains the application logic. ------------- Triggers are pieces of application logic that can executed before (pre-triggers) and after (post-triggers) creation, deletion, and replacement of a document. Triggers are written in JavaScript. Both pre and post triggers do no take parameters. Like stored procedures, triggers live within the confines of a collection, thus confining the application logic to the collection.