diff --git a/README.md b/README.md index d8d4fc0..77b2ee2 100644 --- a/README.md +++ b/README.md @@ -14,24 +14,46 @@ This bulk FHIR validation environment **aggregates/groups and presents validatio ![Bulk FHIR validation](bulk-fhir-validation.png) -## Based on open standards and powerfull and flexible Open Source Software +## Usage -Therefore this validation environment uses following standards and Open Source Software by the Python Library [fhirvalidation.py](home/fhirvalidation.py): +### Web UI -- Loading FHIR resources to be validated by [FHIR search](https://www.hl7.org/fhir/search.html) (for documentation see section "Select resources to be validated by FHIR Search parameters" below) - -- [FHIR validation](https://www.hl7.org/fhir/validation.html#op) by [HAPI FHIR Validator](https://hapifhir.io/hapi-fhir/docs/validation/introduction.html) configured by Docker environment variables - -- Aggregation by [Python Pandas](https://pandas.pydata.org/docs/user_guide/index.html) dataframe - -- Presentation of validation results in web UI by [Jupyter Lab](https://jupyterlab.readthedocs.io/en/latest/) +Access the [web user interface of Jupyter Lab](https://jupyterlab.readthedocs.io/en/latest/) on the configured (default: 80) port: +http://yourserver/ -## Architecture +#### Login -![Software architecture](bulk-fhir-validator.drawio.png) +Login with the initial password / token you configured in .env -## Installation and Configuration + +#### Start validation + +Now you can start the validation and aggregation of validation results. + +Therefore run the Jupyter Notebook [fhir-validation.ipynb](home/fhir-validation.ipynb). + + +#### Navigate validation results + +You can navigate the validation results by "Table of Content" of Jupyter Lab. Therefore switch the left navigation bar from "File browser" to "Table of Contents". + + +### User documentation + +The further user documentation is embedded in the Jupyter Notebook: + +The different outputs are described in markdown cells and used parameters are described in the code cells. + + +### Select resources to be validated by FHIR Search parameters + +You can select/filter the resources to be validated by [FHIR search](https://www.hl7.org/fhir/search.html) parameters. + +For filter options you can set `search_parameters`, see [FHIR search common parameters for all resource types](https://www.hl7.org/fhir/search.html#standard), as well as additional FHIR search parameters for certain resource types like [Patient](https://www.hl7.org/fhir/patient.html#search), [Condition](https://www.hl7.org/fhir/condition.html#search), [Observation](https://www.hl7.org/fhir/observation.html#search), ... + + +## Installation and configuration ### Setup FHIR Packages @@ -73,48 +95,30 @@ Start the validation environment by docker compose up -d `` -## Usage +## Software architecture -### Web UI +### Based on open standards and powerful and flexible Open Source Software -Access the [web user interface of Jupyter Lab](https://jupyterlab.readthedocs.io/en/latest/) on the configured (default: 80) port: -http://yourserver/ +The FHIR validation environment uses following standards and Open Source Software by the Python Library [fhirvalidation.py](home/fhirvalidation.py): + +- Loading FHIR resources to be validated by [FHIR search](https://www.hl7.org/fhir/search.html) (for documentation see section "Select resources to be validated by FHIR Search parameters" below) + +- [FHIR validation](https://www.hl7.org/fhir/validation.html#op) by [HAPI FHIR Validator](https://hapifhir.io/hapi-fhir/docs/validation/introduction.html) configured by Docker environment variables + +- Aggregation by [Python Pandas](https://pandas.pydata.org/docs/user_guide/index.html) dataframe + +- Presentation of validation results in web UI by [Jupyter Lab](https://jupyterlab.readthedocs.io/en/latest/) -#### Login +### Software architecture diagram -Login with the initial password / token you configured in .env +Visualization of the components and the deployment: - -#### Start validation - -Now you can start the validation and aggregation of validation results. - -Therefore run the Jupyter Notebook [fhir-validation.ipynb](home/fhir-validation.ipynb). - - - -#### Navigate validation results - -You can navigate the validation results by "Table of Content" of Jupyter Lab. Therefore switch the left navigation bar from "File browser" to "Table of Contents". - - -#### User documentation - -The further user documentation is embedded in the Jupyter Notebook: - -The different outputs are described in markdown cells and used parameters are described in the code cells. - - -### Select resources to be validated by FHIR Search parameters - -You can select/filter the resources to be validated by [FHIR search](https://www.hl7.org/fhir/search.html) parameters. - -For filter options you can set `search_parameters`, see [FHIR search common parameters for all resource types](https://www.hl7.org/fhir/search.html#standard), as well as additional FHIR search parameters for certain resource types like [Patient](https://www.hl7.org/fhir/patient.html#search), [Condition](https://www.hl7.org/fhir/condition.html#search), [Observation](https://www.hl7.org/fhir/observation.html#search), ... +![Software architecture](bulk-fhir-validator.drawio.png) ### Python library -If you dont want to use Jupyter Lab as a user interface (e.g. if you want to generate markdown for CI/CD reports), you can use the Python library [fhirvalidation.py](home/fhirvalidation.py) returning a [pandas](https://pandas.pydata.org/docs/user_guide/index.html) dataframe independent from Jupyter Lab. +If you don't want to use Jupyter Lab as a user interface (e.g. if you want to generate markdown for CI/CD reports), you can use the Python library [fhirvalidation.py](home/fhirvalidation.py) returning a [pandas](https://pandas.pydata.org/docs/user_guide/index.html) dataframe independent from Jupyter Lab. -In the Jupyter Notebook, you can find documentation on how to use the library, including example with code snippets. \ No newline at end of file +In the Jupyter Notebook, you can find documentation on how to use the library, including example with code snippets.