Design Draft 1

This is the structure I expect the system to have:

As I see, there are two datamodels here:

  1. OpenMRS: That exposes a REST API to create patients, orders, and observations. I think these 3 are all we need for the project, Am I right?
  2. dcm4chee: That exposes two APIs:
    1. DICOM: to create patients, worklists, studies/series/images. This is the component that allows to comunicate with modalities.
    2. HL7: I think we could work without this.

So, the radiology module would be maintaining data consistency in both models.


Options for saving images in Radiology

-patientimage module saves image in .png

-DCM4CHEE is recommended, has Dicom support


How much Dicom support do we need? Many implementations of OpenMRS just use existing image services and save as .png format (instead of completely DICOM, sending MRI images as DICOM, etc)


Setup example – images in DICOM format, share with apps that want to see these images

  1. Client queries WADO server (web access to DICOM object)

  2. dcm4chee would help with this WADO

  3. Radiology module would maintain consistency in WADO and OpenMRS


How demanding is the quality of the image?


WEASIS uses JNLP to view the DICOM images.

  1. user downloads to jnlp with path of the images

  2. java application is loaded and makes WADO requests

  3. dcm4chee provides the WADO server (saves nothing here, passes on all data to and from


Limitations with WEASIS – is not intended for medical purposes (this is in the license). WEASIS viewer is not certificated to work in many countries.


For v1.0, we will require that person uploads images through patientimage module (for example CAT images). In the next iteration, we will allow machine upload through DICOM format


Use existing OpenMRS data models for all other data (such as obs for diagnoses, patients, encounters, etc)


John will explore how OpenMRS already saves images in database (this is not a great way to save, as blobs in a database) and how exactly we want to store large datasets.

Juan will explore installing dcm4chee and seeing how a WADO server works.