Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/synthetichealth/synthea
Synthetic Patient Population Simulator
https://github.com/synthetichealth/synthea
fhir health-data simulation synthea synthetic-data synthetic-population
Last synced: 2 days ago
JSON representation
Synthetic Patient Population Simulator
- Host: GitHub
- URL: https://github.com/synthetichealth/synthea
- Owner: synthetichealth
- License: apache-2.0
- Created: 2016-06-17T20:15:40.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-25T19:34:17.000Z (3 months ago)
- Last Synced: 2024-10-29T15:10:32.702Z (3 months ago)
- Topics: fhir, health-data, simulation, synthea, synthetic-data, synthetic-population
- Language: Java
- Homepage: https://synthetichealth.github.io/synthea
- Size: 715 MB
- Stars: 2,163
- Watchers: 76
- Forks: 646
- Open Issues: 196
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-data-synthesis - synthea
README
# SyntheaTM Patient Generator ![Build Status](https://github.com/synthetichealth/synthea/workflows/.github/workflows/ci-build-test.yml/badge.svg?branch=master) [![codecov](https://codecov.io/gh/synthetichealth/synthea/branch/master/graph/badge.svg)](https://codecov.io/gh/synthetichealth/synthea)
SyntheaTM is a Synthetic Patient Population Simulator. The goal is to output synthetic, realistic (but not real), patient data and associated health records in a variety of formats.
Read our [wiki](https://github.com/synthetichealth/synthea/wiki) and [Frequently Asked Questions](https://github.com/synthetichealth/synthea/wiki/Frequently-Asked-Questions) for more information.
Currently, SyntheaTM features include:
- Birth to Death Lifecycle
- Configuration-based statistics and demographics (defaults with Massachusetts Census data)
- Modular Rule System
- Drop in [Generic Modules](https://github.com/synthetichealth/synthea/wiki/Generic-Module-Framework)
- Custom Java rules modules for additional capabilities
- Primary Care Encounters, Emergency Room Encounters, and Symptom-Driven Encounters
- Conditions, Allergies, Medications, Vaccinations, Observations/Vitals, Labs, Procedures, CarePlans
- Formats
- HL7 FHIR (R4, STU3 v3.0.1, and DSTU2 v1.0.2)
- Bulk FHIR in ndjson format (set `exporter.fhir.bulk_data = true` to activate)
- C-CDA (set `exporter.ccda.export = true` to activate)
- CSV (set `exporter.csv.export = true` to activate)
- CPCDS (set `exporter.cpcds.export = true` to activate)
- Rendering Rules and Disease Modules with Graphviz## Developer Quick Start
These instructions are intended for those wishing to examine the Synthea source code, extend it or build the code locally. Those just wishing to run Synthea should follow the [Basic Setup and Running](https://github.com/synthetichealth/synthea/wiki/Basic-Setup-and-Running) instructions instead.
### Installation
**System Requirements:**
SyntheaTM requires Java JDK 11 or newer. We strongly recommend using a Long-Term Support (LTS) release of Java, 11 or 17, as issues may occur with more recent non-LTS versions.To clone the SyntheaTM repo, then build and run the test suite:
```
git clone https://github.com/synthetichealth/synthea.git
cd synthea
./gradlew build check test
```### Changing the default properties
The default properties file values can be found at `src/main/resources/synthea.properties`.
By default, synthea does not generate CCDA, CPCDA, CSV, or Bulk FHIR (ndjson). You'll need to
adjust this file to activate these features. See the [wiki](https://github.com/synthetichealth/synthea/wiki)
for more details, or use our [guided customizer tool](https://synthetichealth.github.io/spt/#/customizer).### Generate Synthetic Patients
Generating the population one at a time...
```
./run_synthea
```Command-line arguments may be provided to specify a state, city, population size, or seed for randomization.
```
run_synthea [-s seed] [-p populationSize] [state [city]]
```Full usage info can be printed by passing the `-h` option.
```
$ ./run_synthea -h> Task :run
Usage: run_synthea [options] [state [city]]
Options: [-s seed]
[-cs clinicianSeed]
[-p populationSize]
[-r referenceDate as YYYYMMDD]
[-g gender]
[-a minAge-maxAge]
[-o overflowPopulation]
[-c localConfigFilePath]
[-d localModulesDirPath]
[-i initialPopulationSnapshotPath]
[-u updatedPopulationSnapshotPath]
[-t updateTimePeriodInDays]
[-f fixedRecordPath]
[-k keepMatchingPatientsPath]
[--config*=value]
* any setting from src/main/resources/synthea.propertiesExamples:
run_synthea Massachusetts
run_synthea Alaska Juneau
run_synthea -s 12345
run_synthea -p 1000
run_synthea -s 987 Washington Seattle
run_synthea -s 21 -p 100 Utah "Salt Lake City"
run_synthea -g M -a 60-65
run_synthea -p 10 --exporter.fhir.export=true
run_synthea --exporter.baseDirectory="./output_tx/" Texas
```Some settings can be changed in `./src/main/resources/synthea.properties`.
SyntheaTM will output patient records in C-CDA and FHIR formats in `./output`.
### SyntheaTM GraphViz
Generate graphical visualizations of SyntheaTM rules and modules.
```
./gradlew graphviz
```### Concepts and Attributes
Generate a list of concepts (used in the records) or attributes (variables on each patient).
```
./gradlew concepts
./gradlew attributes
```# License
Copyright 2017-2023 The MITRE Corporation
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 athttp://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.