Change order of the documentation parts to: 1. for users (user documentation), 2. for administrators (setup and config), 3. for developers (architecture)

This commit is contained in:
Markus Mandalka 2024-10-30 10:46:26 +01:00
parent 777719df07
commit 8cd13bc6e8

View File

@ -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.
In the Jupyter Notebook, you can find documentation on how to use the library, including example with code snippets.