Project: Integrating OHIF Viewer to new Radiology OWA

gsoc2018-project
gsoc2018
radiology

(Lenya Hope Nembi) #1

@Zatoner_Dev, @ivange94 it is my pleasure to have you guys as my mentor for this summer. I have opened this topic for discussions, questions and suggestions related to my gsoc project: Integrating OHIF Viewer to new Radiology OWA. The main goals of this project is the development of a new OWA for LibreHealth Radiology and Integrating OHIF Viewer as a radiology image viewer.


(Tigpezeghe Rodrige Kwenchu) #2

@lehone can you make a list of the deliverables for your project here.


(Robby O'Connor) #3

@lehone – I have converted your post to a wiki post.


(Lenya Hope Nembi) #4

After looking at the user stories, I came up with a list of things that need to be done at the back-end:

  • Edit RadiologyStudy.java by adding the following fields: patient, startDate, approvedDate, approvedBy, claimedDate, claimedBy, status(Draft, Preliminary or Finalized)
  • Add REST endpoints to create, update, search, get and delete RadiologyStudy.
  • Add PRELIMINARY as a status for RadiologyReport

For now, these are the changes required, based on the user stories. @judywawira, @Zatoner_Dev, @ivange94 I will like to know if there is something which I left out or something which isn’t suppose to be on the list?


(Lenya Hope Nembi) #5

Secondly, I will also like to know how I can get User’s privileges from the OWA via REST, in order to provide access control over certain operations like Approving a Study, Claiming a study etc.


(Saptarshi Purkayastha) #6

My suggestion is not to lock yourself in the existing OpenMRS data model. I strongly suggest that you look at the Diagnostic Medicine FHIR Module. It has a workflow that describes the use of many radiology related REST resources. Creating new REST endpoints with a chatty, proprietary approach with limited interoperability Profiles is not a good direction.

I’ll let your GSoC mentors @ivange94 and @judywawira to take this forward, but I wanted to add my two cents.


(Ivange Larry) #7

I support @sunbiz on not locking yourself in existing OpenMRS model but go the fhir direction.

But I didn’t get this part


(Robby O'Connor) #8

@ivange94 he meant to use FHIR


(Lenya Hope Nembi) #9

Okay, so are you suggesting that I create new Resources from scratch based on FHIR specifications?


(Judy Gichoya) #10

Yes @lehone I would look at existing Radiology module I think @robby will have it up pretty soon and then go through every single function and determine where it’s getting it’s data from

You can also run the owa from Larry s attempt

Then identify what fhir endpoint you will need for that component - and once all complements are available we will compile them into the owa


(Lenya Hope Nembi) #11

okay @judywawira. Please, what is the difference between a Radiology Order and a Procedure Request? They seem to be similar and I don’t know their differences.


(Judy Gichoya) #12

We will treat them as the same


(Lenya Hope Nembi) #13

Ok. Will be waiting to hear from you after you look at the Radiology module


(Saptarshi Purkayastha) #14

No, please dont create new REST Resources. FHIR provides the REST resources that you need. You should think about creating services (microservices actually) that can take a FHIR ProcedureRequest (aka order) and transform it into a Modality Worklist (aka DICOM file) to be sent to a PACS like orthanc. You can create the microservice using this tutorial - https://spring.io/guides/gs/reactive-rest-service/


(Saptarshi Purkayastha) #15

I meant that the OpenMRS REST services are chatty, and use proprietary payloads. This is another excellent tutorial for anyone who wants to create new RESTful services for non-FHIR things like making worklist - https://spring.io/guides/tutorials/react-and-spring-data-rest/


(Judy Gichoya) #16

@lehone me and @sunbiz had a long chat about your scope this evening

You will have a frontend component - specifically doing orders and a backend component

The backend component implements the DICOM workflow – So you would be working to implement a modality work list - We thought that you will need to create a new spring data app and during midterms we will merge it with what @yashdsaraf will have worked on

Thereafter you will do the UI component that integrates the OHIF and orthanc (this already exists and is the current module)-- once @r0bby completes setting up the demo servers i can point you to this workflow …


(Robby O'Connor) #17

It’s up – the viewer is not…


(Judy Gichoya) #18

need to show the whole system


(Robby O'Connor) #19

radiology demo is up now :tada::tada::tada:


(Lenya Hope Nembi) #21

@judywawira, @ivange94, @sunbiz i have been looking into the hapi-fhir-structures-dstu3 library to try and figure out how the different resources will be persisted to the database.

I tried with mysql and with simple CrudRepositories but could not store a Patient’s record because the pojo’s class wasn’t annotated as an Entity.

I also tried with Mondod and whith MondoRepository as documented in the spring gs guide but had this error while trying to save a Patients’s record

Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Cannot autogenerate id of type org.hl7.fhir.dstu3.model.IdType for entity of type org.hl7.fhir.dstu3.model.Patient!

because the id field on the Resouce class which Patient inherits from has id field of type IdType and so spring cannot autogenerate an id’s of that type.

My Patient Repository looks like this

I used the CommandLineRunner to create and save a patient

please any suggestions on how to go about saving the data will be helpful?