Skip to content

International Fixes to match latest Synthea input requirements#20

Open
jawalonoski wants to merge 3 commits into
masterfrom
fixes
Open

International Fixes to match latest Synthea input requirements#20
jawalonoski wants to merge 3 commits into
masterfrom
fixes

Conversation

@jawalonoski
Copy link
Copy Markdown
Member

@jawalonoski jawalonoski commented Dec 2, 2024

This PR is paired with synthetichealth/synthea#1564

This pull request features changes to the data and configuration files for various international countries, to make them compatible with recent versions of Synthea.

While a majority of the changes are within the {nation}/src/main/resources/* files for each nation, the primary items of interest will be the scripts within the ./scripts folder.

Scripts of Note

Script Description
check_hospitals.rb This ruby script loads the zipcodes.csv file for each country, to find all the listed latitude and longitude coordinates within each "state". Then the hospitals.csv file is loaded, to ensure that each location within the "state" has at least one hospital within reasonable range. If necessary, patches to the hospital file are created, so that each "state" has at least one viable hospital location. This script was used to generate the edits to the various hospital files within this PR.
make_sdoh_files.rb The latest version of Synthea requires Social Determinants of Health (SDOH) configuration files. This script creates those files with default values for each "state" and "county".
test_all_with_synthea.rb This ruby script executes the Synthea project (assumes a location of ../../synthea) for each set of international configuration files, then searches the system output for the string "Exception" and summarizes the results (for example, see Remaining Issues below.

Remaining Issues

These remaining issues are likely to be addressed in future fixes...

Nation Errors
hr 42
hu 40
gb 15
fi 13
si 12
bg 10
es 10
it 8
ro 8
cz 6
be 6
pt 2
ie 2
Exception Count
java.lang.RuntimeException: Unable to select a random city id. 80
Exception in thread "main" java.lang.RuntimeException: Unable to select a random city id. 80
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.toUpperCase()" because the return value of "org.mitre.synthea.world.geography.Location.getAbbreviation(String)" is null 12
java.lang.RuntimeException: Unable to find provider: wellness 1
java.lang.NullPointerException: Cannot invoke "java.util.Map$Entry.getValue()" because "entry" is null 1
Issue Count
at org.mitre.synthea.world.geography.Location.randomCityId(Location.java:287) 160
at org.mitre.synthea.world.agents.PayerManager.loadPayers(PayerManager.java:137) 12
at org.mitre.synthea.world.agents.Person.setProvider(Person.java:680) 1
at org.mitre.synthea.helpers.RandomCollection.next(RandomCollection.java:48) 1

@jawalonoski jawalonoski changed the title WIP - International Fixes to match latest Synthea input requirements International Fixes to match latest Synthea input requirements Mar 6, 2025
@jawalonoski jawalonoski marked this pull request as ready for review March 6, 2025 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant