# iceberg-schema-tools
Create and maintain central iceberg schema. Render and validate FHIR data.
## Overview
![image](https://github.com/bmeg/iceberg-schema-tools/assets/47808/cf5f544c-081f-470f-b1d8-27f16ad21b67)
Code that generates the base schema from FHIR goes here. Additional tools are provided to lints, validates and visualize the schema.
Note: The actual schemas are stored in [iceberg](https://github.com/bmeg/iceberg)
## Setup
```
pip install iceberg-tools
```
## Use
```
$ iceberg schema
Usage: iceberg schema [OPTIONS] COMMAND [ARGS]...
Manage bmeg or gen3 schemas from FHIR resources.
Options:
--help Show this message and exit.
Commands:
generate Generate from FHIR resources.
compile Create aggregated json file from individual yaml schemas
$ iceberg data
Usage: iceberg data [OPTIONS] COMMAND [ARGS]...
Project data (ResearchStudy, ResearchSubjects, Patient, etc.).
Options:
--help Show this message and exit.
Commands:
simplify Renders PFB friendly flattened records.
validate Check FHIR data for validity and conventions.
validate-simplified Check simplified data for validity and conventions.
pfb Write simplified FHIR files to a PFB.
migrate Migrate from FHIR R4B to R5.0.
report Aggregate avro pfb files into a cytoscape tsv.
```
> Note: `pfb_fhir` and `iceberg` are synonymous in this context.
## Examples
The commands:
```commandline
pfb_fhir schema generate simplified
pfb_fhir data simplify --schema_path iceberg/schemas/simplified/simplified-fhir.json tests/fixtures/simplify/study/ tmp/simplified
pfb_fhir data pfb tmp/simplified/ tmp/study.pfb
tree tmp
```
Will generate the following output:
```commandline
INFO:'Records with relationships': 59413
INFO:'Records': 59460
tmp
├── simplified
│ ├── Condition.ndjson
│ ├── DocumentReference.ndjson
│ ├── Encounter.ndjson
│ ├── MedicationAdministration.ndjson
│ ├── Observation.ndjson
│ ├── Patient.ndjson
│ ├── ResearchStudy.ndjson
│ ├── ResearchSubject.ndjson
│ ├── Specimen.ndjson
│ └── Task.ndjson
└── study.pfb
```
## Contributing
See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for developer notes.
Raw data
{
"_id": null,
"home_page": "https://github.com/bmeg/iceberg-schema-tools",
"name": "iceberg-tools",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9, <4",
"maintainer_email": "",
"keywords": "FHIR PFB gen3 bioinformatics graph",
"author": "https://ellrottlab.org/",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/b4/79/30c082b59ed59226a96a6404abda352dbf4e82a99e1b2921c08bb06c2afd/iceberg_tools-0.0.5.tar.gz",
"platform": null,
"description": "# iceberg-schema-tools\nCreate and maintain central iceberg schema. Render and validate FHIR data.\n\n## Overview\n\n![image](https://github.com/bmeg/iceberg-schema-tools/assets/47808/cf5f544c-081f-470f-b1d8-27f16ad21b67)\n\n\n\nCode that generates the base schema from FHIR goes here. Additional tools are provided to lints, validates and visualize the schema.\n\nNote: The actual schemas are stored in [iceberg](https://github.com/bmeg/iceberg)\n\n\n## Setup\n\n```\npip install iceberg-tools\n```\n\n\n## Use\n\n```\n$ iceberg schema\nUsage: iceberg schema [OPTIONS] COMMAND [ARGS]...\n\n Manage bmeg or gen3 schemas from FHIR resources.\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n generate Generate from FHIR resources.\n compile Create aggregated json file from individual yaml schemas\n\n$ iceberg data\n\nUsage: iceberg data [OPTIONS] COMMAND [ARGS]...\n\n Project data (ResearchStudy, ResearchSubjects, Patient, etc.).\n\nOptions:\n --help Show this message and exit.\n\nCommands:\n simplify Renders PFB friendly flattened records.\n validate Check FHIR data for validity and conventions.\n validate-simplified Check simplified data for validity and conventions.\n pfb Write simplified FHIR files to a PFB.\n migrate Migrate from FHIR R4B to R5.0.\n report Aggregate avro pfb files into a cytoscape tsv.\n\n```\n\n> Note: `pfb_fhir` and `iceberg` are synonymous in this context.\n\n## Examples\n\nThe commands:\n```commandline\npfb_fhir schema generate simplified\npfb_fhir data simplify --schema_path iceberg/schemas/simplified/simplified-fhir.json tests/fixtures/simplify/study/ tmp/simplified\npfb_fhir data pfb tmp/simplified/ tmp/study.pfb\ntree tmp\n\n```\n\nWill generate the following output:\n```commandline\nINFO:'Records with relationships': 59413\nINFO:'Records': 59460\ntmp\n\u251c\u2500\u2500 simplified\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Condition.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 DocumentReference.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Encounter.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 MedicationAdministration.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Observation.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Patient.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 ResearchStudy.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 ResearchSubject.ndjson\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Specimen.ndjson\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 Task.ndjson\n\u2514\u2500\u2500 study.pfb\n\n```\n\n## Contributing\nSee [CONTRIBUTING.md](docs/CONTRIBUTING.md) for developer notes.\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "FHIR schemas tools for bioinformatics.",
"version": "0.0.5",
"project_urls": {
"Bug Reports": "https://github.com/bmeg/iceberg-schema-tools/issues",
"Homepage": "https://github.com/bmeg/iceberg-schema-tools",
"Source": "https://github.com/bmeg/iceberg-schema-tools"
},
"split_keywords": [
"fhir",
"pfb",
"gen3",
"bioinformatics",
"graph"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c1921199599536fceeaefe6971a4c2bb5753b53379e9966f891178fc89857971",
"md5": "345500e1efba80510d6ff3c2a01a1c48",
"sha256": "eddddeb2c85b866f855458a141fd1db969b3e890ea7bfec38d65ad5eb2a83d22"
},
"downloads": -1,
"filename": "iceberg_tools-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "345500e1efba80510d6ff3c2a01a1c48",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9, <4",
"size": 114983,
"upload_time": "2023-12-13T18:21:59",
"upload_time_iso_8601": "2023-12-13T18:21:59.050362Z",
"url": "https://files.pythonhosted.org/packages/c1/92/1199599536fceeaefe6971a4c2bb5753b53379e9966f891178fc89857971/iceberg_tools-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b47930c082b59ed59226a96a6404abda352dbf4e82a99e1b2921c08bb06c2afd",
"md5": "1fc01b8e6fbf4f44d445d41c2f3bd5c9",
"sha256": "ef5530054398d025362e9efc154e3c6df4d4f300ab42d632a055dc9ccdda6b96"
},
"downloads": -1,
"filename": "iceberg_tools-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "1fc01b8e6fbf4f44d445d41c2f3bd5c9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9, <4",
"size": 73470,
"upload_time": "2023-12-13T18:22:00",
"upload_time_iso_8601": "2023-12-13T18:22:00.787860Z",
"url": "https://files.pythonhosted.org/packages/b4/79/30c082b59ed59226a96a6404abda352dbf4e82a99e1b2921c08bb06c2afd/iceberg_tools-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-13 18:22:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "bmeg",
"github_project": "iceberg-schema-tools",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "iceberg-tools"
}