Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

As describes in Default Service section, the FHIR resources which contain "RAD" as "serviceCategory" will be handle by the Radiology Service.

Users can create own handlers and register them with using Spring framework for the module in order to use them. But they have the flexibility of designing how to store/map a FHIR DiagnosticReport into OpenMRS data structures. In Radiology Service Handler, it's using Encounter as the main type to store the metadata of a DiagnosticReport. Then other FHIR resource fields are stored as OpenMRS Encounter properties and OpenMRS Obs. In order to store multiple Obs, it's using OpenMRS Obs Groups which use tree structure to store multiple Obs.

Workflow

Radiology Service handler is handling incoming request in a different manner. When the RadiologyHandler gets a GET request, first it searches for matching resource in the OpenMRS storage. If it's not able to find the given resource, then OpenMRS FHIR module makes client request to a specified external FHIR server and retrieve matching FHIR DiagnosticReports in  OpenMRS storage and response back to the user with received FHIR DiagnosticReports.

FHIR DiagnosticReport Mapping

ServiceCatogory > EncounterType

...

Result field can contain zero to many Observations. These FHIR Observations can map into OpenMRS Obs. In order to store multiple Obs, it uses Obs Groups.

ImagingStudy > Obs Group

ImagingStudy field can contain zero to many Observations. These FHIR ImagingStudy can map into OpenMRS Obs. In order to store multiple Obs, it uses Obs Groups.

Code Block
themeConfluence
languagebash
titleImagingStudy Mapping
linenumberstrue
ImagingStudy (Obs) 0..*
  - Patient : Person
  - uid : uuid
  - accession : AccessionNumber
  - numberOfSeries : Get Size of Series of Obs
  - numberOfInstance : ? Answer to the concept
  - clinicalInformation : comment
  |
  |--> Series (Obs) 0..*
         - modality : ?
         - uid : uuid
         - numberOfInstances: ? Answer ot the concept
         - url : comment
          |
          |--> Instance (Obs) 0..*
                 - number : ?
                 - uid: uuid
                 - sopclass : ?
                 - type : ?
                 - title : ?
                 - content : Complex Obs

PresentedForm > Complex Obs

...