Git Product home page Git Product logo

spia-to-fhir's Introduction

SPIA to FHIR

A Maven plugin for converting terminology from version 3.1 of the Standards for Pathology Informatics in Australia (SPIA) into a set of FHIR STU3 and FHIR R4 terminology resources.

The input is the ZIP archive distributed on the National Clinical Terminology Service web site.

The output is two FHIR Bundles (one for each FHIR version), each containing the following resources:

  1. Requesting reference set (SNOMED CT ValueSet)
  2. Chemical pathology reporting reference set (LOINC ValueSet)
  3. Chemical pathology unit map (ConceptMap)
  4. Chemical pathology combining results flag map (ConceptMap)
  5. Microbiology serology molecular reporting reference set (LOINC ValueSet)
  6. Microbiology serology molecular unit map (ConceptMap)
  7. Microbiology subset of organisms (SNOMED CT ValueSet)
  8. Haematology reporting reference set (LOINC ValueSet)
  9. Haematology unit map (ConceptMap)
  10. Immunopathology reporting reference set (LOINC ValueSet)
  11. Immunopathology unit map (ConceptMap)
  12. Preferred unit reference set (UCUM ValueSet)
  13. SPIA combining result flag (CodeSystem)

Overview of outputs

A FHIR terminology server that contains SNOMED CT and LOINC is required for the build process, as it is used to validate the content within the source files.

You can execute the plugin with the following commands:

mvn install

mvn -DinputPath=[zip file] \
    -DoutputDirectory=[path to output directory] \
    -DterminologyServerUrl=[FHIR terminology server endpoint] \
    -DpublicationDate=[publication date] \
    au.csiro:spia-to-fhir-maven-plugin:transform

Here is a description of the input parameters for the plugin:

  • inputPath: Path to the ZIP archive used to distribute the SPIA spreadsheets.
  • outputDirectory: Path where the output FHIR Bundles will be created (spia-stu3.Bundle.json and spia-r4.Bundle.json).
  • terminologyServerUrl: Endpoint of a FHIR terminology server which contains SNOMED CT and LOINC.
  • publicationDate: Date (in the format yyyy-MM-dd) used to populate the ValueSet.date and ConceptMap.date elements.

spia-to-fhir's People

Contributors

dependabot[bot] avatar johngrimes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spia-to-fhir's Issues

Check whether SNOMED and LOINC codes are active

Currently, the plugin checks for the well-formedness of SNOMED and LOINC codes. It does not, however, check whether the codes are active.

This would help improve the quality of the source data, and prevent publishing ValueSets and ConceptMaps which refer to inactive codes.

Change narrative type to generated

Currently, we populate the title into the narrative. However, the narrative status is set to empty.

It should really be set to generated.

Validate resources as part of build

It would be good if the transformation could also use the configured FHIR server to validate that the resources are valid according to the profiles that they assert.

Log4J configuration not working

There is a Log4J2 configuration file at src/main/resources, and Log4J dependencies are included in the POM.

However, this configuration does not seem to be active, as logging does not currently include times, originating class, etc.

Emit warning when target content will be in any way different to source

Currently there are some cases in which whitespace is trimmed from source content and omitted in the FHIR representation.

It would be good if anything like this is emitted as a warning to the logs, in the same way code validation results currently are.

This will allow for deficiencies in the source data to be fed back to the authors and addressed, so that the spreadsheet and the FHIR representation remain faithful to one another.

Parameterise date values for ValueSets and ConceptMaps

Currently, the date element on ValueSets and ConceptMaps are set to the date and time of the transformation. A more useful date for use within these elements will be the date of publication.

We need a way of passing the publication date in as a parameter, so that the dates within the output are stable and deterministic.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.