8000 GitHub - BBMRI-cz/fhir-module: A data integration tool for BBMRI-ERIC biobanks.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

BBMRI-cz/fhir-module

Repository files navigation

FHIR module

CI build codecov Python 3.11 Linter: pylint

The BBMRI-ERIC FHIR module is a container based application connecting biobanks to other IT tools and services in our ecosystem on a local level.

Goal

The goal of this project is to create a highly customizable data integration tool for biobanks that are a part of BBMRI-ERIC. This tool should support ETL processes by providing the following functionality:

  • Data harmonization to HL7 FHIR
    • HARMONIZATION for BBMRI.de profile - currently used by BBMRI-ERIC Locator
    • HARMONIZATION for MIABIS on FHIR profile - FHIR profile representing latest MIABIS version (MIABIS Core 3.0 + Individual-level sample components)
  • Data quality validation - validates the provided files and mappings - see Deployment
  • Reporting and monitoring (coming soon)

Glossary

State

Supports syncing of patients and their samples between a Blaze FHIR store and a repository of XML,CSV or JSON files stored on a regular filesystem.

This application supports transformation from 3 file types. XML,CSV, and JSON.

This application Transforms data into the two FHIR profiles, BBMRI.de and MIABIS on FHIR, as mentioned above. Each representation is stored in an independent Blaze FHIR store. MIABIS on FHIR representation serves as a pilot use-case of the newly created profile.

Currently, the XML files must have the same structure as this test file. This module cannot work with different types of files at the same time, so all the records needs to be in either XML,CSV or JSON.

Contents of provided record file(s)

In order to successfully transform data about patients and samples, the users need to provide this data:

  • patient_data:
    • (pseudo)-anonymized ID of a donor
    • donor_birthdate
    • gender
  • sample_data:
    • (pseudo)-anonymized ID of the sample
    • material type
      • diagnosis_datetime - date that the diagnosis was first observed (optional but recommended for better findability in Locator)
    • storage temperature - (optional but recommended for better findability in Locator)
    • ICD10 diagnosis code
    • collection ID which specifies to which collection this sample belongs to (this ID comes from BBMRI-ERIC Directory)

IMPORTANT: Collection ID does not need to be a new attribute. It can also be already present attribute from which the collection ID can be derived. For more information see MAPS

DISCLAIMER: Samples without specified Collection to which they belong to will not be correctly visible in the BBMRI-ERIC Locator

Quick Start

Docker

Prerequisites:

To spin up an instance of the FHIR module along with Blaze, clone the repository and run the following command:

docker compose --profile dev up -d

For additional information about deployment, refer to the Deployment documentation.

Workflow

At the start, the FHIR module syncs the provided records - Transforms the provided records into BBMRI.de representation ( and into MIABIS on FHIR representation, if the MIABIS_On_FHIR enviromental variable is set to True - see Deployment documentation ) and uploads them to the Blaze FHIR store respectively.

The FHIR module periodically - every week - syncs the Blaze store with the records currently present. Only new patients/samples are uploaded. FHIR module checks if patient/sample is present based on its respctive ID, so please, keep the IDs unique!

Manual upload

Additionally, after initial upload, users can manually start the sync of BBMRI.de or MIABIS on FHIR profile representation using the commands:

docker exec fhir-module curl -X POST http://127.0.0.1:5000/sync

for syncing the BBMRI.de representation.

docker exec fhir-module curl -X POST http://127.0.0.1:5000/miabis-sync

for syncing the MIABIS on FHIR representation.

Manual deletion

Users can also delete all of the records currently present in the FHIR store, again either BBMRI.de or MIABIS on FHIR representation using the commands:

docker exec fhir-module curl -X POST http://127.0.0.1:5000/delete

for deleting data representing the BBMRI.de.

docker exec fhir-module curl -X POST http://127.0.0.1:5000/miabis-delete

for deleting data representing the MIABIS on FHIR.

Contributing

Because the FHIR module is an open source software pull requests are of course welcome! For further information, please read our contributing guidelines!

Found a security vulnerability? Please refer to our security policy.

For instructions on how to set up the development environment, refer to the corresponding chapter.

License

Copyright 2023 BBMRI community.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an " AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

A data integration tool for BBMRI-ERIC biobanks.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •  

Languages

0