How to Build a Database- driven MIRC Teaching File System – A Case Study Stephen Moore Mallinckrodt Institute of Radiology.

Slides:



Advertisements
Similar presentations
How to Set Up a System for Teaching Files, Conferences, and Clinical Trials Medical Imaging Resource Center.
Advertisements

How to Set Up a System for Teaching Files and Clinical Trials Medical Imaging Resource Center.
An Overview of the Integration of the UCSF Dept. of Radiology Teaching File with MIRC Wyatt M. Tellis University of California San Francisco Departments.
Medical Imaging Resource Center A Tour of the MIRC Community.
How to Author Teaching Files Draft Medical Imaging Resource Center.
Medical Imaging Resource Center A Tour of the MIRC Community.
Medical Image Resource Center. What is MIRC? Medical Image Resource Center Makes it easier to locate and share electronic medical images and related information.
Medical Imaging Resource Center A Tour of the MIRC Community.
4 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: Servlets.
EIONET Training Beginners Zope Course Miruna Bădescu Finsiel Romania Copenhagen, 27 October 2003.
Other Web Application Development Technologies. PHP.
Connecting to Databases. connecting to DB DB server typically a standalone application Server runs on localhost for smaller sites –i.e. Same machine as.
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Database System Concepts and Architecture
ArrayExpress Query Interface Gonzalo Garc í a Lara January, / 24.
A Prototype Implementation of a Framework for Organising Virtual Exhibitions over the Web Ali Elbekai, Nick Rossiter School of Computing, Engineering and.
1 Database Driven Web Application Clients Application Servers including web servers Database Server Traditional client-server (2-tier architecture): client:
Fundamentals, Design, and Implementation, 9/e Chapter 14 JDBC, Java Server Pages, and MySQL.
WEB1P servintro1 Introduction to servlets and JSP Dr Jim Briggs.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
1 C. Shahabi Application Programming for Relational Databases Cyrus Shahabi Computer Science Department University of Southern California
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Lecture 4: Introduction to PHP 3 PHP & MySQL
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
1 Foundations of Software Design Lecture 27: Java Database Programming Marti Hearst Fall 2002.
Java Server and Servlet CS616 Team 9 Kim Doyle, Susan Kroha, Arunima Palchowdhury, Wei Xu.
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Java Servlets. What Are Servlets? Basically, a java program that runs on the server Basically, a java program that runs on the server Creates dynamic.
Apache Jakarta Tomcat Suh, Junho. Road Map Tomcat Overview Tomcat Overview History History What is Tomcat? What is Tomcat? Servlet Container.
John Perry MIRC Overview Medical Imaging Resource Center MIRC Overview Medical Imaging Resource Center.
WHAT IS PHP PHP is an HTML-embedded scripting language primarily used for dynamic Web applications.
Java Server Pages B.Ramamurthy. Topics for Discussion 8/20/20152 Inheritance and Polymorphism Develop an example for inheritance and polymorphism JSP.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
3/8/00asp00 1 Active Server Pages from Microsoft Nancy McCracken Northeast Parallel Architectures Center at Syracuse.
MIRC Refresher Course: New Developments Medical Imaging Resource Center.
Using MIRC Khan M. Siddiqui, MD Chief, Imaging Informatics & MRI VA Maryland Health Care System Assistant Professor, Radiology University of Maryland,
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
Designing and Developing WS B. Ramamurthy. Plans We will examine the resources available for development of JAX-WS based web services. We need an IDE,
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
NMED 3850 A Advanced Online Design January 12, 2010 V. Mahadevan.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
1Computer Sciences Department Princess Nourah bint Abdulrahman University.
Hibernate 3.0. What is Hibernate Hibernate is a free, open source Java package that makes it easy to work with relational databases. Hibernate makes it.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
The RSNA Teaching File System (MIRC) John Perry.  MIRC Overview – Teaching Files  RSNA Clinical Trial and Research Software  Hands On: Using the RSNA.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
How to Set Up a System for Teaching Files, Conferences, and Clinical Trials Medical Imaging Resource Center.
PHP Introduction PHP is a server-side scripting language.
Windows 7 WampServer 2.1 MySQL PHP 5.3 Script Apache Server User Record or Select Media Upload to Internet Return URL Forward URL Create.
DSpace System Architecture 11 July 2002 DSpace System Architecture.
Database Connectivity and Server-Side Scripting Chapter 12.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
Intro to JDBC Joseph Sant Applied Computing and Engineering Sciences Sheridan ITAL.
Lecture Transforming Data: Using Apache Xalan to apply XSLT transformations Marc Dumontier Blueprint Initiative Samuel Lunenfeld Research Institute.
MIRC Overview Medical Imaging Resource Center John Perry RSNA 2009.
PHP stands for …….. “PHP Hypertext Pre-processor” and is a server-side scripting language like ASP. PHP scripts are executed on the server PHP supports.
MIRC Overview Medical Imaging Resource Center. RSNA2006 MIRC Courses Overview of the RSNA MIRC Software Installing MIRC on Your Laptop Using MIRC for.
PHP is a server scripting language, and a powerful tool for making dynamic and interactive Web pages. PHP is a widely-used, free, and efficient alternative.
JDBC.
PHP / MySQL Introduction
Java Database Connectivity
Web Application Development Using PHP
Plug-In Architecture Pattern
Presentation transcript:

How to Build a Database- driven MIRC Teaching File System – A Case Study Stephen Moore Mallinckrodt Institute of Radiology

Financial Disclaimer Stephen Moore is employed by Washington University and has received no extramural funding for this project. The Mallinckrodt Institute does not charge for access to the NM teaching file or for the storage service software.

Intended Audience Those who wish to add a Storage Service to an existing Teaching File Those who wish to build a Teaching File that includes a Storage Service Not someone who wants to install/run someone elses software –You need a different session or exhibit

Who Knows How the MIRC Community Works?

MIRC Internet Server Index Server Index MIRC site Server Index Query Service MIRC site Server Index RSNA site User MIRC site

MIRC Terminology Query Service –A point of access to the entire MIRC community. It provides a query form to the user, distributes the search criteria to all selected storage services, collates the responses, and presents them to the user. Storage Service –Responds to the query received from the query service, searches its index for documents meeting the search criteria, and returns abstracts and locations of the matching documents to the query service

Approaches to Creating a Storage Service Install, manage RSNA software –Attractive solution if you dont already have a teaching file Write new software to interface to your existing teaching file (live link to existing database) –Allows existing teaching file to continue and you get automatic updates to Storage Service Map data to MIRC-based database; write new software to interface to new database –Snapshot approach; minimal interference with existing teaching file

Storage Service Model DB Query Service Storage Service User Web Server Control Logic DB Interface Output Generator XML Parser

Storage Service Processing Steps Web Server passes query to Control Logic Control Logic invokes XML parser to produce a query Control Logic invokes DB Interface (or DB directly) to perform search Output generator produces legal XML that is passed back to Query Service

Software Development Steps Define system architecture Make technology choices for web server, parser, database Map MIRC Document Schema to your database schema (4-12 hours) Map XML query to existing database schemas (2- 6 hours) Extend MIR software based on new schemas (2 days)

MIR MIRC Components Java Tomcat Web Server PostgreSQL Relational Database http post, XMLServlet API SQL Java Servlet (MIR)

Java Servlets Are a Technology Choice Java Servlet technology provides Web developers with a simple, consistent mechanism for extending the functionality of a Web server and for accessing existing business systems. A servlet can almost be thought of as an applet that runs on the server side -- without a face.

Sun Java 2 Software Development Kit (J2SDK) The J2SDK provides core technology for the Tomcat web server and for servlets We are using an older version (1.2.2) We intend to upgrade to 1.4.2

Apache Tomcat Server Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process.

Apache Tomcat Server Provides a simple interface to obtain the http commands and return results We use version (today) We have used and previously

Apache Xerces XML Parser Xerces2 is a fully conforming XML Schema processor. We use Xerces-J-bin I see a release is available as of 11/20

PostgreSQL Relational Database A robust, relational database supporting SQL queries Software is freely available without licensing fees We use version 7.1, 7.3

Java Interface to PostgreSQL PostgreSQL contains an optional package that implements JDBC This is compiled and installed one time It allows a Java class (servlet) to execute SQL operations

Other Technology to Consider Apache web server / CGI / PHP Microsoft IIS / ASP Relational databases –MySQL –Oracle, SQL Server, Sybase XML index

MIR Storage Service (Moore/MIR) Web ServerApache Control LogicCustom (Java servlets) XML ParserXerces-J (2.5.0) DB InterfaceJDBC (PostgreSQL) DatabasePostgreSQL / Unix Output GeneratorCustom (Java servlets)

UCSF Storage Service (Tellis/UCSF) Web Server4 th Dimension Control LogicCustom (scripting language) XML ParserExpat4D DB Interface4 th Dimension Database4 th Dimension Output GeneratorCustom (scripting language)

Software Development Steps Define system architecture Make technology choices for web server, parser, database Map MIRC Document Schema to your database schema (4-12 hours) Map XML query to existing database schemas (2- 6 hours) Extend MIR software based on new schemas (2 days)

One MIRC Document = One NM Teaching File Case We decided not to replicate Teaching File functions with this Storage Service The MIRC Document that we return gives two pointers –One reference to the specific case that is chosen –Second reference to the Nuclear Medicine Teaching File main page

MIRC Query Schema 21 first tier elements –Title –Author –Abstract –Keywords Patient and image elements have sub- elements (9 such child elements)

MIR Nuclear Med /MIRC TF Schema We mapped the 30 MIRC schema elements to 12 columns in one table Remaining 18 elements are not implemented (but should be)

MIRCQuery MIR DB Columns MIRC QueryNM Database MIR MIRC DB titlebrief historytitle author abstractfull_historyabstr diagnosis diag_dx

Loading Data MIRC Database MIR Nuclear Medicine Teaching File can be exported as a series of HTML files We wrote a perl script to scan each file/record and produce an equivalent record in our SQL table

Mapping NM Database to MIRC Database (Snapshot) perl script HTML Files SQL insert statements PostgreSQL Relational DB

Questions to Ask When Mapping to Your Schema If starting from scratch, will you create a flat database design that matches the MIRC Document schema? –Do you have different tables for different concepts (patient, study, image)? How will your system change in the future should the query schema change? If you have an existing system, can you create a database view to get close to the query requirements?

A Simple MIRC Document Can Be Returned Attributes that we return in response include –docref –title –author –abstract RSNA Query Service will take care of formatting the output for us

Software Development Steps Define system architecture Make technology choices for web server, parser, database Map MIRC Document Schema to your database schema (4-12 hours) Map XML query to existing database schemas (2-6 hours) Extend MIR software based on new schemas (2 days)

Mapping MIRCQuery to Your Database If underlying technology is a SQL database, you need only parse the XML query and produce appropriate SQL and harvest results select title, author, abstr from doc_reference where keywords ilike %paget%;

Other Considerations Is there any private data in your existing database that you need to protect? Can you easily run case-insensitive queries against your database? Is it simple to provide a document + URL that will get the user directly to your teaching file case? Is this a system to also manage your teaching file or is it designed to provide another entry point?

MIR Implementation Details

Lines of Java Code Class to parse XML600 lines * Setup JDBC interface50 lines JDBC/SQL query70 lines Publish results30 lines * The XML parsing code uses the Xerces-J software. Our software could be more efficient.

Java Parser Sample public void doPost (HttpServletRequest req, HttpServletResponse res){ DocumentBuilder b = DocumentBuilderFactory.newInstance.newDocumentBuilder(); BufferedReader rdr = req.getReader(); org.xml.sax.InputSource is = new org.xml.sav.InputSource(rdr); Document d = builder.parse(is);

JDBC Code Sample Class.forName(org.postgresql.Driver); mDB = DriverManager.getConnection( jdbc:postgresql:doc_reference?user=postgres); Statement stmt = mDB.createStatement(); Stmt.execute(select title, author, … where …); ResultSet rs = stmt.getResultSet(); while (rs.next()) { // process row from database String title = rs.getString(1).trim(); String author = rs.getString(2).trim(); … }

Setup Steps Install J2SDK5 min Install Tomcat server5 min Compile/install PostgreSQL (Solaris) 3 hours ** Install/configure PostgreSQL (Linux) 1 hour **

Conclusion The process to build a Storage Service interface is relatively easy Free tools exist (web server, servlets, relational database) that assist the developer Our software available next week Questions?