Maps and converts delimited data to FHIR resources.
Project description
CSV to FHIR
Loads CSV records from file, and maps them to FHIR resources.
Pre-requisites
- Python >= 3.9 for application development
Quickstart CLI
# clone the repo
git clone https://github.com/LinuxForHealth/CsvToFHIR.git
cd csvtofhir
# create virtual environment and create an "editable" install
python3 -m venv venv && source venv/bin/activate && python3 -m pip install --upgrade pip setuptools
python3 -m pip install -e .[dev]
# run tests
python3 -m pytest
The CSVToFHIR CLI supports:
DataContract validation
csvtofhir% csvtofhir validate -f tests/resources/data-contract/data-contract.json
CSV Conversion
The csvtofhir convert command has two processing modes, directory mode, -d
, and file mode, -f
.
Directory Mode
In directory
mode the convert command is given a base directory path which contains the following subdirectories:
- input: where input, or source, data records are located
- config: where the CSVToFHIR data contract configuration, data-contract.json, and supporting files are located.
The -o
parameter is used to specify the location where output files are saved.
csvtofhir convert -d /data/csv-data -o /data/output
File Mode
In file
mode the convert command is provided a single file path to convert.
The -f
flag is used to specify the input data file.
The -c
flag is used to specify the configuration directory.
The -o
flag is used in the same manner as directory
mode.
csvtofhir convert -f /data/csv-data/Patient.csv -c /data/config -o /data/output
Code Formatting
CSVToFHIR uses flake8 for style checking and autopep8 for formatting. Flake8 is used to find and identify issues, while AutoPep8 will fix (most of) them.
A simplified workflow to ensure uniform formatting is to . . .
Run AutoPep8 against the source and test code
python3 -m autopep8 src/ tests/ --in-place
And then use Flake8 to find remaining issues, which will need to be manually addressed.
python3 -m flake8 src/ tests/
Flake8 and AutoPep8 are configured using setup.cfg within the flake8
section.
In VS Code to format in the editor, - in-place
must be removed from the configuration.
Logging
CSVToFHIR follows best practices for logging configuration. Specifically, the only handler supported is the NullHandler. This allows consuming applications and services to configure handlers as appropriate.
The following table lists packages which emit logging information.
Packages | Description |
---|---|
csvtofhir | CSVToFHIR converter entry point |
csvtofhir.fhirrs | Converts CSV source records to FHIR Resources |
csvtofhir.pipeline | Pipeline tasks used to align source data with internal CSV models |
To utilize logging within a local development environment, please review the comments within the support module.
Additional Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for linuxforhealth-csvtofhir-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94d32905ab9e1ca06addcacc7cf5629e4f0ad8c2facb0a8688e5bc13ffdbe348 |
|
MD5 | 842de919562a8314e90fac33e6b08fe1 |
|
BLAKE2b-256 | 888c680e6044f04311b73fd90e78421ae6dd57672a2dfb0fbe2a6ae2eca9a811 |
Hashes for linuxforhealth_csvtofhir-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fc605ddd17a817b121c9712be71f53f8328be01b171f62fb6f49aab6c8d2808 |
|
MD5 | 73464e5518905aab3a8ff9ae2a1911a5 |
|
BLAKE2b-256 | 9d015cee48d386f679bad3191fa8b5c634d81358b020c1fff10c844fa88e939b |