Best and Worst Practices - DICOMweb™ Brad Genereaux Agfa HealthCare DICOM WG-27 Industry

Slides:



Advertisements
Similar presentations
ARINs RESTful Provisioning Interface Tim Christensen.
Advertisements

Esri International User Conference | San Diego, CA July 14, 2011 Troubleshooting ArcGIS Web APIs (JavaScript, Flex, Silverlight) from a Support Perspective.
IHE Profile Proposal: Dynamic Configuration Management October, 2013.
THE DICOM 2014 Chengdu Workshop August 25, 2014 Chengdu, China DICOMweb TM Brad Genereaux, Agfa HealthCare Product Manager Industry Co-Chair, DICOM WG-27,
Google Web Toolkit - Gufran Mohammed. Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications.
THE DICOM 2014 Chengdu Workshop August 25, 2014 Chengdu, China Keeping It Safe Brad Genereaux, Agfa HealthCare Product Manager Industry Co-Chair, DICOM.
By: Gerardo L. Mazzola Web Application Development Life Cycle “A driven force moving businesses into the future.”
SQL Reporting Services Overview SSRS includes all the development and management pieces necessary to publish end user reports in  HTML  PDF 
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
UNIT4 BUSINESS ANALYTICS. page WHAT IS THE PRODUCT? 2 A business intelligence tool kit, specializing in Coporate Performance Management An application.
SEEM4570: XAMPP, Eclipse, Summary of Html Kangfei Zhao Room 711,ERB
Automation using Selenium Authored & Presented by : Chinmay Sathe & Amit Prabhu Cybage Software Pvt. Ltd.
Integrating Complementary Tools with PopMedNet TM 27 July 2015 Rich Schaaf
Interconnection Protocol Mustafa Kara Term Work.
OAuth option for mHealth Brief Profile Proposal for 2013/14 presented to the IT Infrastructure Planning Committee R Horn (Agfa Healthcare)
2012 National BDPA Technology Conference Creating Rich Data Visualizations using the Google API Yolanda M. Davis Senior Software Engineer AdvancED August.
1. 2 What’s New in NetBeans IDE What is NetBeans IDE?  Ready to use out of the box  Support for latest Java specifications & standards  Other.
ASP.NET vNEXT & development tools Marco De
Philly.NET Hands-on Labs JAVASCRIPT SERIES. July 9: JavaScript Syntax Visual Studio ◦Projects ◦Editors ◦Debugging ◦Script blocks ◦Minification and bundling.
SednaSpace A software development platform for all delivers SOA and BPM.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Selenium automated testing in Openbravo ERP Quality Assurance Webinar April 8th, 2010.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
September, 2005What IHE Delivers 1 G. Claeys, Agfa Healthcare Audit Trail and Node Authentication.
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
Web Services An introduction for eWiSACWIS May 2008.
Java, Web Applications, and OSS Experience Prakash Malani Copyright © 2003.
1 3. Computing System Fundamentals 3.1 Language Translators.
C# AND ASP.NET What will I do in this course?. MAJOR TOPICS Learn to program in the C# language with the Visual Studio IDE (Interactive Development Environment)
Esri UC 2014 | Technical Workshop | Effectively Debugging Web Applications Kelly Hutchins Matt Priour.
How the Sausage is Made 3  A day in the life  The life of an RFE (and the tools we use)  The life of a product version.
1 1 EPCC 2 Curtin Business School & Edinburgh University Management School Michael J. Jackson 1 Ashley D. Lloyd 2 Terence M. Sloan 1 Enabling Access to.
Sept 13-15, 2004IHE Interoperability Workshop 1 Integrating the Healthcare Enterprise Portable Data for Imaging - PDI Robert Horn Agfa Healthcare.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
API Crash Course CWU Startup Club. OUTLINE What is an API? Why are API’s useful? What is HTTP? JSON? XML? What is a RESTful API? How do we consume an.
Preparing for the Hands-on Workshop Brad Genereaux Agfa HealthCare DICOM WG-27 Industry
b<>com Rest DICOM Library A portable DICOMweb™ toolkit
DICOMweb and FHIR Interoperability
Ionic & Cordova crash course Ivan Varga
Learning Aim B.  In this section, you will consider the resources necessary for designing your website.  You will also think about any constraints that.
Execution ways of program References: www. en.wikipedia.org/wiki/Integrated_development_environment  You can execute or run a simple java program with.
A Lap around Azure API Apps. Customer Challenges What are API Apps? Creating and Consuming an API App using VS Adding authentication API Connectors Swagger.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
Online Conference June 17 th and 18 th Modern SharePoint Development using Visual Studio Code.
ASP.NET Core* 1.0 The Future of Web Apps Shahed Chowdhuri
Using React, Drupal and Google Chrome to build an interactive kiosk + + =
ASP.NET Core* in 2017 The Future of Web Apps Shahed Chowdhuri
Open-O Client Project Proposal
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Open-O Client Project Proposal
Business Directory REST API
Accessibility into Automation
Introduction of Selenium Webdriver Using Java
Data Virtualization Tutorial… OAuth Example using Google Sheets
Modern web tooling in Visual Studio 2015
Brian Leonard ブライアン レオナルド
ASP.NET Core* 1.0 The Future of Web Apps Shahed Chowdhuri
Google Web Toolkit - Gufran Mohammed
Open-O Client Project Proposal
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
API Documentation Guidelines
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
02 | Web API Basic Design Jeremy Likness | Principal Architect
Getting started with SharePoint Framework
Testing RESTful Web APIs
Integration (API) testing with SoapUI
CS 240 – Advanced Programming Concepts
Presentation transcript:

Best and Worst Practices - DICOMweb™ Brad Genereaux Agfa HealthCare DICOM WG-27 Industry

5 seconds to find documentation 5 minutes to Hello World 5 hours to functional prototype 555 Rule

Put documentation in an easy-to-reference place –i.e., Implement Service Info transaction Use REST documentation frameworks –Swagger Supporting 5 Seconds to Documentation

Lay resources out in a logical way Use REST simulation tools to access resources Show in your documentation specific URLs to call –Suggest appropriate test data Supporting 5 Minutes to Hello World

Use test automation to guarantee consistency Ensure compliance to standards –Participate in WG-31, Conformance Be vigilant, yet tolerant (adaptable) Use descriptive error codes and payloads Supporting 5 Hours to Working Prototype

Consider security throughout the development process –Always use HTTPS, even in secured environments –See next presentation ! Security

In your own server/client applications, utilize the same API methods for communication rather than developing your own Stronger integration for you, and a battle- tested API for your consumers Eat your own dogfood

Self-documenting Nouns in path, verbs by HTTP Complexity under the “?” Errors use HTTP error code mechanism As simple as possible, but no simpler General REST Best Practices

Supporting insecure (yet easy) practices sets a bad precedent, no matter how many times you say “don’t use in production” User ID / Password in URL GET ? =DOE^JOHN&user=drjones&pwd=123456

Consider the following: Client needs to know patient position on objects within a series WADO-RS call: {s}/studies/{studyUID}/series/{seriesUID}/ metadata QIDO-RS call: {s}studies/{studyUID}/series/{seriesUID}/ instances/?includefield= Asking for too much

Clients need to know what’s happening; make sure to use the right error code Even worse, reporting OK when there was an error condition might mislead clients Incorrectly supporting errors

Think it’s a good idea for adoption? Bring it to the standards organizations –If it is structural, bring it to DICOM WG-27 –If it is profiling (i.e., workflow), bring it to IHE RAD If you’re going to do it anyway –Model (where possible) on existing standards –Refer to general REST best practices Avoid Proprietary Extensions

Software Development Tools - DICOMweb™ Brad Genereaux Agfa HealthCare DICOM WG-27 Industry

Any tools I mention are not an official endorsement nor am I under any fiduciary relationship with any of these companies Disclaimer

Playgrounds Editors Scaffolding Builders Testing Other Useful Tools Tools of the Web Developer

Postman Curl JSFiddle CodePen Playgrounds

Integrated Developer Environment (IDE) –Eclipse –Netbeans –IntelliJ –Visual Studio Lightweight Editors –Sublime –Notepad++ Editors

Scaffolding Tools that will lay out your project (i.e., directory structure). –Yeoman: Web applications –Maven: Java applications –Nuget:.Net applications Dependency management comes into play –Bower, NPM, require.js

Tools that compile, test (via automation) and preview your application –Grunt –Gulp –Ant Many helpers run as part of the build process –JSLint / JSHint –Minify (JS / CSS) –Uglify Builders

Karma: Testing framework –Jasmine / Mocha / QUnit PhantomJS: Headless website testing Selenium: Browser automation –SauceLabs: Cloud-based browser testing Testing

Code repositories –GitHub / Bitbucket Virtual server environment –Virtual Box –Docker, Vagrant Troubleshooting –Chrome development tools –Postman –Fiddler / Firebug Other Useful Tools

Available open-source server libraries –dcm4chee –Orthanc Available open-source client libraries –Cornerstone Great resource: DICOMweb™ Specific Tools

dcm4chee chee4-quick-start-vagrant chee4-quick-start-vagrant Orthanc DICOMweb™ Vagrants