OHDSI/ETL-Synthea

extend support to synthea 3.0 release

fdefalco opened this issue · 5 comments

extend support to synthea 3.0 release

+1
I am also unable to run nor build Synthea 2.7.0, due to obscure Java issues. Therefore I can't use ETL-Synthea at all.

@fabkury - You can download the 2.7 release JAR from the Synthea releases and then run Synthea with the 2.7 release JAR without having to compile.

If you take a look through this gist you'll see ways of overcoming some of the weird Java issues I've also experienced.

https://gist.github.com/fdefalco/35b7844626a9d8808d99bf5990e46ed2

Thanks, @fdefalco .

I went through your gist and tried many variations of all options mentioned (--illegal-access=permit --exporter.fhir.transaction_bundle false --exporter.csv.export true --exporter.practitioner.fhir.export false --exporter.hospital.fhir.export false --exporter.fhir.export false --exporter.years_of_history 20...), and using the java.exe binaries from Java 8 JDK and Java 18 JDK, but I keep getting very obscure errors:

java.lang.NoClassDefFoundError: Could not initialize class org.mitre.synthea.export.CSVExporter$SingletonHolder

java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.concurrent.atomic.AtomicLong java.util.Random.seed accessible: module java.base does not "opens java.util" to unnamed module @80503

Kind regards.

A bit late from your post @fabkury , but if still helpful I made a quick Docker image that can run the older Synthea version using the older Java version. If you run the container interactively with a host mount, can easily get the data out:

Example command that starts the Docker container interactively and mounts a host volume. Once running, can execute the Synthea application and then exit the container once records are created.

docker run -it -v /host/path/for/output:/synthea/output datasci/synthea:2.7.0 /bin/bash
java -jar synthea-with-dependencies.jar -p 10000 --exporter.csv.export true
exit

Thank you, Wade.