Skip to content

Commit

Permalink
Merge pull request #8 from synthetichealth/canada
Browse files Browse the repository at this point in the history
Canada
  • Loading branch information
jawalonoski authored May 17, 2021
2 parents c7da9c3 + fb4b2c9 commit 83844ec
Show file tree
Hide file tree
Showing 14 changed files with 19,445 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Other Issues:

# License

Copyright 2020 The MITRE Corporation
Copyright 2020 - 2021 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.
Expand Down
10 changes: 10 additions & 0 deletions ca/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Canada

This folder contains the configuration files for Canada.

Data was sourced from Statistics Canada websites.

Specifically the 2016 census data (https://www12.statcan.gc.ca/census-recensement/2016/dp-pd/prof/details/download-telecharger/comp/GetFile.cfm?Lang=E&FILETYPE=CSV&GEONO=044)
and the Open Database of Healthcare Facilities (https://www.statcan.gc.ca/eng/lode/databases/odhf).

The timezone data, zip/postal codes, and latitude/longitude data are functional, but should be viewed with suspicion.
4,870 changes: 4,870 additions & 0 deletions ca/src/main/resources/geography/demographics_ca.csv

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions ca/src/main/resources/geography/timezones_ca.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
STATE,ST,TIMEZONE,TZ
Alberta,AB,Mountain Standard Time,MST
British Columbia,BC,Pacific Standard Time,PST
Manitoba,MB,Central Standard Time,CST
New Brunswick,NB,Eastern Standard Time,EST
Newfoundland and Labrador,NL,Newfoundland Standard Time,NST
Nova Scotia,NS,Atlantic Standard Time,AST
Northwest Territories,NT,Mountain Standard Time,MST
Nunavut,NU,Eastern Standard Time,EST
Ontario,ON,Eastern Standard Time,EST
Prince Edward Island,PE,Newfoundland Standard Time,NST
Quebec,QC,Eastern Standard Time,EST
Saskatchewan,SK,Central Standard Time,CST
Yukon,YT,Pacific Standard Time,PST
4,870 changes: 4,870 additions & 0 deletions ca/src/main/resources/geography/zipcodes_ca.csv

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions ca/src/main/resources/payers/insurance_companies_ca.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
,id,name,address,city,state_headquartered,zip,phone,states_covered,services_covered,deductible,default_coinsurance,default_copay,monthly_premium,ownership
0,10001,Alberta Health Care Insurance Plan,1 Main Street,Edmonton,Alberta,T5B,1-800-622-6232,Alberta,*,0,0,0,0,Government
1,10002,Medical Services of British Columbia,1 Main Street,Victoria,British Columbia,V9E,1-800-622-6232,British Columbia,*,0,0,0,0,Government
2,10003,Manitoba Health,1 Main Street,Winnipeq,Manitoba,R3A,1-800-622-6232,Manitoba,*,0,0,0,0,Government
3,10004,New Brunswick Health Care,1 Main Street,Fredericton,New Brunswick,E3B,1-800-622-6232,New Brunswick,*,0,0,0,0,Government
4,10005,Newfoundland and Labrador Medical Care Plan,1 Main Street,St. John's,Newfoundland and Labrador,A1A,1-800-622-6232,Newfoundland and Labrador,*,0,0,0,0,Government
5,10006,NWT Health Care Insurance Plan,1 Main Street,Yellowknife,Northwest Territories,X1A,1-800-622-6232,Northwest Territories,*,0,0,0,0,Government
6,10007,Medical Service Insurance,1 Main Street,Halifax,Nova Scotia,B3K,1-800-622-6232,Nova Scotia,*,0,0,0,0,Government
7,10008,Nunavut Health Care Plan,1 Main Street,Iqaluit,Nunavut,1H0,1-800-622-6232,Nunavut,*,0,0,0,0,Government
8,10009,Ontario Health Insurance Plan,1 Main Street,Toronto,Ontario,M5A,1-800-622-6232,Ontario,*,0,0,0,0,Government
9,10010,Prince Edward Island Hospital and Medical Services Plan,1 Main Street,Charlottetown,Prince Edward Island,C1A,1-800-622-6232,Prince Edward Island,*,0,0,0,0,Government
10,10011,R�gie de l'assurance maladie du Qu�bec,1 Rue principale,Quebec City,Quebec,G1A,1-800-622-6232,Quebec,*,0,0,0,0,Government
11,10012,Saskatchewan Medical Care Insurance Plan,1 Main Street,Regina,Saskatchewan,S4M,1-800-622-6232,Saskatchewan,*,0,0,0,0,Government
12,10013,Yukon Health Care Insurance Plan,1 Main Street,Whitehorse,Yukon,Y1A,1-800-622-6232,Yukon,*,0,0,0,0,Government
1,141 changes: 1,141 additions & 0 deletions ca/src/main/resources/providers/hospitals_ca.csv

Large diffs are not rendered by default.

847 changes: 847 additions & 0 deletions ca/src/main/resources/providers/longterm_ca.csv

Large diffs are not rendered by default.

1,829 changes: 1,829 additions & 0 deletions ca/src/main/resources/providers/nursing_ca.csv

Large diffs are not rendered by default.

2,231 changes: 2,231 additions & 0 deletions ca/src/main/resources/providers/primary_care_facilities_ca.csv

Large diffs are not rendered by default.

1,141 changes: 1,141 additions & 0 deletions ca/src/main/resources/providers/urgent_care_facilities_ca.csv

Large diffs are not rendered by default.

2,231 changes: 2,231 additions & 0 deletions ca/src/main/resources/providers/va_facilities_ca.csv

Large diffs are not rendered by default.

232 changes: 232 additions & 0 deletions ca/src/main/resources/synthea.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
# Starting with a properties file because it requires no additional dependencies

exporter.baseDirectory = ./output/
exporter.use_uuid_filenames = false
exporter.subfolders_by_id_substring = false
# number of years of history to keep in exported records, anything older than this may be filtered out
# set years_of_history = 0 to skip filtering altogether and keep the entire history
exporter.years_of_history = 10
# split records allows patients to have one record per provider organization
exporter.split_records = false
exporter.split_records.duplicate_data = false
exporter.ccda.export = false
exporter.fhir.export = true
exporter.fhir_stu3.export = false
exporter.fhir_dstu2.export = false
exporter.fhir.use_shr_extensions = false
exporter.fhir.use_us_core_ig = false
exporter.fhir.transaction_bundle = true
exporter.fhir.bulk_data = false
exporter.groups.fhir.export = false
exporter.hospital.fhir.export = true
exporter.hospital.fhir_stu3.export = false
exporter.hospital.fhir_dstu2.export = false
exporter.practitioner.fhir.export = true
exporter.practitioner.fhir_stu3.export = false
exporter.practitioner.fhir_dstu2.export = false
exporter.encoding = UTF-8
exporter.csv.export = false
# if exporter.csv.append_mode = true, then each run will add new data to any existing CSVs. if false, each run will clear out the files and start fresh
exporter.csv.append_mode = false
# if exporter.csv.folder_per_run = true, then each run will have CSVs placed into a unique subfolder. if false, each run will only use the top-level csv folder
exporter.csv.folder_per_run = false
# included_files and excluded_files list out the files to include/exclude in the csv exporter
# only one of these may be set at a time, if both are set then both will be ignored
# if neither is set, then all files will be included
# see list of files at: https://github.com/synthetichealth/synthea/wiki/CSV-File-Data-Dictionary
# include filenames separated with a comma, ex: patients.csv,procedures.csv,medications.csv
# NOTE: the csv exporter does not actively delete files, so if Run 1 you included a file, then Run 2 you exclude that file, the version from Run 1 will still be present
exporter.csv.included_files =
exporter.csv.excluded_files =

exporter.cpcds.export = false
exporter.cpcds.append_mode = false
exporter.cpcds.folder_per_run = false
exporter.cpcds.single_payer = false
exporter.cdw.export = false
exporter.text.export = false
exporter.text.per_encounter_export = false
exporter.clinical_note.export = false

# parameters for symptoms export
exporter.symptoms.csv.export = false
# selection mode of conditions or symptom export: 0 = conditions according to exporter.years_of_history. other values = all conditions (entire history)
exporter.symptoms.mode = 0
# if exporter.symptoms.csv.append_mode = true, then each run will add new data to any existing CSVs. if false, each run will clear out the files and start fresh
exporter.symptoms.csv.append_mode = false
# if exporter.symptoms.csv.folder_per_run = true, then each run will have CSVs placed into a unique subfolder. if false, each run will only use the top-level csv folder
exporter.symptoms.csv.folder_per_run = false
exporter.symptoms.text.export = false

# the number of patients to generate, by default
# this can be overridden by passing a different value to the Generator constructor
generate.default_population = 1

generate.log_patients.detail = simple
# options are "none", "simple", or "detailed" (without quotes). defaults to simple if another value is used
# none = print nothing to the console during generation
# simple = print patient names once they are generated.
# detailed = print patient names, atributes, vital signs, etc.. May slow down processing

generate.timestep = 604800000
# time is in ms
# 1000 * 60 * 60 * 24 * 7 = 604800000

# default demographics is every city in the US
generate.demographics.default_file = geography/demographics_ca.csv
generate.geography.zipcodes.default_file = geography/zipcodes_ca.csv
generate.geography.country_code = CA
generate.geography.timezones.default_file = geography/timezones_ca.csv
generate.geography.foreign.birthplace.default_file = geography/foreign_birthplace.json

# Lookup Table Folder location
generate.lookup_tables = modules/lookup_tables/

# Set to true if you want every patient to be dead.
generate.only_dead_patients = false
# Set to true if you want every patient to be alive.
generate.only_alive_patients = false
# If both only_dead_patients and only_alive_patients are set to true,
# It they will both default back to false

# if true, tracks and prints out details of transition tables for each module upon completion
# note that this may significantly slow down processing, and is intended primarily for debugging
generate.track_detailed_transition_metrics = false

# If true, person names have numbers appended to them to make them more obviously fake
generate.append_numbers_to_person_names = true

# if true, the entire population will use veteran prevalence data
generate.veteran_population_override = false

# these should add up to 1.0
# weighting and categories are inspired by the following but there are no specific hard numbers to point to
# http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1694190/pdf/amjph00543-0042.pdf
# http://www.ncbi.nlm.nih.gov/pubmed/8122813
generate.demographics.socioeconomic.weights.income = 0.2
generate.demographics.socioeconomic.weights.education = 0.7
generate.demographics.socioeconomic.weights.occupation = 0.1

generate.demographics.socioeconomic.score.low = 0.0
generate.demographics.socioeconomic.score.middle = 0.25
generate.demographics.socioeconomic.score.high = 0.66

generate.demographics.socioeconomic.education.less_than_hs.min = 0.0
generate.demographics.socioeconomic.education.less_than_hs.max = 0.5
generate.demographics.socioeconomic.education.hs_degree.min = 0.1
generate.demographics.socioeconomic.education.hs_degree.max = 0.75
generate.demographics.socioeconomic.education.some_college.min = 0.3
generate.demographics.socioeconomic.education.some_college.max = 0.85
generate.demographics.socioeconomic.education.bs_degree.min = 0.5
generate.demographics.socioeconomic.education.bs_degree.max = 1.0

generate.demographics.socioeconomic.income.poverty = 11000
generate.demographics.socioeconomic.income.high = 75000

generate.birthweights.default_file = birthweights.csv
generate.birthweights.logging = false

# in Massachusetts, the individual insurance mandate became law in 2006
# in the US, the Affordable Care Act become law in 2010,
# and individual and employer mandates took effect in 2014.
# mandate.year will determine when individuals with an occupation score above mandate.occupation
# receive employer mandated insurance (aka "private" insurance).
# prior to mandate.year, anyone with income greater than the annual cost of an insurance plan
# will purchase the insurance.
generate.insurance.mandate.year = 1984
generate.insurance.mandate.occupation = 0.0

# Default Costs, to be used for pricing something that we don't have a specific price for
# -- $500 for procedures is completely invented
generate.costs.default_procedure_cost = 500.00
# -- $255 for medications - also invented
generate.costs.default_medication_cost = 255.00
# -- Encounters billed using avg prices from https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3096340/
# -- Adjustments for initial or subsequent hospital visit and level/complexity/time of encounter
# -- not included. Assume initial, low complexity encounter (Tables 4 & 6)
generate.costs.default_encounter_cost = 125.00
# -- https://www.nytimes.com/2014/07/03/health/Vaccine-Costs-Soaring-Paying-Till-It-Hurts.html
# -- currently all vaccines cost $136.
generate.costs.default_immunization_cost = 136.00

# Providers
generate.providers.hospitals.default_file = providers/hospitals_ca.csv
generate.providers.longterm.default_file = providers/longterm_ca.csv
generate.providers.nursing.default_file = providers/nursing_ca.csv
generate.providers.rehab.default_file = providers/rehab.csv
generate.providers.hospice.default_file = providers/hospice.csv
generate.providers.dialysis.default_file = providers/dialysis.csv
generate.providers.homehealth.default_file = providers/home_health_agencies.csv
generate.providers.veterans.default_file = providers/va_facilities_ca.csv
generate.providers.urgentcare.default_file = providers/urgent_care_facilities_ca.csv
generate.providers.primarycare.default_file = providers/primary_care_facilities_ca.csv

# Provider selection behavior
# How patients select a provider organization:
# nearest - select the closest provider. See generate.providers.maximum_search_distance
# quality - select the best provider if quality is known. Otherwise nearest.
# random - select randomly.
# network - select the nearest provider in your insurance network. same as random except it changes every time the patient switches insurance provider.
generate.providers.selection_behavior = nearest

# minimum number of providers linked per patient
# if this number is not met it re-runs the simulation
generate.providers.minimum = 1

# maximum distance to look for a provider for a given patient, in km
# set to 10 degrees lat/lon to support the model that veterans only seek care at VA facilities
generate.providers.maximum_search_distance = 100

# Payers
generate.payers.insurance_companies.default_file = payers/insurance_companies_ca.csv
generate.payers.insurance_companies.medicare = Medicare
generate.payers.insurance_companies.medicaid = Medicare
generate.payers.insurance_companies.dual_eligible = Medicare

# Payer selection behavior
# How patients select a payer:
# best_rates - select insurance with best rates for person's existing conditions and medical needs
# random - select randomly.
generate.payers.selection_behavior = random

# Experimental feature. Patients will miss care if true, but side-effects of missing that care
# are not handled. Additionally, the path the disease module might take may no longer make sense.
# It might assume things occurred that haven't actually happened it. Use with care.
generate.payers.loss_of_care = false

# Add a FHIR terminology service URL to enable the use of ValueSet URIs within code definitions.
# generate.terminology_service_url = https://r4.ontoserver.csiro.au/fhir

# Quit Smoking
lifecycle.quit_smoking.baseline = 0.01
lifecycle.quit_smoking.timestep_delta = -0.01
lifecycle.quit_smoking.smoking_duration_factor_per_year = 1.0

# Quit Alcoholism
lifecycle.quit_alcoholism.baseline = 0.001
lifecycle.quit_alcoholism.timestep_delta = -0.001
lifecycle.quit_alcoholism.alcoholism_duration_factor_per_year = 1.0

# Adherence
lifecycle.adherence.baseline = 0.05

# set this to true to enable randomized "death by natural causes"
# highly recommended if "only_dead_patients" is true
lifecycle.death_by_natural_causes = false

# set this to enable "death by loss of care" or missed care,
# e.g. not covered by insurance or otherwise unaffordable.
# only functional if "generate.payers.loss_of_care" is also true.
lifecycle.death_by_loss_of_care = false

# Use physiology simulations to generate some VitalSigns
physiology.generators.enabled = false

# Allow physiology module states to be executed
# If false, all Physiology state objects will immediately redirect to the state defined in
# the alt_direct_transition field
physiology.state.enabled = false

# set to true to introduce errors in height, weight and BMI observations for people
# under 20 years old
growtherrors = false
14 changes: 14 additions & 0 deletions ca/src/test/resources/test.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# comment
test.foo.bar = true
test.foo.baz = false

test.bar = 42

# another comment
foo = string value

test_state.default = Ontario
test_state.alternative = Ontario

test_town.default = Ottawa
test_town.alternative = Ottawa

0 comments on commit 83844ec

Please sign in to comment.