Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
BDB-DICOM Sample ProgramCapturing and using large data objects with BDB
Berkeley DB
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB
The Purpose• The purpose of the sample program is to demonstrate how to use Oracle
Berkeley DB in medical mobile applications.– It illustrates how Oracle Berkeley DB can be used to store, retrieve and query DICOM
files for offline usage on Windows mobile devices– The sample program is written as a proof of concept, and is not supposed to be used
directly in production.
• The sample program is built with the typical three-tier architecture– Oracle DB as the persistent layer– The sample program includes both a server program and a client program for
Windows mobile devices– The client program uses Oracle Berkeley DB for offline storage
2
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB
Issues/Trends/Challenges in Health Industry
3
• Unable to share patients’ medical images between systems, labs, hospitals.
• Hard to search and manage.
ISSUES
• Centralized management in DICOM-tailored database -Oracle Database Multimedia.
• Digitalization and telemedicine
• Doctor needs fast, easy access - local persistence.
• Multiple Data Sources needs embedded database
• Telemedicine - anytime and anywhere?
Oracle Differentiator
TREND CHALLENGES
Oracle Database 12c Multimedia
DICOM
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB 4
Architecture
DICOM Server
Oracle Database MultimediaBDB Client
HTTP JDBC
HTTP
HTTP
HTTP
Request
Stream
Group
db file or data stream
db file or data stream
db file or data stream
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB
The Coding
• The sample server is written in Java. It is responsible for serving client requests by retrieving DICOM objects from Oracle database and sending them to clients in a custom-made protocol.
• The sample client is written in C++. To support offline access to the DICOM objects, Oracle Berkeley DB is used to provide persistent cache of the objects.
5
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB 6
BDB-DICOM Client on Mobile Device Download & Storage
• Download with HTTP protocol• Store serialized DICOM into BDB
– DICOM = <key, value>• Key: DICOM id in Oracle database• Value: Predefined subset of DICOM metadata
– Consistent with DICOM but more compact
Content DICOMDICOM in DB
Oracle database BDB
Format Single file (X~XX MB) Blob (X~XX MB) Stream (X~XX KB)
Metadata 2000+ XML metadata
2000+ attributes fromXML in blob
Predefined interesting attributes’
Image Binary data Image data in blob Thumbnail
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB 7
BDB-DICOM Client on Mobile Device Query & Retrieval
• List DICOM in BDB– List grouped attributes– Display thumbnail (JPEG)
• Query on attributes– Single query: $attribute = value– Combinational query: “AND”
• Query hint– List all attributes– List all values on common attributes (patient’s name, modality, etc)
• Query checking– Immediate checking on queried attribute’s name
Patient Study Acquisition
name, sex, birth day, history, etc
date, description, institution name, etc
operator, manufacturer, time, date, etc
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB 8
BDB-DICOM Client on Mobile Device Update & Delete
• Modify DICOM attribute– Partially update the old record in BDB– Avoid rewriting other attributes and image content
Length value ID Length value Length value … …
Length value
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Berkeley DB
Accessing the demo
• YouTube: https://www.youtube.com/watch?v=zpFrgXgSXrY• OTN: http://
www.oracle.com/technetwork/database/database-technologies/berkeleydb/learnmore/index.html– Look for “DICOM video walkthrough”
9