Radiology Module: Manage imaging modalities and procedures

Dear community and specifically students interested in GSoC 2016!

I created this thread so we could discuss any questions regarding the proposed project: https://wiki.openmrs.org/display/projects/Radiology+Module%3A+Manage+imaging+modalities+and+procedures

in one place.

Welcome! And happy to hear from you :smile:

6 Likes

I am Ajaipreet Gupta, a third year student of Computer Science at Jiwaji University, Gwalior India. I am interested in working on this module for the Google Summer of Code. I am new to GSoC but I’ve worked on software projects before.

I have already forked the Repo on Github. I"m presently compiling. I will appreciate any directives or expectations you have for me to work on this project.

3 Likes

Dear @ajaipreetg

great to hear from you!

So for you and all other students who might be interested.

To get started please:

  1. create a VM with OpenMRS and the dcm4chee PACS https://github.com/teleivo/puppet-openmrs-radiologydcm4chee and make sure to configure everything as described here https://github.com/teleivo/puppet-openmrs-radiologydcm4chee/blob/master/README.md#final-configurations

  2. create a vagrant box of the VM created under 2. as described here https://github.com/teleivo/puppet-openmrs-radiologydcm4chee/blob/master/README.md#how-to-speed-up-recreating-a-fresh-vm so you can quickly recreate a fresh VM to test every PR in a fresh VM.

  3. build the latest radiology module from source https://github.com/openmrs/openmrs-module-radiologydcm4chee

  4. deploy the radiology module you built under 3. into your custom vagrant box and configure the radiology module and the dcm4chee PACS as described in the installation guide (pdf) which you can find here https://wiki.openmrs.org/display/docs/Radiology+Module Note: the installation guide is not up to date. So if you are having trouble please ask here. Upgrading the wiki is an own JIRA task.

  5. Get familiar with the radiology module and the code (make some changes, rebuild and deploy the module)

  6. Claim an issue from https://issues.openmrs.org/browse/RAD which is “Waiting For Dev” and get started!

Feel free to ask if you need any help along the way!

please complete the configuration of the radiology module before adding orders, see configuration section at https://wiki.openmrs.org/display/docs/Radiology+Module

I am suspecting that I am already liking this project I will follow the initial steps you gave above and revert with some feedbacks while reading more documentations on the actual state of the module.

Thanks.

2 Likes

welcome @ulrich!

for you and other interested gsoc students I started creating tickets just for you. so please look out for gsoc-2016 issues ready for dev

Thanks @teleivo, Will definitely proceed with solving these issues once I am done with the preliminary steps you gave or can that be done in parallel ?

it can be, but I suggest you first prepare your dev setup, compile the module, deploy it, configure it and then move to solving a first issue

Ok :slightly_smiling:

Thank you for your prompt reply. I will create the requested VMs and report my results. I’ll get started on writing my proposal and share with you when it’s ready.

there all please read and post any questions about an issue concerning the dev setup here:

1 Like

Thank you very much @teleivo, I will take a look at these documents immediately.

I am new to OpenMRS - havent done any changes to OpenMRS, as such. In terms of this module, would you think its OK for me to attempt this module and work on the JIRAs please?

1 Like

Prior knowledge of or experiences with openmrs are an advantage but not a prerequisite, anybody is welcome to apply!

1 Like

please check out these two resources which I just added to the wiki

Intro video on radiology workflow and IT systems involved:

Imaging procedure catalogs and DICOM:

they give a great overview and will help you to quickly get some domain knowledge!

3 Likes

For anyone still having problems with the devops setup of the radiology module + pacs.

Please read the following:

To give you some background on what is being downloaded:

  • first vagrant downloads the ubuntu 14.04 image from vagrant cloud. but this is done only once, then it will just fetch it from your filesystem. That is should be working for you.

  • then inside the VM puppet downloads following archives, in addition to all other packages like tomcat, mysql

  • oracle jdk 7: 150MB

  • jboss: 100MB

  • dcm4chee: 30MB

  • weasis: 15MB

The thing is the archives all come from different servers, and it might be a mix of your connection not being fast enough or their servers upload.


A few important vagrant commands:

If vagrant fails just do vagrant destroy -f

this will remove the created VM and you can simply do vagrant up

to repeat the process. No need to remove the repo and clone again!

You could try vagrant up --provision

to force running the provision blocks in the vagrant file again after the timeout. Unfortunately this wont take of where it left of, since it would run both provision blocks.

I might figure out a way to change the second block into puppet provisioner instead of shell. We could then redo it using vagrant up --provision-with puppet

And also get to know vagrant https://www.vagrantup.com/docs/getting-started/


If you are having issues due to timeouts, I suggest you try the setup in 2 steps:

Make sure you run the latest https://www.vagrantup.com/downloads.html As they ironed out some bugs.

1.Bootsrap the VM and package it vagrant destroy -f

Then comment the second provision block in the Vagrantfile which runs the puppet_deploy_apply.sh

vagrant up

This will bootstrap your VM.

Now create a vagrant package and add it to your vagrant boxes (like openmrs-rad-basebox).

See steps https://github.com/teleivo/puppet-openmrs-radiologydcm4chee#how-to-speed-up-recreating-a-fresh-vm

2.Run puppet

In the Vagranftile rename config.vm.box = "ubuntu/trusty64" to your custom box you created before ("openmrs-rad-basebox" or whatever you called it)

Uncomment the second provision block in the Vagrantfile which runs the puppet_deploy_apply.sh

Comment the first provision block which runs the bootstrap.sh

vagrant up

This should at least save you the time of the bootstrapping.

Hope this helps! And if it runs without errors once, please create another box!!! To save you from going through this process again

3 Likes

@teleivo, are you on IRC? I am currently using CentOS. I am trying to setup the VMs on my system. I don’t know if you will prefer I install Ubuntu for this or I should just set up vagrant and the VMs on my current Linux system?

@ajaipreetg no I am busy with work, so I cant really chat too much :wink:

I dont really mind where you install it. I think its easiest to set it up in VMs. This way you can make a snapshot/vagrant package to recreate the environment freshly whenever you want and it does not mess with your local OS. I created this vagrant/puppet setup, so I can save others the hassle. I have only tested it using the Ubuntu box. So if you use my setup I dont think it will work with any other box, meaning if you change the box in the Vagrantfile (maybe debian will work). Your local OS does not matter with vagrant/virtualbox.

You can also of course set up everything manually.

All up to you!

Having problems, running the bootstrap.sh provision succeeded but the second part fails. It can’t access git. I have a very good connection now. This time around it turned to be worst i.e dividing the process into two.

What I realised is that running the process as a single one without dividing always hangs at the point where trying to do configurations for Tomcat, it stays there for long and sends me connection timeout message. Why should it hang here meanwhile the other configurations don’t complaint.

Error Log

http://pastebin.com/7ZNWK7DR

When I run vagrant up command over the two provisions at once it always hangs when it reaches the line

==> default: Notice: /Stage[main]/Tomcat/Group[tomcat]/ensure: created

It always stays here for long and returns with the connection timeout message

Does is it tell you something ?